]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.spreadsheet.graph.synchronization;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.Map;\r
5 \r
6 import org.simantics.databoard.binding.mutable.Variant;\r
7 import org.simantics.structural.synchronization.base.CommandBuilder;\r
8 import org.simantics.structural.synchronization.base.ModuleUpdateContext;\r
9 import org.simantics.structural.synchronization.base.ModuleUpdaterBase;\r
10 import org.simantics.structural.synchronization.base.PropertyUpdateRule;\r
11 \r
12 public class LineNodeUpdater extends ModuleUpdaterBase<SheetLineComponent> {\r
13         \r
14         public LineNodeUpdater(String id) {\r
15                 \r
16                 super(id);\r
17                 \r
18                 isComposite = true;\r
19                 \r
20                 addPropertyUpdateRule(new PropertyUpdateRule<SheetLineComponent>() {\r
21                         \r
22                         @Override\r
23                         public String getPropertyName() {\r
24                                 return "keys";\r
25                         }\r
26                         \r
27                         @Override\r
28                         public void apply(ModuleUpdateContext<SheetLineComponent> context, boolean isCreating,\r
29                                         Map<String, Variant> propertyMap, Map<String, Collection<String>> connectionMap, Variant value) {\r
30                                 \r
31                                 LinesCommandBuilder builder = context.<LinesCommandBuilder>getConcreteCommand();\r
32                                 Variant v = propertyMap.get("keys");\r
33                                 if (v != null & v.getValue() != null)\r
34                                     builder.keys = (int[])v.getValue();\r
35                                 \r
36                         }\r
37                         \r
38                 });\r
39                 \r
40         }\r
41 \r
42         @Override\r
43         public CommandBuilder createAddCommandBuilder(String name) {\r
44                 return new LinesCommandBuilder(name, false);\r
45         }\r
46 \r
47         @Override\r
48         public CommandBuilder createUpdateCommandBuilder(String name) {\r
49                 return new LinesCommandBuilder(name, true);\r
50         }\r
51         \r
52 }