Просмотр исходного кода

Merge pull request #498 from Yakindu/issue_493

Issue 493 fixed
Axel Terfloth 10 лет назад
Родитель
Сommit
7e58dc74f1
23 измененных файлов с 4637 добавлено и 26 удалено
  1. 2 0
      plugins/org.yakindu.sct.doc.user/.gitignore
  2. 6 0
      plugins/org.yakindu.sct.doc.user/.project
  3. 135 8
      plugins/org.yakindu.sct.doc.user/build.xml
  4. 8 8
      plugins/org.yakindu.sct.doc.user/contexts.xml
  5. 4 0
      plugins/org.yakindu.sct.doc.user/css/custom.css
  6. 549 0
      plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting.sct
  7. 11 0
      plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_c_default.sgen
  8. 11 0
      plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_cpp_default.sgen
  9. 11 0
      plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_java_default.sgen
  10. 14 0
      plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_java_timerservice.sgen
  11. 73 0
      plugins/org.yakindu.sct.doc.user/model/default_sm.sct
  12. 73 0
      plugins/org.yakindu.sct.doc.user/model/default_sm_with_operation.sct
  13. 11 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_c_default.sgen
  14. 11 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_c_operation.sgen
  15. 11 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_cpp_default.sgen
  16. 11 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_cpp_operation.sgen
  17. 11 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_java_default.sgen
  18. 14 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_java_observer.sgen
  19. 14 0
      plugins/org.yakindu.sct.doc.user/model/defaultsm_java_operation.sgen
  20. 1 1
      plugins/org.yakindu.sct.doc.user/plugin.xml
  21. 3650 0
      plugins/org.yakindu.sct.doc.user/src/documentation.textile
  22. 5 8
      plugins/org.yakindu.sct.doc.user/src/documentation.xml
  23. 1 1
      plugins/org.yakindu.sct.doc.user/toc.xml

+ 2 - 0
plugins/org.yakindu.sct.doc.user/.gitignore

@@ -1,6 +1,8 @@
+.ant-targets-build.xml
 docbook-xsl/
 docbook-xsl/
 docbook-xsl.distribution/
 docbook-xsl.distribution/
 docbook-xml.distribution/
 docbook-xml.distribution/
+examples/
 help/
 help/
 html/
 html/
 lib/
 lib/

+ 6 - 0
plugins/org.yakindu.sct.doc.user/.project

@@ -21,10 +21,16 @@
 			<arguments>
 			<arguments>
 			</arguments>
 			</arguments>
 		</buildCommand>
 		</buildCommand>
+		<buildCommand>
+			<name>org.yakindu.sct.builder.SCTBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	</buildSpec>
 	<natures>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.yakindu.sct.builder.SCTNature</nature>
 	</natures>
 	</natures>
 	<filteredResources>
 	<filteredResources>
 		<filter>
 		<filter>

+ 135 - 8
plugins/org.yakindu.sct.doc.user/build.xml

@@ -38,11 +38,22 @@
 
 
     <!-- Aether Ant Tasks configuration -->
     <!-- Aether Ant Tasks configuration -->
     <property name="aether.jar.version" value="1.0.0.v20140518" />
     <property name="aether.jar.version" value="1.0.0.v20140518" />
-    <property name="aether.jar.checksum" value="95dadd03392a75564904da45108cf048abe6e5bb" />
+    <property name="aether.jar.checksum"
+              value="9008c0c96390eacc0f7fdde542dacbd921f942dcd5c139465e21f8b583942edb995304025bb436cfeeea0b89698ef9dfccf8a027da68cd079669adea8cca381f" />
     <property name="aether.jar.src"
     <property name="aether.jar.src"
               value="http://search.maven.org/remotecontent?filepath=org/eclipse/aether/aether-ant-tasks/${aether.jar.version}/aether-ant-tasks-${aether.jar.version}-uber.jar" />
               value="http://search.maven.org/remotecontent?filepath=org/eclipse/aether/aether-ant-tasks/${aether.jar.version}/aether-ant-tasks-${aether.jar.version}-uber.jar" />
     <property name="aether.jar.file" value="${lib.dir}/aether-ant-tasks-uber.jar" />
     <property name="aether.jar.file" value="${lib.dir}/aether-ant-tasks-uber.jar" />
 
 
+    <!-- Wikitext download configuration -->
+    <property name="wikitext.zip.version" value="1.0.0.v20140518" />
+    <property name="wikitext.zip.checksum"
+              value="f0f2fb383227cd926b2cdee2049b199639c39ffddc2ff5828d9eda995d8c4d864a5093567957b6e4f7febc968210073d34c8ceea26618737e467ecde0e0294a8" />
+    <property name="wikitext.zip.src"
+              value="http://www.eclipse.org/downloads/download.php?file=/mylyn/snapshots/nightly/docs/wikitext-standalone-latest.zip" />
+    <property name="wikitext.zip.file" value="${lib.dir}/wikitext.zip" />
+    <property name="wikitext.basename" value="wikitext-standalone" />
+    <property name="wikitext.version" value="2.8.0-SNAPSHOT" />
+
 
 
 
 
     <!-- The DocBook XML distribution ZIP file will be unpacked to this directory: -->
     <!-- The DocBook XML distribution ZIP file will be unpacked to this directory: -->
@@ -88,18 +99,22 @@
          "clean" target. If the JAR is present, a typedef will make Aether Ant Tasks' elements available in the Ant
          "clean" target. If the JAR is present, a typedef will make Aether Ant Tasks' elements available in the Ant
          build file. -->
          build file. -->
     <target name="init.aether"
     <target name="init.aether"
-            description="Initialized Aether Ant Tasks JAR by downloading the JAR and defining a type.">
+            description="Initializes Aether Ant Tasks JAR by downloading the JAR and defining a type.">
         <condition property="target.exists">
         <condition property="target.exists">
             <available file="${aether.jar.file}" />
             <available file="${aether.jar.file}" />
         </condition>
         </condition>
         <sequential unless:set="target.exists">
         <sequential unless:set="target.exists">
             <mkdir dir="${lib.dir}" />
             <mkdir dir="${lib.dir}" />
-            <get src="${aether.jar.src}" dest="${aether.jar.file}" skipexisting="true" usetimestamp="true" />
+            <get src="${aether.jar.src}"
+                 dest="${aether.jar.file}"
+                 skipexisting="true"
+                 usetimestamp="true"
+                 verbose="true" />
             <fail message="Checksum mismatch for ${aether.jar.file}. Please delete it and rerun ant to redownload.">
             <fail message="Checksum mismatch for ${aether.jar.file}. Please delete it and rerun ant to redownload.">
                 <condition>
                 <condition>
                     <not>
                     <not>
                         <checksum file="${aether.jar.file}"
                         <checksum file="${aether.jar.file}"
-                                  algorithm="SHA"
+                                  algorithm="SHA-512"
                                   property="${aether.jar.checksum}"
                                   property="${aether.jar.checksum}"
                                   verifyproperty="checksum.matches" />
                                   verifyproperty="checksum.matches" />
                     </not>
                     </not>
@@ -112,6 +127,49 @@
                  classpathref="aether-ant-tasks.classpath" />
                  classpathref="aether-ant-tasks.classpath" />
     </target>
     </target>
 
 
+    <!-- Download and unpack the wikitext standalone distribution. Unfortunately it is currently available as a nightly build only. -->
+    <target name="wikitext.download" description="Download and unpack the wikitext standalone distribution.">
+        <condition property="wikitext.zip.file.exists">
+            <available file="${wikitext.zip.file}" />
+        </condition>
+        <sequential unless:set="wikitext.zip.file.exists">
+            <mkdir dir="${lib.dir}" />
+            <get src="${wikitext.zip.src}"
+                 dest="${wikitext.zip.file}"
+                 skipexisting="true"
+                 usetimestamp="true"
+                 verbose="true" />
+
+            <!-- Unfortunately there's currently no versioned release. Until there is one (if ever)
+                 checking the checksum is disabled. -->
+            <!--
+            <fail message="Checksum mismatch for ${wikitext.zip.file}. Please delete it and rerun ant to redownload.">
+                <condition>
+                    <not>
+                        <checksum file="${wikitext.zip.file}"
+                                  algorithm="SHA-512"
+                                  property="${wikitext.zip.checksum}"
+                                  verifyproperty="checksum.matches" />
+                    </not>
+                </condition>
+            </fail>
+            -->
+
+            <unzip dest="${lib.dir}" src="${wikitext.zip.file}" />
+        </sequential>
+    </target>
+
+    <!-- Resolves the necessary dependencies: -->
+    <target name="init.wikitext"
+            description="Resolves the necessary wikitext dependencies."
+            depends="wikitext.download">
+        <property name="wikitext.dir" location="${lib.dir}/${wikitext.basename}-${wikitext.version}" />
+        <path id="wikitext.classpath">
+            <fileset dir="${wikitext.dir}">
+                <include name="*.jar" />
+            </fileset>
+        </path>
+    </target>
 
 
     <!-- Resolves the necessary dependencies: -->
     <!-- Resolves the necessary dependencies: -->
     <target name="init.dependencies" description="Resolves the necessary dependencies." depends="init.aether">
     <target name="init.dependencies" description="Resolves the necessary dependencies." depends="init.aether">
@@ -244,11 +302,11 @@
     <!-- Generates the documentation in all supported formats. -->
     <!-- Generates the documentation in all supported formats. -->
     <target name="generate.all"
     <target name="generate.all"
             description="Generates the documentation in all supported formats."
             description="Generates the documentation in all supported formats."
-            depends="generate.html, generate.eclipsehelp, generate.pdf" />
+            depends="generate.eclipsehelp" />
 
 
 
 
     <!-- Generates the documentation as HTML. -->
     <!-- Generates the documentation as HTML. -->
-    <target name="generate.html"
+    <target name="generate.html.from.docbook"
             description="Generates the documentation as HTML."
             description="Generates the documentation as HTML."
             depends="validate, init.docbook-xsl">
             depends="validate, init.docbook-xsl">
         <docbook.conversion src.dir="${res.dir.name}"
         <docbook.conversion src.dir="${res.dir.name}"
@@ -260,7 +318,7 @@
 
 
 
 
     <!-- Generates the documentation as Eclipse help. This is essentially chunked HTML with a TOC file. -->
     <!-- Generates the documentation as Eclipse help. This is essentially chunked HTML with a TOC file. -->
-    <target name="generate.eclipsehelp"
+    <target name="generate.eclipsehelp.from.docbook"
             description="Generates the documentation as Eclipse help."
             description="Generates the documentation as Eclipse help."
             depends="validate, init.docbook-xsl">
             depends="validate, init.docbook-xsl">
         <docbook.conversion src.dir="${res.dir.name}"
         <docbook.conversion src.dir="${res.dir.name}"
@@ -271,8 +329,22 @@
     </target>
     </target>
 
 
 
 
+    <!-- Generates the documentation as Eclipse help. This is essentially chunked HTML with a TOC file. -->
+    <target name="generate.eclipsehelp"
+            description="Generates the documentation as Eclipse help from the textile (wikitext) sources."
+            depends="init.wikitext">
+        <wikitext.conversion src.dir="${src.dir.name}"
+                             src.file.name="${src.basename}.textile"
+                             dst.dir="${help.dir.name}"
+                             dst.file.name="---"
+                             style="---" />
+    </target>
+
+
     <!-- Generates the documentation as PDF. -->
     <!-- Generates the documentation as PDF. -->
-    <target name="generate.pdf" description="Generates the documentation as PDF." depends="validate, init.docbook-xsl">
+    <target name="generate.pdf.from.docbook"
+            description="Generates the documentation as PDF."
+            depends="validate, init.docbook-xsl">
         <docbook.conversion src.dir="${res.dir.name}"
         <docbook.conversion src.dir="${res.dir.name}"
                             src.file.name="${res.basename}.xml"
                             src.file.name="${res.basename}.xml"
                             dst.dir="${pdf.dir.name}"
                             dst.dir="${pdf.dir.name}"
@@ -286,6 +358,61 @@
     </target>
     </target>
 
 
 
 
+
+    <!-- Converts a Textile document into Eclipsehelp format. Produces an HTML document and a corresponding toc.xml -->
+    <macrodef name="wikitext.conversion"
+              description="Converts a textile document into a target format. Produces an HTML document and a corresponding toc.xml">
+        <attribute name="src.dir" />
+        <attribute name="src.file.name" />
+        <attribute name="dst.dir" />
+        <attribute name="dst.file.name" />
+        <attribute name="style" />
+
+        <sequential>
+            <basename property="src.file.basename" file="@{src.file.name}" suffix=".textile" />
+            <taskdef classpathref="wikitext.classpath"
+                     resource="org/eclipse/mylyn/wikitext/core/ant/tasks.properties" />
+            <wikitext-to-eclipse-help markupLanguage="Textile"
+                                      multipleOutputFiles="false"
+                                      navigationImages="true"
+                                      formatoutput="true"
+                                      validate="true"
+                                      failOnValidationError="true"
+                                      failOnValidationWarning="false"
+                                      title="YAKINDU Statechart Tools – User Documentation"
+                                      helpPrefix="@{dst.dir}">
+                <fileset dir="@{src.dir}">
+                    <include name="@{src.file.name}" />
+                </fileset>
+                <stylesheet url="css/style.css" />
+            </wikitext-to-eclipse-help>
+
+            <!-- Files have been generated in the source directory, which is bad practice. Move them to the destination
+                 directory: -->
+            <move todir="@{dst.dir}">
+                <fileset dir="${src.dir}">
+                    <include name="${src.file.basename}.html" />
+                    <include name="${src.file.basename}-toc.xml" />
+                </fileset>
+            </move>
+
+            <!-- Copy the CSS files to the destination directory: -->
+            <copy todir="@{dst.dir}/${css.dir.name}">
+                <fileset dir="${css.dir}">
+                    <include name="*" />
+                </fileset>
+            </copy>
+
+            <!-- Copy the image files to the destination directory: -->
+            <copy todir="@{dst.dir}/${img.dir.name}">
+                <fileset dir="${img.dir}">
+                    <include name="*" />
+                </fileset>
+            </copy>
+
+        </sequential>
+    </macrodef>
+
     <!-- Converts a DocBook document into a target format. -->
     <!-- Converts a DocBook document into a target format. -->
     <macrodef name="docbook.conversion" description="Converts a DocBook document into a target format.">
     <macrodef name="docbook.conversion" description="Converts a DocBook document into a target format.">
         <attribute name="src.dir" />
         <attribute name="src.dir" />

+ 8 - 8
plugins/org.yakindu.sct.doc.user/contexts.xml

@@ -3,26 +3,26 @@
 <contexts>
 <contexts>
    <context id="sc_properties_entry_entrykind" title="Entry">
    <context id="sc_properties_entry_entrykind" title="Entry">
       <description>An entry, possibly with a shallow or deep history, defines which state is to be activated first in a state machine or region.</description>
       <description>An entry, possibly with a shallow or deep history, defines which state is to be activated first in a state machine or region.</description>
-      <topic href="help/documentation-ar01s02.html#entry" label="Entry"/>
-      <topic href="help/documentation-ar01s02.html#shallow-history" label="Shallow History state"/>
-        <topic href="help/documentation-ar01s02.html#deep-history" label="Deep History state"/>
+      <topic href="help/documentation.html#entry" label="Entry"/>
+      <topic href="help/documentation.html#shallow-history" label="Shallow History state"/>
+        <topic href="help/documentation.html#deep-history" label="Deep History state"/>
    </context>
    </context>
    <context id="sc_properties_state_expression" title="State">
    <context id="sc_properties_state_expression" title="State">
       <description>States are central elements of a state machine.</description>
       <description>States are central elements of a state machine.</description>
-      <topic href="help/documentation-ar01s02.html#state" label="State"/>
+      <topic href="help/documentation.html#state" label="State"/>
    </context>
    </context>
    <context id="sc_properties_statechart_expression" title="Expressions">
    <context id="sc_properties_statechart_expression" title="Expressions">
       <description>Expressions are used to declare events, variables etc. and to define behavior.</description>
       <description>Expressions are used to declare events, variables etc. and to define behavior.</description>
-      <topic href="help/documentation-ar01s02.html#expressions" label="Expression reference"/>
+      <topic href="help/documentation.html#expressions" label="Expression reference"/>
    </context>
    </context>
    <context id="sc_properties_transition_expression" title="Transition">
    <context id="sc_properties_transition_expression" title="Transition">
       <description>A transition is the transfer of one state to another. Transitions are diagrammed as arrows. They can carry events and actions, but don't need to.</description>
       <description>A transition is the transfer of one state to another. Transitions are diagrammed as arrows. They can carry events and actions, but don't need to.</description>
-      <topic href="help/documentation-ar01s02.html#transition" label="Transition reference"/>
+      <topic href="help/documentation.html#transition" label="Transition reference"/>
    </context>
    </context>
    <context id="sgen_feature" title="Genmodel Features">
    <context id="sgen_feature" title="Genmodel Features">
-      <topic href="help/documentation-ar01s02.html" label="YAKINDU Statechart Tools User Guide"/>
+      <topic href="help/documentation.html" label="YAKINDU Statechart Tools User Guide"/>
    </context>
    </context>
    <context id="stext_keyword">
    <context id="stext_keyword">
-      <topic href="help/documentation-ar01s02.html" label="YAKINDU Statechart Tools User Guide"/>
+      <topic href="help/documentation.html" label="YAKINDU Statechart Tools User Guide"/>
    </context>
    </context>
 </contexts>
 </contexts>

+ 4 - 0
plugins/org.yakindu.sct.doc.user/css/custom.css

@@ -234,6 +234,10 @@ pre.synopsis code.varname {
     font-style: italic;
     font-style: italic;
 }
 }
 
 
+pre {
+    line-height: 100%;
+}
+
 
 
 
 
 div.example {
 div.example {

Разница между файлами не показана из-за своего большого размера
+ 549 - 0
plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting.sct


+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_c_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::c {
+
+	statechart TrafficLightWaiting {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/trafficlightwaiting/c/default/src-gen"
+			libraryTargetFolder = "examples/trafficlightwaiting/c/default/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_cpp_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::cpp {
+
+	statechart TrafficLightWaiting {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/trafficlightwaiting/cpp/default/src-gen"
+			libraryTargetFolder = "examples/trafficlightwaiting/cpp/default/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_java_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::java {
+
+	statechart TrafficLightWaiting {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/trafficlightwaiting/java/default/src-gen"
+			libraryTargetFolder = "examples/trafficlightwaiting/java/default/src"
+		}
+	}
+}

+ 14 - 0
plugins/org.yakindu.sct.doc.user/model/TrafficLightWaiting_java_timerservice.sgen

@@ -0,0 +1,14 @@
+GeneratorModel for yakindu::java {
+
+	statechart TrafficLightWaiting {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/trafficlightwaiting/java/timerservice/src-gen"
+			libraryTargetFolder = "examples/trafficlightwaiting/java/timerservice/src"
+		}
+		feature GeneralFeatures {
+			TimerService = true
+		}
+	}
+}

+ 73 - 0
plugins/org.yakindu.sct.doc.user/model/default_sm.sct

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_i9tWgNvWEeW8u6lR5q1jkw" specification="interface Sample:&#xA;    var a:boolean&#xA;    in event evA:boolean&#xA;    out event evB:integer" name="DefaultSM">
+    <regions xmi:id="_i9ukotvWEeW8u6lR5q1jkw" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_i90EMdvWEeW8u6lR5q1jkw">
+        <outgoingTransitions xmi:id="_i92gddvWEeW8u6lR5q1jkw" target="_i91SV9vWEeW8u6lR5q1jkw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_i91SV9vWEeW8u6lR5q1jkw" specification="" name="MyState" incomingTransitions="_i92gddvWEeW8u6lR5q1jkw"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_i9ukoNvWEeW8u6lR5q1jkw" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_i9tWgNvWEeW8u6lR5q1jkw" measurementUnit="Pixel">
+    <children xmi:id="_i9xA4NvWEeW8u6lR5q1jkw" type="Region" element="_i9ukotvWEeW8u6lR5q1jkw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i9zdINvWEeW8u6lR5q1jkw" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i9zdIdvWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i9zdItvWEeW8u6lR5q1jkw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_i9zdI9vWEeW8u6lR5q1jkw" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_i90rQNvWEeW8u6lR5q1jkw" type="Entry" element="_i90EMdvWEeW8u6lR5q1jkw">
+          <children xmi:id="_i91SUNvWEeW8u6lR5q1jkw" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_i91SU9vWEeW8u6lR5q1jkw" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_i91SVNvWEeW8u6lR5q1jkw"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_i91SVdvWEeW8u6lR5q1jkw"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_i91SUdvWEeW8u6lR5q1jkw" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i91SUtvWEeW8u6lR5q1jkw"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_i90rQdvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="0" lineColor="16777215"/>
+          <styles xsi:type="notation:NamedStyle" xmi:id="_i90rQtvWEeW8u6lR5q1jkw" name="allowColors"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i91SVtvWEeW8u6lR5q1jkw" x="121" y="21"/>
+        </children>
+        <children xmi:id="_i915YNvWEeW8u6lR5q1jkw" type="State" element="_i91SV9vWEeW8u6lR5q1jkw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_i915ZNvWEeW8u6lR5q1jkw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_i915ZdvWEeW8u6lR5q1jkw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_i915ZtvWEeW8u6lR5q1jkw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_i915Z9vWEeW8u6lR5q1jkw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_i92gcNvWEeW8u6lR5q1jkw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i92gcdvWEeW8u6lR5q1jkw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_i92gctvWEeW8u6lR5q1jkw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_i915YdvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_i915YtvWEeW8u6lR5q1jkw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_i92gc9vWEeW8u6lR5q1jkw" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i92gdNvWEeW8u6lR5q1jkw" x="4" y="86" width="256"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i9zdJNvWEeW8u6lR5q1jkw"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_i9xA4dvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i90EMNvWEeW8u6lR5q1jkw" x="385" y="10" width="280" height="186"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_i94VoNvWEeW8u6lR5q1jkw" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i94VotvWEeW8u6lR5q1jkw" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i94Vo9vWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i94VpNvWEeW8u6lR5q1jkw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_i94VpdvWEeW8u6lR5q1jkw" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i94VptvWEeW8u6lR5q1jkw"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i948sNvWEeW8u6lR5q1jkw" x="10" y="10" width="365" height="186"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_i9ukodvWEeW8u6lR5q1jkw"/>
+    <edges xmi:id="_i93ukNvWEeW8u6lR5q1jkw" type="Transition" element="_i92gddvWEeW8u6lR5q1jkw" source="_i90rQNvWEeW8u6lR5q1jkw" target="_i915YNvWEeW8u6lR5q1jkw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i93ulNvWEeW8u6lR5q1jkw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i93uldvWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i93ultvWEeW8u6lR5q1jkw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_i93ukdvWEeW8u6lR5q1jkw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_i93uk9vWEeW8u6lR5q1jkw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_i93uktvWEeW8u6lR5q1jkw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 73 - 0
plugins/org.yakindu.sct.doc.user/model/default_sm_with_operation.sct

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_i9tWgNvWEeW8u6lR5q1jkw" specification="interface Sample:&#xA;    var a:boolean&#xA;    in event evA:boolean&#xA;    out event evB:integer&#xA;&#xA;operation myOperation(p1:integer, p2:boolean):integer" name="DefaultSMWithOperation">
+    <regions xmi:id="_i9ukotvWEeW8u6lR5q1jkw" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_i90EMdvWEeW8u6lR5q1jkw">
+        <outgoingTransitions xmi:id="_i92gddvWEeW8u6lR5q1jkw" target="_i91SV9vWEeW8u6lR5q1jkw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_i91SV9vWEeW8u6lR5q1jkw" specification="entry / Sample.myOperation(1, true)" name="MyState" incomingTransitions="_i92gddvWEeW8u6lR5q1jkw"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_i9ukoNvWEeW8u6lR5q1jkw" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_i9tWgNvWEeW8u6lR5q1jkw" measurementUnit="Pixel">
+    <children xmi:id="_i9xA4NvWEeW8u6lR5q1jkw" type="Region" element="_i9ukotvWEeW8u6lR5q1jkw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i9zdINvWEeW8u6lR5q1jkw" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i9zdIdvWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i9zdItvWEeW8u6lR5q1jkw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_i9zdI9vWEeW8u6lR5q1jkw" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_i90rQNvWEeW8u6lR5q1jkw" type="Entry" element="_i90EMdvWEeW8u6lR5q1jkw">
+          <children xmi:id="_i91SUNvWEeW8u6lR5q1jkw" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_i91SU9vWEeW8u6lR5q1jkw" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_i91SVNvWEeW8u6lR5q1jkw"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_i91SVdvWEeW8u6lR5q1jkw"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_i91SUdvWEeW8u6lR5q1jkw" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i91SUtvWEeW8u6lR5q1jkw"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_i90rQdvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="0" lineColor="16777215"/>
+          <styles xsi:type="notation:NamedStyle" xmi:id="_i90rQtvWEeW8u6lR5q1jkw" name="allowColors"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i91SVtvWEeW8u6lR5q1jkw" x="121" y="21"/>
+        </children>
+        <children xmi:id="_i915YNvWEeW8u6lR5q1jkw" type="State" element="_i91SV9vWEeW8u6lR5q1jkw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_i915ZNvWEeW8u6lR5q1jkw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_i915ZdvWEeW8u6lR5q1jkw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_i915ZtvWEeW8u6lR5q1jkw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_i915Z9vWEeW8u6lR5q1jkw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_i92gcNvWEeW8u6lR5q1jkw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i92gcdvWEeW8u6lR5q1jkw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_i92gctvWEeW8u6lR5q1jkw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_i915YdvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_i915YtvWEeW8u6lR5q1jkw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_i92gc9vWEeW8u6lR5q1jkw" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i92gdNvWEeW8u6lR5q1jkw" x="4" y="86"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i9zdJNvWEeW8u6lR5q1jkw"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_i9xA4dvWEeW8u6lR5q1jkw" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i90EMNvWEeW8u6lR5q1jkw" x="385" y="10" width="280" height="186"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_i94VoNvWEeW8u6lR5q1jkw" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i94VotvWEeW8u6lR5q1jkw" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i94Vo9vWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i94VpNvWEeW8u6lR5q1jkw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_i94VpdvWEeW8u6lR5q1jkw" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i94VptvWEeW8u6lR5q1jkw"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_i948sNvWEeW8u6lR5q1jkw" x="10" y="10" width="365" height="186"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_i9ukodvWEeW8u6lR5q1jkw"/>
+    <edges xmi:id="_i93ukNvWEeW8u6lR5q1jkw" type="Transition" element="_i92gddvWEeW8u6lR5q1jkw" source="_i90rQNvWEeW8u6lR5q1jkw" target="_i915YNvWEeW8u6lR5q1jkw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_i93ulNvWEeW8u6lR5q1jkw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_i93uldvWEeW8u6lR5q1jkw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_i93ultvWEeW8u6lR5q1jkw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_i93ukdvWEeW8u6lR5q1jkw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_i93uk9vWEeW8u6lR5q1jkw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_i93uktvWEeW8u6lR5q1jkw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_c_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::c {
+
+	statechart DefaultSM {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/c/default/src-gen"
+			libraryTargetFolder = "examples/defaultsm/c/default/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_c_operation.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::c {
+
+	statechart DefaultSMWithOperation {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/c/operation/src-gen"
+			libraryTargetFolder = "examples/defaultsm/c/operation/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_cpp_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::cpp {
+
+	statechart DefaultSM {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/cpp/default/src-gen"
+			libraryTargetFolder = "examples/defaultsm/cpp/default/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_cpp_operation.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::cpp {
+
+	statechart DefaultSMWithOperation {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/cpp/operation/src-gen"
+			libraryTargetFolder = "examples/defaultsm/cpp/operation/src"
+		}
+	}
+}

+ 11 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_java_default.sgen

@@ -0,0 +1,11 @@
+GeneratorModel for yakindu::java {
+
+	statechart DefaultSM {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/java/default/src-gen"
+			libraryTargetFolder = "examples/defaultsm/java/default/src"
+		}
+	}
+}

+ 14 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_java_observer.sgen

@@ -0,0 +1,14 @@
+GeneratorModel for yakindu::java {
+
+	statechart DefaultSM {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/java/observer/src-gen"
+			libraryTargetFolder = "examples/defaultsm/java/observer/src"
+		}
+		feature GeneralFeatures {
+			InterfaceObserverSupport = true
+		}
+	}
+}

+ 14 - 0
plugins/org.yakindu.sct.doc.user/model/defaultsm_java_operation.sgen

@@ -0,0 +1,14 @@
+GeneratorModel for yakindu::java {
+
+	statechart DefaultSMWithOperation {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.doc.user"
+			targetFolder = "examples/defaultsm/java/operation/src-gen"
+			libraryTargetFolder = "examples/defaultsm/java/operation/src"
+		}
+		feature GeneralFeatures {
+			InterfaceObserverSupport = true
+		}
+	}
+}

+ 1 - 1
plugins/org.yakindu.sct.doc.user/plugin.xml

@@ -3,7 +3,7 @@
 <plugin>
 <plugin>
 
 
     <extension point="org.eclipse.help.toc">
     <extension point="org.eclipse.help.toc">
-        <toc file="help/toc.xml" primary="true" />
+        <toc file="help/documentation-toc.xml" primary="true" />
     </extension>
     </extension>
 
 
     <extension point="org.eclipse.help.contexts">
     <extension point="org.eclipse.help.contexts">

Разница между файлами не показана из-за своего большого размера
+ 3650 - 0
plugins/org.yakindu.sct.doc.user/src/documentation.textile


+ 5 - 8
plugins/org.yakindu.sct.doc.user/src/documentation.xml

@@ -1259,13 +1259,11 @@ yakindu-sct/SCT
       <para>The dialog asks you for the project, the directory, and the name of the model file to be created. Eclipse project and
       <para>The dialog asks you for the project, the directory, and the name of the model file to be created. Eclipse project and
        directory should be correctly preset already. In our case the corresponding text field contains
        directory should be correctly preset already. In our case the corresponding text field contains
        <emphasis role="strong">LightSwitch/model</emphasis> which means the directory named
        <emphasis role="strong">LightSwitch/model</emphasis> which means the directory named
-       <emphasis
-       role="strong">model</emphasis> in the <emphasis role="strong">LightSwitch</emphasis> project.
+       <emphasis role="strong">model</emphasis> in the <emphasis role="strong">LightSwitch</emphasis> project.
        You can change that if you wish, but most likely you won't.</para>
        You can change that if you wish, but most likely you won't.</para>
 
 
       <para>The default file name in the <emphasis>File Name</emphasis> field is
       <para>The default file name in the <emphasis>File Name</emphasis> field is
-       <emphasis
-       role="strong">default.sct</emphasis>, however. You should change that to something more
+       <emphasis role="strong">default.sct</emphasis>, however. You should change that to something more
        meaningful. In our case we type <emphasis role="strong">LightSwitch.sct</emphasis> into the <emphasis>File
        meaningful. In our case we type <emphasis role="strong">LightSwitch.sct</emphasis> into the <emphasis>File
        name</emphasis> field, see the screenshot above.</para>
        name</emphasis> field, see the screenshot above.</para>
 
 
@@ -3059,8 +3057,7 @@ event voidEvent : void
       the event name, e. g. <literal>raiseIncoming_call()</literal>. If the event is an interface event, the name of
       the event name, e. g. <literal>raiseIncoming_call()</literal>. If the event is an interface event, the name of
       the interface must also be appended.</para>
       the interface must also be appended.</para>
 
 
-     <remark role="fixme">Add an
-      example!</remark>
+     <remark role="fixme">Add an example!</remark>
     </sect4>
     </sect4>
 
 
     <sect4 xml:id="calling-an-operation">
     <sect4 xml:id="calling-an-operation">
@@ -4167,7 +4164,7 @@ feature Debug {
     </figure>
     </figure>
 
 
     <para>You can checkout the C sample project
     <para>You can checkout the C sample project
-     <emphasis><link xl:href="https://github.com/Yakindu/statecharts/tree/master/examples/org.yakindu.sct.examples.c.trafficlight_">org.yakindu.sct.examples.c.trafficlight</link></emphasis>
+     <link xl:href="https://github.com/Yakindu/statecharts/tree/master/examples/org.yakindu.sct.examples.c.trafficlight_">org.yakindu.sct.examples.c.trafficlight</link>
      from the <link xl:href="https://github.com/Yakindu/statecharts"> <application>YAKINDU Statechart
      from the <link xl:href="https://github.com/Yakindu/statecharts"> <application>YAKINDU Statechart
      Tools</application> GitHub repository</link>. The C example contains statechart, SGen model, graphical widgets, and
      Tools</application> GitHub repository</link>. The C example contains statechart, SGen model, graphical widgets, and
      some glue code to connect the generated code with the widgets. The graphical widgets are based on Qt.</para>
      some glue code to connect the generated code with the widgets. The graphical widgets are based on Qt.</para>
@@ -4866,7 +4863,7 @@ feature GeneratorOptions {
      <remark role="fixme">This is quite likely a Java feature, at least JUnit is.</remark>
      <remark role="fixme">This is quite likely a Java feature, at least JUnit is.</remark>
 
 
      <para>Using the <emphasis>JUnitWrapper</emphasis> feature, it is possible to create JUnit tests that will run the generated
      <para>Using the <emphasis>JUnitWrapper</emphasis> feature, it is possible to create JUnit tests that will run the generated
-      gtests<remark role="fixme">What a gtests?</remark>.</para>
+      gtests.<remark role="fixme">What are gtests?</remark></para>
 
 
      <orderedlist numeration="arabic">
      <orderedlist numeration="arabic">
 
 

+ 1 - 1
plugins/org.yakindu.sct.doc.user/toc.xml

@@ -3,6 +3,6 @@
 
 
 <toc label="YAKINDU Statechart Tools Documentation">
 <toc label="YAKINDU Statechart Tools Documentation">
 
 
-	<link toc="help/toc.xml"/>
+	<link toc="help/documentation-toc.xml"/>
 
 
 </toc>
 </toc>