]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/synchronization/LineNodeUpdater.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / synchronization / LineNodeUpdater.java
diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/synchronization/LineNodeUpdater.java b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/synchronization/LineNodeUpdater.java
new file mode 100644 (file)
index 0000000..7bc8f97
--- /dev/null
@@ -0,0 +1,52 @@
+package org.simantics.spreadsheet.graph.synchronization;\r
+\r
+import java.util.Collection;\r
+import java.util.Map;\r
+\r
+import org.simantics.databoard.binding.mutable.Variant;\r
+import org.simantics.structural.synchronization.base.CommandBuilder;\r
+import org.simantics.structural.synchronization.base.ModuleUpdateContext;\r
+import org.simantics.structural.synchronization.base.ModuleUpdaterBase;\r
+import org.simantics.structural.synchronization.base.PropertyUpdateRule;\r
+\r
+public class LineNodeUpdater extends ModuleUpdaterBase<SheetLineComponent> {\r
+       \r
+       public LineNodeUpdater(String id) {\r
+               \r
+               super(id);\r
+               \r
+               isComposite = true;\r
+               \r
+               addPropertyUpdateRule(new PropertyUpdateRule<SheetLineComponent>() {\r
+                       \r
+                       @Override\r
+                       public String getPropertyName() {\r
+                               return "keys";\r
+                       }\r
+                       \r
+                       @Override\r
+                       public void apply(ModuleUpdateContext<SheetLineComponent> context, boolean isCreating,\r
+                                       Map<String, Variant> propertyMap, Map<String, Collection<String>> connectionMap, Variant value) {\r
+                               \r
+                               LinesCommandBuilder builder = context.<LinesCommandBuilder>getConcreteCommand();\r
+                               Variant v = propertyMap.get("keys");\r
+                               if (v != null & v.getValue() != null)\r
+                                   builder.keys = (int[])v.getValue();\r
+                               \r
+                       }\r
+                       \r
+               });\r
+               \r
+       }\r
+\r
+       @Override\r
+       public CommandBuilder createAddCommandBuilder(String name) {\r
+               return new LinesCommandBuilder(name, false);\r
+       }\r
+\r
+       @Override\r
+       public CommandBuilder createUpdateCommandBuilder(String name) {\r
+               return new LinesCommandBuilder(name, true);\r
+       }\r
+       \r
+}
\ No newline at end of file