--- /dev/null
+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