diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ea80e270a66f9005a475588276e9a341ad020841 Binary files /dev/null and b/.DS_Store differ diff --git a/.classpath b/.classpath index b0bfc4c38d16d9137fb3614051dff3b604572a9a..4f19badd18834c5dcac51e4b0de4bebe88f94eb5 100644 --- a/.classpath +++ b/.classpath @@ -1,18 +1,38 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src"> + <classpathentry including="**/*.java" kind="src" path="src"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> - <classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> + <attribute name="module" value="true"/> + <attribute name="add-exports" value="javafx.base/com.sun.javafx.event=fr.inria.structgraphics:javafx.base/com.sun.javafx.event=structgraphics"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="lib" path="lib/matheclipse-core-1.0.0-SNAPSHOT-jar-with-dependencies.jar"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="lib" path="lib/controlsfx-14.0.1-SNAPSHOT.jar"> + <attributes> + <attribute name="module" value="true"/> + <attribute name="add-exports" value="org.controlsfx.controls/impl.org.controlsfx.spreadsheet=structgraphics:org.controlsfx.controls/impl.org.controlsfx.i18n=structgraphics"/> </attributes> </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="lib" path="lib/matheclipse-core-1.0.0-SNAPSHOT-jar-with-dependencies.jar"/> <classpathentry kind="output" path="target/classes"/> </classpath> diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 91ca62e2761b9b632ad25bfa2bc6e543c97e4f0d..bc44b8dc3765cbf36eba2f5db39fe2260800f3ae 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,14 +1,16 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=14 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=14 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=enabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=14 diff --git a/README.md b/README.md index bec9d0741ceabe045b0ba6e5720b099376bdecf5..4392d985ac846ba9cae061a400dcc3d9a8c83c9d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # Code -This project contains the Java code of the StructGraphics visualization design tool. We recommend buidling the code with JDK 1.8. +This project contains the Java code of the StructGraphics visualization design tool. + +StructGraphics relies on the spreadsheet implementation of ControlsFX, which was originally developed for JDK 1.8. Unfortunately, blah blah... diff --git a/VisSketcher.launch b/VisSketcher.launch new file mode 100644 index 0000000000000000000000000000000000000000..d06e266a057e4455bea6e93c4fb3be44b7874f5b --- /dev/null +++ b/VisSketcher.launch @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> + <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> + <listEntry value="/structgraphics/src/fr/inria/structgraphics/VisSketcher.java"/> + </listAttribute> + <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> + <listEntry value="1"/> + </listAttribute> + <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> + <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> + <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> + <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> + <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="fr.inria.structgraphics.VisSketcher"/> + <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="structgraphics"/> + <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="structgraphics"/> + <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/> + <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--module-path ${project_classpath:structgraphics} --add-modules structgraphics,org.controlsfx.controls,javafx.controls,javafx.media,javafx.web,javafx.base,javafx.graphics --add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls --add-exports=structgraphics/fr.inria.structgraphics=javafx.graphics --add-opens=javafx.controls/javafx.scene.control.skin=org.controlsfx.controls --add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls"/> +</launchConfiguration> diff --git a/lib/.DS_Store b/lib/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 Binary files /dev/null and b/lib/.DS_Store differ diff --git a/lib/controlsfx-14.0.1-SNAPSHOT.jar b/lib/controlsfx-14.0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..2f4348e4beff7e6c738e604522434cefe4397e5d Binary files /dev/null and b/lib/controlsfx-14.0.1-SNAPSHOT.jar differ diff --git a/pom.xml b/pom.xml index 0ad7dae2e580a28513e7852db7dacddaa81de0d4..4d3e6d70f8d19355a7c5d18fa650e7557055498b 100644 --- a/pom.xml +++ b/pom.xml @@ -16,22 +16,29 @@ <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> - <version>3.7.0</version> + <version>3.8.1</version> <configuration> - <source>1.8</source> - <target>1.8</target> + <release>14</release> </configuration> </plugin> + <plugin> + <groupId>org.openjfx</groupId> + <artifactId>javafx-maven-plugin</artifactId> + <version>0.0.4</version> + <configuration> + <mainClass>hellofx/org.openjfx.App</mainClass> + </configuration> + </plugin> </plugins> </build> <dependencies> - <dependency> - <groupId>javax.json</groupId> - <artifactId>javax.json-api</artifactId> - <version>1.0</version> - </dependency> +<!-- <dependency> --> +<!-- <groupId>javax.json</groupId> --> +<!-- <artifactId>javax.json-api</artifactId> --> +<!-- <version>1.0</version> --> +<!-- </dependency> --> <dependency> <groupId>org.glassfish</groupId> @@ -39,6 +46,24 @@ <version>1.0.4</version> </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-controls</artifactId> + <version>14</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-media</artifactId> + <version>14</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-web</artifactId> + <version>14</version> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/sessions/library.json b/sessions/library.json index c2f1045b8097fa767537f247d0ec35691713423d..4345105bd8f43e9730e79d018dc7629a82236109 100644 --- a/sessions/library.json +++ b/sessions/library.json @@ -6,18 +6,18 @@ "prefix":"B.", "thickness":1.5, "stroke":"0xd9cccc80", - "x":143.75, - "y":808.0, - "sticky-y":"No", + "x":490.0, + "y":937.0, + "sticky-y":"Yes", "sticky-x":"Yes", "distribution-x":"None", - "distribution-y":"Distance", + "distribution-y":"None", "rotation":0.0, "delta-x":0.0, - "delta-y":44.0, + "delta-y":10.0, "curve":"None", - "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","y","width","shape","fill","stroke","thickness","rotation"], - "variable":["A.y","x","height"], + "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","shape","stroke","thickness","rotation"], + "variable":["x","y","width","height","fill"], "components":[ { "type":"Collection", @@ -26,103 +26,154 @@ "prefix":"A.", "thickness":1.5, "stroke":"0xd9cccc80", - "x":29.0, + "x":0.0, "y":0.0, "sticky-y":"No", "sticky-x":"No", - "distribution-x":"Distance", + "distribution-x":"None", "distribution-y":"None", "rotation":0.0, - "delta-x":50.25, + "delta-x":0.0, "delta-y":0.0, "curve":"None", - "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":["x"], + "common":["reference-x","reference-y","shape","fill","stroke","thickness","rotation"], + "variable":["x","y","width","height"], "components":[ { - "type":"Rectangle", + "type":"Ellipse", "id":"1.1", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":21.0, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-y":"Center", + "x":125.0, + "y":141.0, + "width":26.0, + "height":26.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"1.2", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":71.25, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-y":"Center", + "x":88.0, + "y":76.0, + "width":18.0, + "height":18.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"1.3", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":121.5, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-y":"Center", + "x":116.0, + "y":36.0, + "width":16.0, + "height":16.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"1.4", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":171.75, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-y":"Center", + "x":206.0, + "y":69.0, + "width":26.0, + "height":26.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"1.5", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":222.0, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-y":"Center", + "x":186.0, + "y":114.0, + "width":26.0, + "height":26.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" + }, + { + "type":"Ellipse", + "id":"1.6", + "level":0, + "reference-x":"Center", + "reference-y":"Center", + "x":266.0, + "y":107.0, + "width":26.0, + "height":26.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" + }, + { + "type":"Ellipse", + "id":"1.7", + "level":0, + "reference-x":"Center", + "reference-y":"Center", + "x":216.0, + "y":141.0, + "width":14.0, + "height":14.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" + }, + { + "type":"Ellipse", + "id":"1.8", + "level":0, + "reference-x":"Center", + "reference-y":"Center", + "x":300.0, + "y":188.0, + "width":26.0, + "height":26.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe64d4db1", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" } ] }, @@ -133,314 +184,388 @@ "prefix":"A.", "thickness":1.5, "stroke":"0xd9cccc80", - "x":29.0, - "y":44.0, + "x":0.0, + "y":0.0, "sticky-y":"No", "sticky-x":"No", - "distribution-x":"Distance", + "distribution-x":"None", "distribution-y":"None", "rotation":0.0, - "delta-x":50.25, + "delta-x":0.0, "delta-y":0.0, "curve":"None", - "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":["x"], + "common":["reference-x","reference-y","shape","fill","stroke","thickness","rotation"], + "variable":["x","y","width","height"], "components":[ { - "type":"Rectangle", + "type":"Ellipse", "id":"2.1", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":21.0, - "y":0.0, - "width":30.0, - "height":16.0, + "reference-y":"Center", + "x":30.0, + "y":56.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"2.2", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":71.25, - "y":0.0, - "width":30.0, - "height":16.0, + "reference-y":"Center", + "x":67.0, + "y":104.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"2.3", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":121.5, - "y":0.0, - "width":30.0, - "height":16.0, + "reference-y":"Center", + "x":126.0, + "y":68.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"2.4", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":171.75, - "y":0.0, - "width":30.0, - "height":16.0, + "reference-y":"Center", + "x":164.0, + "y":71.0, + "width":26.0, + "height":26.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"2.5", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":222.0, - "y":0.0, - "width":30.0, - "height":16.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" - } - ] - }, - { - "type":"Collection", - "id":"3", - "level":1, - "prefix":"A.", - "thickness":1.5, - "stroke":"0xd9cccc80", - "x":29.0, - "y":88.0, - "sticky-y":"No", - "sticky-x":"No", - "distribution-x":"Distance", - "distribution-y":"None", - "rotation":0.0, - "delta-x":50.25, - "delta-y":0.0, - "curve":"None", - "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":["x"], - "components":[ - { - "type":"Rectangle", - "id":"3.1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":21.0, - "y":0.0, - "width":30.0, - "height":24.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" - }, - { - "type":"Rectangle", - "id":"3.2", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":71.25, - "y":0.0, - "width":30.0, - "height":24.0, + "reference-y":"Center", + "x":147.0, + "y":116.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", - "id":"3.3", + "type":"Ellipse", + "id":"2.6", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":121.5, - "y":0.0, - "width":30.0, - "height":24.0, + "reference-y":"Center", + "x":257.0, + "y":157.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", - "id":"3.4", + "type":"Ellipse", + "id":"2.7", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":171.75, - "y":0.0, - "width":30.0, - "height":24.0, + "reference-y":"Center", + "x":311.0, + "y":149.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" }, { - "type":"Rectangle", - "id":"3.5", + "type":"Ellipse", + "id":"2.8", "level":0, "reference-x":"Center", - "reference-y":"Bottom", - "x":222.0, - "y":0.0, - "width":30.0, - "height":24.0, + "reference-y":"Center", + "x":237.0, + "y":97.0, + "width":20.0, + "height":20.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", - "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" + "fill":"0x6680e696", + "stroke":"0x50508000", + "shape":"Ellipse", + "lock":"true" } ] - }, - { - "type":"Collection", - "id":"4", - "level":1, - "prefix":"A.", - "thickness":1.5, - "stroke":"0xd9cccc80", - "x":29.0, - "y":132.0, - "sticky-y":"No", - "sticky-x":"No", - "distribution-x":"Distance", - "distribution-y":"None", + } + ] + }, + { + "type":"Group", + "level":1, + "prefix":"A.", + "x":1004.0, + "y":1228.0, + "sticky-y":"Yes", + "sticky-x":"Yes", + "distribution-x":"None", + "distribution-y":"Spacing", + "rotation":0.0, + "delta-x":0.0, + "delta-y":10.0, + "common":["reference-x","reference-y","x","rotation"], + "variable":["y","width","height","shape","text","fontsize","fill","stroke","thickness"], + "public":["A.x","A.y"], + "bindings":[ + ["reference-x1","reference-x2"], + ["reference-y1","reference-y2"], + ["x1","x2"], + ["rotation1","rotation2"] + ], + "components":[ + { + "type":"Rectangle", + "id":"1", + "level":0, + "reference-x":"Center", + "reference-y":"Bottom", + "x":0.0, + "y":0.0, + "width":66.0, + "height":62.0, + "thickness":0.5, "rotation":0.0, - "delta-x":50.25, - "delta-y":0.0, + "fill":"0xffff66ff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Text", + "id":"2", + "level":0, + "reference-x":"Center", + "reference-y":"Bottom", + "x":0.0, + "y":72.0, + "width":75.0, + "height":19.0, + "rotation":0.0, + "fill":"0x696969ff", + "text":"my label", + "fontsize":14.0, + "lock":"false" + } + ] + }, + { + "type":"Collection", + "level":2, + "prefix":"B.", + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":1004.0, + "y":935.0, + "sticky-y":"Yes", + "sticky-x":"Yes", + "distribution-x":"None", + "distribution-y":"None", + "rotation":0.0, + "delta-x":0.0, + "delta-y":0.0, + "curve":"None", + "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","height","shape","stroke","thickness","rotation"], + "variable":["y","width","fill"], + "components":[ + { + "type":"Collection", + "id":"1", + "level":1, + "prefix":"A.", + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":0.0, + "y":0.0, + "sticky-y":"Yes", + "sticky-x":"Yes", + "distribution-x":"None", + "distribution-y":"Spacing", + "rotation":0.0, + "delta-x":0.0, + "delta-y":11.0, "curve":"None", - "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":["x"], + "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"], + "variable":["y","width"], "components":[ { "type":"Rectangle", - "id":"4.1", + "id":"1.1", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":21.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, "y":0.0, - "width":30.0, - "height":30.0, + "width":-39.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0xe6b3e6ff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"4.2", + "id":"1.2", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":71.25, - "y":0.0, - "width":30.0, - "height":30.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":36.0, + "width":-72.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0xe6b3e6ff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"4.3", + "id":"1.3", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":121.5, - "y":0.0, - "width":30.0, - "height":30.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":72.0, + "width":-82.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0xe6b3e6ff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"4.4", + "id":"1.4", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":171.75, - "y":0.0, - "width":30.0, - "height":30.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":108.0, + "width":-89.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0xe6b3e6ff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"4.5", + "id":"1.5", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":222.0, - "y":0.0, - "width":30.0, - "height":30.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":144.0, + "width":-93.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe6b3e6ff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"1.6", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":180.0, + "width":-51.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe6b3e6ff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"1.7", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":216.0, + "width":-39.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xe6b3e6ff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"1.8", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":252.0, + "width":-26.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0xe6b3e6ff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" @@ -449,105 +574,156 @@ }, { "type":"Collection", - "id":"5", + "id":"2", "level":1, "prefix":"A.", "thickness":1.5, "stroke":"0xd9cccc80", - "x":29.0, - "y":176.0, - "sticky-y":"No", - "sticky-x":"No", - "distribution-x":"Distance", - "distribution-y":"None", + "x":0.0, + "y":0.0, + "sticky-y":"Yes", + "sticky-x":"Yes", + "distribution-x":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":50.25, - "delta-y":0.0, + "delta-x":0.0, + "delta-y":11.0, "curve":"None", - "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":["x"], + "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"], + "variable":["y","width"], "components":[ { "type":"Rectangle", - "id":"5.1", + "id":"2.1", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":21.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, "y":0.0, "width":30.0, - "height":37.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0x99b3ffff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"5.2", + "id":"2.2", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":71.25, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":36.0, + "width":86.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0x99b3ffff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"5.3", + "id":"2.3", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":121.5, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":72.0, + "width":82.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0x99b3ffff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"5.4", + "id":"2.4", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":171.75, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":108.0, + "width":103.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0x99b3ffff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" }, { "type":"Rectangle", - "id":"5.5", + "id":"2.5", "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":222.0, - "y":0.0, - "width":30.0, - "height":37.0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":144.0, + "width":125.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x99b3ffff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"2.6", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":180.0, + "width":66.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x99b3ffff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"2.7", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":216.0, + "width":36.0, + "height":25.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x99b3ffff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"2.8", + "level":0, + "reference-x":"Left", + "reference-y":"Center", + "x":0.0, + "y":252.0, + "width":9.0, + "height":25.0, "thickness":0.5, "rotation":0.0, - "fill":"0xcbd7e4ff", + "fill":"0x99b3ffff", "stroke":"0x505080ff", "shape":"Rectangle", "lock":"false" @@ -560,31 +736,26 @@ "type":"Group", "level":1, "prefix":"A.", - "x":494.0, - "y":913.0, + "x":978.0, + "y":803.0, "sticky-y":"Yes", - "sticky-x":"No", + "sticky-x":"Yes", "distribution-x":"None", - "distribution-y":"Spacing", - "rotation":20.0, - "delta-x":0.0, + "distribution-y":"None", + "rotation":0.0, + "delta-x":-124.0, "delta-y":0.0, - "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"], - "variable":["y","width"], + "common":["reference-x","reference-y","x1","y","stroke","thickness","rotation"], + "variable":["width","height","shape","fill"], "public":["A.x","A.y"], "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1"], - ["reference-y2","reference-y3"], - ["x1","x2","x3"], - ["height1","height3"], - ["height2"], - ["shape1","shape2","shape3"], - ["fill1","fill3"], - ["fill2"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2","rotation3"] + ["reference-x1","reference-x2"], + ["reference-y1","reference-y2"], + ["x1","x2"], + ["y1","y2"], + ["stroke1","stroke2"], + ["thickness1","thickness2"], + ["rotation1","rotation2"] ], "components":[ { @@ -592,761 +763,482 @@ "id":"1", "level":0, "reference-x":"Center", - "reference-y":"Top", + "reference-y":"Center", "x":0.0, - "y":-41.0, - "width":92.0, - "height":10.0, + "y":0.0, + "width":106.0, + "height":106.0, "thickness":0.5, "rotation":0.0, - "fill":"0xe6e699ff", + "fill":"0xff9999ff", "stroke":"0x505080ff", "shape":"Rectangle", - "lock":"false" + "lock":"true" }, { - "type":"Rectangle", + "type":"Ellipse", "id":"2", "level":0, "reference-x":"Center", "reference-y":"Center", "x":0.0, - "y":2.0, - "width":13.0, - "height":86.0, + "y":0.0, + "width":78.0, + "height":78.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffe6ccff", + "fill":"0xffff66ff", "stroke":"0x505080ff", - "shape":"Rectangle", - "lock":"false" - }, - { - "type":"Rectangle", - "id":"3", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":50.0, - "width":55.0, - "height":10.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xe6e699ff", - "stroke":"0x505080ff", - "shape":"Rectangle", + "shape":"Ellipse", "lock":"false" } ] }, { "type":"Collection", - "level":1, - "prefix":"A.", - "thickness":1.5, - "stroke":"0xd9cccc80", - "x":107.125, - "y":3.0, - "sticky-y":"No", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"Spacing", - "rotation":0.0, - "delta-x":0.0, - "delta-y":5.0, - "curve":"None", - "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], - "variable":["y","height","fill"], - "components":[ - { - "type":"Ellipse", - "id":"1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":0.0, - "width":37.0, - "height":29.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffe6ccff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - }, - { - "type":"Ellipse", - "id":"2", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":34.0, - "width":37.0, - "height":22.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xff9999ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - }, - { - "type":"Ellipse", - "id":"3", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":61.0, - "width":37.0, - "height":37.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffcc66ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] - }, - { - "type":"Group", - "level":1, - "prefix":"A.", - "x":174.0, - "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", - "distribution-x":"None", - "distribution-y":"None", - "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1"], - ["x2"], - ["x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], - "components":[ - { - "type":"Ellipse", - "id":"1", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":122.0, - "height":122.0, - "thickness":0.0, - "rotation":0.0, - "fill":"0xcc3333ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" - }, - { - "type":"Ellipse", - "id":"2", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":0.0, - "fill":"0x99cc99ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - }, - { - "type":"Ellipse", - "id":"3", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] - }, - { - "type":"LineChart", "level":2, "prefix":"B.", "thickness":1.5, - "stroke":"0xe6e64dff", - "x":84.0, - "y":902.0, + "stroke":"0xd9cccc80", + "x":125.0, + "y":1120.0, "sticky-y":"No", - "sticky-x":"Yes", - "distribution-x":"Spacing", + "sticky-x":"No", + "distribution-x":"Distance", "distribution-y":"None", "rotation":0.0, - "delta-x":29.0, + "delta-x":57.125, "delta-y":0.0, - "curve":"BezierSolid", - "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.rotation","reference-x1","reference-y1","x1","y1","shape1","fill1","stroke1","thickness1","rotation1","x2","width2","height2","fill2","x3","rotation3"], - "variable":["A.x","width1","height1","reference-x2","reference-y2","y2","shape2","stroke2","thickness2","rotation2","reference-x3","reference-y3","y3","width3","height3","shape3","fill3","stroke3","thickness3"], + "curve":"None", + "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","width","shape","fill","stroke","thickness","rotation"], + "variable":["A.x","y","height"], "components":[ { - "type":"Group", + "type":"Collection", "id":"1", "level":1, "prefix":"A.", - "x":81.5, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":42.0, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", + "sticky-y":"No", + "sticky-x":"No", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], + "delta-x":0.0, + "delta-y":5.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"1.1", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, "y":0.0, - "width":122.0, - "height":122.0, - "thickness":0.0, + "width":37.0, + "height":49.0, + "thickness":0.5, "rotation":0.0, - "fill":"0xe6804dff", + "fill":"0xffe6ccff", "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" + "shape":"Rectangle", + "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"1.2", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, + "y":54.0, + "width":37.0, + "height":27.0, + "thickness":0.5, "rotation":0.0, - "fill":"0x99cc99ff", + "fill":"0xe6e699ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"1.3", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", + "y":86.0, + "width":37.0, + "height":38.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x80b380ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" } ] }, { - "type":"Group", + "type":"Collection", "id":"2", "level":1, "prefix":"A.", - "x":218.5, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":99.125, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", + "sticky-y":"No", + "sticky-x":"No", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], + "delta-x":0.0, + "delta-y":5.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"2.1", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, "y":0.0, - "width":94.0, - "height":94.0, - "thickness":0.0, + "width":37.0, + "height":29.0, + "thickness":0.5, "rotation":0.0, - "fill":"0xe6804dff", + "fill":"0xffe6ccff", "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" + "shape":"Rectangle", + "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"2.2", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, + "y":34.0, + "width":37.0, + "height":22.0, + "thickness":0.5, "rotation":0.0, - "fill":"0x99cc99ff", + "fill":"0xe6e699ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"2.3", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", + "y":61.0, + "width":37.0, + "height":37.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x80b380ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" } ] }, { - "type":"Group", + "type":"Collection", "id":"3", "level":1, "prefix":"A.", - "x":340.5, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":156.25, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", + "sticky-y":"No", + "sticky-x":"No", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], + "delta-x":0.0, + "delta-y":5.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"3.1", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, "y":0.0, - "width":92.0, - "height":92.0, - "thickness":0.0, + "width":37.0, + "height":57.0, + "thickness":0.5, "rotation":0.0, - "fill":"0xe6804dff", + "fill":"0xffe6ccff", "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" + "shape":"Rectangle", + "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"3.2", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, + "y":62.0, + "width":37.0, + "height":20.0, + "thickness":0.5, "rotation":0.0, - "fill":"0x99cc99ff", + "fill":"0xe6e699ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"3.3", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", + "y":87.0, + "width":37.0, + "height":37.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x80b380ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" } ] }, { - "type":"Group", + "type":"Collection", "id":"4", "level":1, "prefix":"A.", - "x":480.5, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":213.375, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", + "sticky-y":"No", + "sticky-x":"No", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], + "delta-x":0.0, + "delta-y":5.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"4.1", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, "y":0.0, - "width":130.0, - "height":130.0, - "thickness":0.0, + "width":37.0, + "height":47.0, + "thickness":0.5, "rotation":0.0, - "fill":"0xe6804dff", + "fill":"0xffe6ccff", "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" + "shape":"Rectangle", + "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"4.2", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, + "y":52.0, + "width":37.0, + "height":42.0, + "thickness":0.5, "rotation":0.0, - "fill":"0x99cc99ff", + "fill":"0xe6e699ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"4.3", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", + "y":99.0, + "width":37.0, + "height":54.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x80b380ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" } ] }, { - "type":"Group", + "type":"Collection", "id":"5", "level":1, "prefix":"A.", - "x":639.5, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":270.5, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", + "sticky-y":"No", + "sticky-x":"No", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], + "delta-x":0.0, + "delta-y":5.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"5.1", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, "y":0.0, - "width":130.0, - "height":130.0, - "thickness":0.0, + "width":37.0, + "height":18.0, + "thickness":0.5, "rotation":0.0, - "fill":"0xe6804dff", + "fill":"0xffe6ccff", "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" + "shape":"Rectangle", + "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"5.2", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, + "y":23.0, + "width":37.0, + "height":22.0, + "thickness":0.5, "rotation":0.0, - "fill":"0x99cc99ff", + "fill":"0xe6e699ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" }, { - "type":"Ellipse", + "type":"Rectangle", "id":"5.3", "level":0, "reference-x":"Center", - "reference-y":"Center", + "reference-y":"Bottom", "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", + "y":50.0, + "width":37.0, + "height":26.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0x80b380ff", "stroke":"0x505080ff", - "shape":"Ellipse", + "shape":"Rectangle", "lock":"false" } ] - }, + } + ] + }, + { + "type":"Group", + "level":1, + "prefix":"A.", + "x":222.5, + "y":1071.0, + "sticky-y":"No", + "sticky-x":"No", + "distribution-x":"None", + "distribution-y":"Spacing", + "rotation":20.0, + "delta-x":0.0, + "delta-y":4.0, + "common":["reference-x","reference-y","x","shape","stroke","thickness","rotation"], + "variable":["y","width","height","fill"], + "public":["A.x","A.y"], + "bindings":[ + ["reference-x1","reference-x2"], + ["reference-y1","reference-y2"], + ["x1","x2"], + ["shape1","shape2"], + ["stroke1","stroke2"], + ["thickness1","thickness2"], + ["rotation1","rotation2"] + ], + "components":[ { - "type":"Group", - "id":"6", - "level":1, - "prefix":"A.", - "x":798.5, + "type":"Rectangle", + "id":"1", + "level":0, + "reference-x":"Center", + "reference-y":"Bottom", + "x":0.0, "y":0.0, - "sticky-y":"Yes", - "sticky-x":"Yes", - "distribution-x":"None", - "distribution-y":"None", + "width":88.0, + "height":12.0, + "thickness":0.5, "rotation":0.0, - "delta-x":12.0, - "delta-y":0.0, - "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"], - "variable":[], - "public":["A.x","A.y","width1","fill1","fill2","fill3"], - "bindings":[ - ["reference-x1","reference-x2","reference-x3"], - ["reference-y1","reference-y2","reference-y3"], - ["x1","x2","x3"], - ["y1","y2","y3"], - ["width1"], - ["width2","width3"], - ["height1"], - ["height2","height3"], - ["shape1","shape2","shape3"], - ["fill1"], - ["fill2","fill3"], - ["stroke1","stroke2","stroke3"], - ["thickness1","thickness2","thickness3"], - ["rotation1","rotation2"], - ["rotation3"] - ], - "components":[ - { - "type":"Ellipse", - "id":"6.1", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":130.0, - "height":130.0, - "thickness":0.0, - "rotation":0.0, - "fill":"0xe6804dff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"true" - }, - { - "type":"Ellipse", - "id":"6.2", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":0.0, - "fill":"0x99cc99ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - }, - { - "type":"Ellipse", - "id":"6.3", - "level":0, - "reference-x":"Center", - "reference-y":"Center", - "x":0.0, - "y":0.0, - "width":20.0, - "height":51.0, - "thickness":0.0, - "rotation":90.0, - "fill":"0x99cc99ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] + "fill":"0xffccccff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" + }, + { + "type":"Rectangle", + "id":"2", + "level":0, + "reference-x":"Center", + "reference-y":"Bottom", + "x":0.0, + "y":16.0, + "width":16.0, + "height":91.0, + "thickness":0.5, + "rotation":0.0, + "fill":"0xb3ccffff", + "stroke":"0x505080ff", + "shape":"Rectangle", + "lock":"false" } ] }, @@ -1356,498 +1248,263 @@ "prefix":"B.", "thickness":1.5, "stroke":"0xd9cccc80", - "x":940.0, - "y":946.0, + "x":127.0, + "y":871.5, "sticky-y":"No", "sticky-x":"No", "distribution-x":"None", "distribution-y":"None", "rotation":0.0, - "delta-x":42.25, + "delta-x":0.0, "delta-y":0.0, "curve":"None", - "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","reference-x1","reference-y1","x1","y1","width1","height1","shape1","fill1","stroke1","thickness1","rotation1"], - "variable":["A.rotation"], + "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","width","shape","fill","stroke","thickness","rotation"], + "variable":["A.x","y","height"], "components":[ { - "type":"Group", + "type":"Collection", "id":"1", "level":1, "prefix":"A.", - "x":12.0, - "y":72.0, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":23.0, + "y":14.0, "sticky-y":"Yes", - "sticky-x":"No", + "sticky-x":"Yes", "distribution-x":"None", - "distribution-y":"None", + "distribution-y":"Spacing", "rotation":0.0, "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], + "delta-y":7.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", + "type":"Rectangle", "id":"1.1", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":0.0, + "width":16.0, + "height":44.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xccccccff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"2", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":30.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"2.1", + "type":"Rectangle", + "id":"1.2", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":51.0, + "width":16.0, + "height":10.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xffe666ff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"3", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":60.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"3.1", + "type":"Rectangle", + "id":"1.3", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":68.0, + "width":16.0, + "height":148.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xe64d4dff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"4", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":90.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"4.1", + "type":"Rectangle", + "id":"1.4", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":223.0, + "width":16.0, + "height":96.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0x6680e6ff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" } ] }, { - "type":"Group", - "id":"5", + "type":"Collection", + "id":"2", "level":1, "prefix":"A.", - "x":12.0, - "y":72.0, + "thickness":1.5, + "stroke":"0xd9cccc80", + "x":406.0, + "y":14.0, "sticky-y":"Yes", - "sticky-x":"No", + "sticky-x":"Yes", "distribution-x":"None", - "distribution-y":"None", - "rotation":120.0, + "distribution-y":"Spacing", + "rotation":0.0, "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], + "delta-y":7.0, + "curve":"None", + "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"], + "variable":["y","height","fill"], "components":[ { - "type":"Ellipse", - "id":"5.1", + "type":"Rectangle", + "id":"2.1", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":0.0, + "width":16.0, + "height":42.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xccccccff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"6", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":150.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"6.1", + "type":"Rectangle", + "id":"2.2", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":49.0, + "width":16.0, + "height":18.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xffe666ff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"7", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":180.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"7.1", + "type":"Rectangle", + "id":"2.3", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":74.0, + "width":16.0, + "height":146.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0xe64d4dff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" - } - ] - }, - { - "type":"Group", - "id":"8", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":210.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ + }, { - "type":"Ellipse", - "id":"8.1", + "type":"Rectangle", + "id":"2.4", "level":0, "reference-x":"Center", "reference-y":"Bottom", "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, + "y":227.0, + "width":16.0, + "height":92.0, "thickness":0.5, "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", + "fill":"0x6680e6ff", + "stroke":"0x50508000", + "shape":"Rectangle", "lock":"false" } ] + } + ], + "fill":"0xaaaabcff", + "opacity":0.3253968253968254, + "coloring":"Source", + "connections":[ + { + "origin":"1.4", + "destination":"2.4", + "weight":84.0 }, { - "type":"Group", - "id":"9", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":240.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ - { - "type":"Ellipse", - "id":"9.1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] + "origin":"1.3", + "destination":"2.1", + "weight":6.0 }, { - "type":"Group", - "id":"10", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":270.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ - { - "type":"Ellipse", - "id":"10.1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] + "origin":"1.3", + "destination":"2.3", + "weight":138.0 }, { - "type":"Group", - "id":"11", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":300.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ - { - "type":"Ellipse", - "id":"11.1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] + "origin":"1.4", + "destination":"2.2", + "weight":2.0 }, { - "type":"Group", - "id":"12", - "level":1, - "prefix":"A.", - "x":12.0, - "y":72.0, - "sticky-y":"Yes", - "sticky-x":"No", - "distribution-x":"None", - "distribution-y":"None", - "rotation":330.0, - "delta-x":0.0, - "delta-y":0.0, - "common":["x1"], - "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"], - "public":["A.x","A.y","A.rotation","fill1"], - "bindings":[ - ["x1"] - ], - "components":[ - { - "type":"Ellipse", - "id":"12.1", - "level":0, - "reference-x":"Center", - "reference-y":"Bottom", - "x":0.0, - "y":10.0, - "width":22.0, - "height":43.0, - "thickness":0.5, - "rotation":0.0, - "fill":"0xffb3b3ff", - "stroke":"0x505080ff", - "shape":"Ellipse", - "lock":"false" - } - ] + "origin":"1.3", + "destination":"2.4", + "weight":4.0 + }, + { + "origin":"1.1", + "destination":"2.1", + "weight":30.0 + }, + { + "origin":"1.4", + "destination":"2.1", + "weight":6.0 + }, + { + "origin":"1.1", + "destination":"2.2", + "weight":6.3953488372093 + }, + { + "origin":"1.1", + "destination":"2.4", + "weight":4.0 + }, + { + "origin":"1.2", + "destination":"2.2", + "weight":10.0 + }, + { + "origin":"1.4", + "destination":"2.3", + "weight":4.0 + }, + { + "origin":"1.1", + "destination":"2.3", + "weight":4.0 } ] } diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3da40b145f8b112e32f8da3cf88ab069aabaf969 Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/fr/inria/structgraphics/.DS_Store b/src/fr/inria/structgraphics/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..76d6496dc29bcda2fc08c33a2da71eb8018b5e33 Binary files /dev/null and b/src/fr/inria/structgraphics/.DS_Store differ diff --git a/src/fr/inria/structgraphics/VisSketcher.java b/src/fr/inria/structgraphics/VisSketcher.java index c52e328bc5a838681abeeaf016d2b6c0cd23ad2b..7cda89bdbaa6566c8b2e58e3666ee411d2edfb3c 100644 --- a/src/fr/inria/structgraphics/VisSketcher.java +++ b/src/fr/inria/structgraphics/VisSketcher.java @@ -80,30 +80,16 @@ public class VisSketcher extends Application { dataStage.setX(inspectStage.getX() + inspectStage.getWidth() + 10); dataStage.setY(inspectStage.getY()); dataStage.show(); - - /* - LibraryStage libraryStage = new LibraryStage(canvasFrame); - libraryStage.setX(stage.getX() - libraryStage.getWidth() - 5); - libraryStage.setY(stage.getY());*/ - + stage.setOnCloseRequest( event -> {canvasFrame.close(); inspectStage.close(); dataStage.close();}); inspectStage.setOnCloseRequest( event -> {canvasFrame.close(); stage.close(); dataStage.close();}); dataStage.setOnCloseRequest( event -> {canvasFrame.close(); stage.close(); inspectStage.close();}); - - // TODO: temporarry for study purposes - //stage.setOnCloseRequest(e->e.consume()); - //inspectStage.setOnCloseRequest(e->e.consume()); - //dataStage.setOnCloseRequest(e->e.consume()); - canvasFrame.setViews( inspector, dataview); canvasFrame.setMenubars(stage, inspectStage); - TooltipCreator.hackTooltipStartTiming(); - + // TooltipCreator.hackTooltipStartTiming(); - - } catch(Exception e) { e.printStackTrace(); } @@ -112,6 +98,5 @@ public class VisSketcher extends Application { public static void main(String[] args) { launch(args); } - } diff --git a/src/fr/inria/structgraphics/graphics/Container.java b/src/fr/inria/structgraphics/graphics/Container.java index 5f006af77ca2b82743f85e2c44a9eeb02ab2bc4e..ee456e3fcc7e8758a2d0d70278cfde99f382994a 100644 --- a/src/fr/inria/structgraphics/graphics/Container.java +++ b/src/fr/inria/structgraphics/graphics/Container.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; -import com.sun.prism.image.Coords; - import fr.inria.structgraphics.types.FlexibleListProperty; import fr.inria.structgraphics.types.IdentifierProperty; import fr.inria.structgraphics.types.PropertyName; diff --git a/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java b/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java index b6c0223d0b3376652bea45d686e6184bac76399a..d91a76266dbadbffe86214b24b183218ef2e593e 100644 --- a/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java +++ b/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java @@ -19,6 +19,7 @@ public class TooltipCreator { return t; } + // See: https://stackoverflow.com/questions/26854301/how-to-control-the-javafx-tooltips-delay public static void hackTooltipStartTiming() { Tooltip tooltip = new Tooltip(); diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java b/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java index 72c4ac41f278f25dec9add542c9c7acf61f00ef2..63c0ecb22c4219d48f91a42a71537ff10ce22c9e 100644 --- a/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java +++ b/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java @@ -37,7 +37,6 @@ import fr.inria.structgraphics.ui.viscanvas.groupings.FlowConnection; import javafx.beans.property.Property; import javafx.collections.ObservableList; import javafx.scene.control.TablePosition; -import sun.security.provider.certpath.CollectionCertStore; public class AreaInteractor { diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java b/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java index 52d1c28e8971d11fe2b85be166b7dfb306dd9a6c..15fef83803981a571d73a71e1179b3d39a6625a1 100644 --- a/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java +++ b/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java @@ -8,7 +8,7 @@ import fr.inria.structgraphics.ui.inspector.DisplayUtils; import fr.inria.structgraphics.ui.inspector.InspectorView; import fr.inria.structgraphics.ui.tools.SelectTool; import fr.inria.structgraphics.ui.tools.Tool; -import impl.org.controlsfx.spreadsheet.CellView; +import impl.org.controlsfx.spreadsheet.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; @@ -83,6 +83,7 @@ public class DataView extends BorderPane { StackPane stack = new StackPane(); interactor = new AreaInteractor(transformField); + spreadsheet = new Spreadsheet(this, interactor); stack.getChildren().setAll(spreadsheet); diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java b/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java index fe3c3cb83d496ff885f3b21b0aa3661e692b44a5..a21d45516c342d356b395b61019283a3f5c4567e 100644 --- a/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java +++ b/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java @@ -3,7 +3,9 @@ package fr.inria.structgraphics.ui.spreadsheet; import static impl.org.controlsfx.i18n.Localization.asKey; import static impl.org.controlsfx.i18n.Localization.localize; +import java.io.IOException; import java.util.List; + import org.controlsfx.control.spreadsheet.Grid; import org.controlsfx.control.spreadsheet.GridBase; import org.controlsfx.control.spreadsheet.SpreadsheetCell; @@ -87,21 +89,30 @@ public class Spreadsheet extends SpreadsheetView { if(!variable.scaleShownProperty.get()) showAxis.setText("Show on inner axis"); else showAxis.setText("Hide from inner axis"); - } else showAxis.setDisable(true); + } else { + showAxis.setText("Show on inner axis"); + showAxis.setDisable(true); + } if(!variable.getParentGroup().isEmpty() && ((variable.isX() /*&& !variable.isNested()*/) || variable.isY() || variable.isHeight() || (variable.isWidth() /*&& !variable.isNested()*/) )) { // TODO: Check if there is a parent axis!!!! showParentAxis.setDisable(false); if(!variable.scaleShownPropertyOuter.get()) showParentAxis.setText("Show on outer axis"); else showParentAxis.setText("Hide from outer axis"); - } else showParentAxis.setDisable(true); + } else { + showParentAxis.setText("Show on outer axis"); + showParentAxis.setDisable(true); + } if(/*(variable.isFill() || variable.isShape() || variable.isStroke() || variable.isThickness()) &&*/ variable.type == DataType.Symbolic) { showLegend.setDisable(false); if(!variable.legendShownProperty.get()) showLegend.setText("Show on legend"); else showLegend.setText("Hide from legend"); - } else showLegend.setDisable(true); + } else { + showLegend.setText("Show on legend"); + showLegend.setDisable(true); + } if(variable.isID() || variable.isX() || variable.isY() || variable.isHeight() || variable.isWidth() || variable.isWeight() || variable.isStroke()) { @@ -109,7 +120,10 @@ public class Spreadsheet extends SpreadsheetView { if(!variable.nodeShownProperty.get()) showNode.setText("Show on glyphs"); else showNode.setText("Hide from glyphs"); - } else showNode.setDisable(true); + } else { + showNode.setText("Show on glyphs"); + showNode.setDisable(true); + } } } }); @@ -475,11 +489,9 @@ public class Spreadsheet extends SpreadsheetView { showOnNode(); } }); - - - final MenuItem copyItem = new MenuItem(localize(asKey("spreadsheet.view.menu.copy"))); //$NON-NLS-1$ - copyItem.setGraphic(new ImageView(new Image(SpreadsheetView.class - .getResourceAsStream("copySpreadsheetView.png")))); //$NON-NLS-1$ + + final MenuItem copyItem = new MenuItem(localize(asKey("spreadsheet.view.menu.copy"))); //$NON-NLS-1$ + copyItem.setGraphic(new ImageView(new Image(Spreadsheet.class.getResourceAsStream("copySpreadsheetView.png")))); //$NON-NLS-1$ copyItem.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.SHORTCUT_DOWN)); copyItem.setOnAction(new EventHandler<ActionEvent>() { @Override @@ -489,7 +501,7 @@ public class Spreadsheet extends SpreadsheetView { }); final MenuItem pasteItem = new MenuItem(localize(asKey("spreadsheet.view.menu.paste"))); //$NON-NLS-1$ - pasteItem.setGraphic(new ImageView(new Image(SpreadsheetView.class + pasteItem.setGraphic(new ImageView(new Image(Spreadsheet.class .getResourceAsStream("pasteSpreadsheetView.png")))); //$NON-NLS-1$ pasteItem.setAccelerator(new KeyCodeCombination(KeyCode.V, KeyCombination.SHORTCUT_DOWN)); pasteItem.setOnAction(new EventHandler<ActionEvent>() { @@ -500,7 +512,7 @@ public class Spreadsheet extends SpreadsheetView { }); final Menu cornerMenu = new Menu(localize(asKey("spreadsheet.view.menu.comment"))); //$NON-NLS-1$ - cornerMenu.setGraphic(new ImageView(new Image(SpreadsheetView.class + cornerMenu.setGraphic(new ImageView(new Image(Spreadsheet.class .getResourceAsStream("comment.png")))); //$NON-NLS-1$ final MenuItem topLeftItem = new MenuItem(localize(asKey("spreadsheet.view.menu.comment.top-left"))); //$NON-NLS-1$ @@ -508,7 +520,8 @@ public class Spreadsheet extends SpreadsheetView { @Override public void handle(ActionEvent t) { - TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + // TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getCellsView().getFocusModel().getFocusedCell(); + TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell(); SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn()); if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.TOP_LEFT)) cell.deactivateCorner(SpreadsheetCell.CornerPosition.TOP_LEFT); @@ -521,7 +534,8 @@ public class Spreadsheet extends SpreadsheetView { @Override public void handle(ActionEvent t) { - TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell(); SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn()); if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.TOP_RIGHT)) cell.deactivateCorner(SpreadsheetCell.CornerPosition.TOP_RIGHT); @@ -533,7 +547,8 @@ public class Spreadsheet extends SpreadsheetView { @Override public void handle(ActionEvent t) { - TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell(); SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn()); if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.BOTTOM_RIGHT)) cell.deactivateCorner(SpreadsheetCell.CornerPosition.BOTTOM_RIGHT); @@ -545,7 +560,8 @@ public class Spreadsheet extends SpreadsheetView { @Override public void handle(ActionEvent t) { - TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell(); + TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell(); SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn()); if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.BOTTOM_LEFT)) cell.deactivateCorner(SpreadsheetCell.CornerPosition.BOTTOM_LEFT); @@ -556,8 +572,10 @@ public class Spreadsheet extends SpreadsheetView { // I use corner annotations for marking visualized variables // cornerMenu.getItems().addAll(topLeftItem, topRightItem, bottomRightItem, bottomLeftItem); - contextMenu.getItems().addAll(showAxis, showParentAxis, showLegend, showNode, copyItem, pasteItem /*, cornerMenu*/); + contextMenu.getItems().addAll(showAxis, showParentAxis, showLegend, showNode, copyItem, pasteItem); + return contextMenu; + } diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java index 78d464b5db76ac21d79ca034b9ab7b7d5e8ddef7..0db87410f8bf5e86217a335e728a181676e9beea 100644 --- a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java +++ b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java @@ -3,7 +3,7 @@ package fr.inria.structgraphics.ui.spreadsheet; import java.util.ArrayList; import java.util.Map; -import org.controlsfx.control.spreadsheet.Grid; +import org.controlsfx.control.spreadsheet.*; import fr.inria.structgraphics.graphics.Container; import fr.inria.structgraphics.graphics.LineConnectedCollection; diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java index 4c5ce711dd4fe7fb1b5cb1c76ccde366997d1a29..d8324fb342cfa8e16a8820027150e3fba6eb1559 100644 --- a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java +++ b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java @@ -2,8 +2,7 @@ package fr.inria.structgraphics.ui.spreadsheet; import com.sun.javafx.event.EventHandlerManager; -import impl.org.controlsfx.spreadsheet.CellView; - +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -27,6 +26,7 @@ import javafx.event.EventHandler; import javafx.event.EventTarget; import javafx.event.EventType; import javafx.scene.Node; +import javafx.scene.control.MenuItem; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.input.PickResult; @@ -279,12 +279,6 @@ public class SpreadsheetCellAdaptable implements SpreadsheetCell, EventTarget{ * **************************************************************************/ - /** {@inheritDoc} */ - @Override - public boolean match(SpreadsheetCell cell) { - return type.match(cell); - } - // --- item private final ObjectProperty<Object> item = new SimpleObjectProperty<Object>(this, "item") { //$NON-NLS-1$ @Override @@ -693,4 +687,53 @@ public class SpreadsheetCellAdaptable implements SpreadsheetCell, EventTarget{ this.propertyListener = listener; if(listener != null && property != null) property.addListener(listener); } + + @Override + public List<Object> getOptionsForEditor() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<MenuItem> getPopupItems() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean hasPopup() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isCellGraphic() { + // TODO Auto-generated method stub + return false; + } + + /* + @Override + public boolean match(Object arg0) { + // TODO Auto-generated method stub + return false; + }*/ + + /** {@inheritDoc} */ + @Override + public boolean match(Object cell) { + return type.match(cell); + } + + @Override + public void setCellGraphic(boolean arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void setHasPopup(boolean arg0) { + // TODO Auto-generated method stub + + } } diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/comment.png b/src/fr/inria/structgraphics/ui/spreadsheet/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..974c85b3a2c677ffedde2e977ce1224c5491e16e Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/comment.png differ diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png b/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png new file mode 100644 index 0000000000000000000000000000000000000000..de6c54def339045f2f05589b2a7588582e393074 Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png differ diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png b/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png new file mode 100644 index 0000000000000000000000000000000000000000..62286418d514b129a875e4e075dcd38ee8d13277 Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png differ diff --git a/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java b/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java index 465445b8e508d3372fabb369dfd963b629814adc..09b6034e0ee58152f6a0684d253150d0d22eda17 100644 --- a/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java +++ b/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java @@ -56,7 +56,6 @@ import javafx.scene.layout.VBox; import javafx.stage.FileChooser; import javafx.stage.Stage; import javafx.util.Duration; -import sun.security.x509.CRLReasonCodeExtension; public class CanvasFrame extends BorderPane { diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..d3bda7741fe3481237e68bbee3a4b115cf174b92 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,29 @@ +module structgraphics { + exports fr.inria.structgraphics.graphics; + exports fr.inria.structgraphics.graphics.controls; + exports fr.inria.structgraphics.ui; + exports fr.inria.structgraphics.ui.inspector.detailmodel; + exports fr.inria.structgraphics.types; + exports fr.inria.structgraphics.persistence; + exports fr.inria.structgraphics.ui.viscanvas; + exports fr.inria.structgraphics.ui.viscanvas.groupinteractors; + exports fr.inria.structgraphics.graphics.splines; + exports fr.inria.structgraphics.ui.spreadsheet; + exports fr.inria.structgraphics.ui.viscanvas.groupings; + exports fr.inria.structgraphics.ui.utils; + exports fr.inria.structgraphics.ui.tools; + exports fr.inria.structgraphics.ui.inspector.util; + exports fr.inria.structgraphics.ui.inspector; + exports fr.inria.structgraphics.ui.library; + + requires java.desktop; + requires java.logging; + requires javafx.base; + requires javafx.controls; + requires javafx.graphics; + requires javafx.media; + requires javafx.web; + requires javax.json; + requires matheclipse.core; + requires org.controlsfx.controls; +} \ No newline at end of file diff --git a/target/.gitignore b/target/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..840e7d3120ee3206168d49bf62df2c269c38e17e --- /dev/null +++ b/target/.gitignore @@ -0,0 +1 @@ +/classes/