-package org.simantics.diagram.flag;\r
-\r
-import java.util.ArrayList;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.scl.runtime.tuple.Tuple2;\r
-\r
-public class IOTablesInfo {\r
- public static final IOTablesInfo EMPTY = new IOTablesInfo();\r
- \r
- ArrayList<IOTableInfo> tables = new ArrayList<IOTableInfo>();\r
-\r
- public Tuple2 getBindingRef(double x, double y) {\r
- for(IOTableInfo table : tables) {\r
- if(x < table.x || x > table.x + table.width)\r
- continue;\r
- return new Tuple2(table.name, (int)((y-table.y)/table.rowHeight));\r
- }\r
- return null;\r
- }\r
-\r
- public boolean updateBinding(WriteGraph graph, DiagramResource DIA, Resource flagResource, double flagX, double flagY) throws DatabaseException {\r
- Tuple2 bindingRef = getBindingRef(flagX, flagY);\r
- \r
- if(bindingRef != null) {\r
- graph.claimLiteral(flagResource, DIA.Flag_HasIOTableBinding, (String)bindingRef.c0, Bindings.STRING);\r
- graph.claimLiteral(flagResource, DIA.Flag_HasIOTableRowIndex, (Integer)bindingRef.c1, Bindings.INTEGER);\r
- return true;\r
- }\r
- else {\r
- String currentBinding = graph.getPossibleRelatedValue(flagResource, DIA.Flag_HasIOTableBinding);\r
- if(currentBinding != null && !currentBinding.isEmpty()) {\r
- graph.claimLiteral(flagResource, DIA.Flag_HasIOTableBinding, "", Bindings.STRING);\r
- double[] transform = graph.getRelatedValue(flagResource, DIA.HasTransform, Bindings.DOUBLE_ARRAY);\r
- transform[4] = flagX;\r
- transform[5] = flagY;\r
- graph.claimLiteral(flagResource, DIA.HasTransform, transform);\r
- return true;\r
- }\r
- return false;\r
- }\r
- } \r
-}\r
+package org.simantics.diagram.flag;
+
+import java.util.ArrayList;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.scl.runtime.tuple.Tuple2;
+
+public class IOTablesInfo {
+ public static final IOTablesInfo EMPTY = new IOTablesInfo();
+
+ ArrayList<IOTableInfo> tables = new ArrayList<IOTableInfo>();
+
+ public Tuple2 getBindingRef(double x, double y) {
+ for(IOTableInfo table : tables) {
+ if(x < table.x || x > table.x + table.width)
+ continue;
+ return new Tuple2(table.name, (int)((y-table.y)/table.rowHeight));
+ }
+ return null;
+ }
+
+ public boolean updateBinding(WriteGraph graph, DiagramResource DIA, Resource flagResource, double flagX, double flagY) throws DatabaseException {
+ Tuple2 bindingRef = getBindingRef(flagX, flagY);
+
+ if(bindingRef != null) {
+ graph.claimLiteral(flagResource, DIA.Flag_HasIOTableBinding, (String)bindingRef.c0, Bindings.STRING);
+ graph.claimLiteral(flagResource, DIA.Flag_HasIOTableRowIndex, (Integer)bindingRef.c1, Bindings.INTEGER);
+ return true;
+ }
+ else {
+ String currentBinding = graph.getPossibleRelatedValue(flagResource, DIA.Flag_HasIOTableBinding);
+ if(currentBinding != null && !currentBinding.isEmpty()) {
+ graph.claimLiteral(flagResource, DIA.Flag_HasIOTableBinding, "", Bindings.STRING);
+ double[] transform = graph.getRelatedValue(flagResource, DIA.HasTransform, Bindings.DOUBLE_ARRAY);
+ transform[4] = flagX;
+ transform[5] = flagY;
+ graph.claimLiteral(flagResource, DIA.HasTransform, transform);
+ return true;
+ }
+ return false;
+ }
+ }
+}