]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/synchronization/LineUpdater.java
95c601b503a5bd4718afe31f4a140ff2d312986b
[simantics/platform.git] / bundles / org.simantics.spreadsheet / src / org / simantics / spreadsheet / synchronization / LineUpdater.java
1 package org.simantics.spreadsheet.synchronization;
2
3 import java.util.Collection;
4 import java.util.Map;
5
6 import org.simantics.databoard.adapter.AdaptException;
7 import org.simantics.databoard.binding.mutable.Variant;
8 import org.simantics.spreadsheet.solver.SheetLineComponent;
9 import org.simantics.structural.synchronization.base.CommandBuilder;
10 import org.simantics.structural.synchronization.base.ModuleUpdateContext;
11 import org.simantics.structural.synchronization.base.ModuleUpdaterBase;
12 import org.simantics.structural.synchronization.base.PropertyUpdateRule;
13
14 public class LineUpdater extends ModuleUpdaterBase<SheetLineComponent> {
15
16     public LineUpdater(String id) {
17         super(id);
18         addPropertyUpdateRule(new PropertyUpdateRule<SheetLineComponent>() {
19             @Override
20             public String getPropertyName() {
21                 return "content";
22             }
23             @Override
24             public void apply(ModuleUpdateContext<SheetLineComponent> context, boolean isCreating,
25                     Map<String, Variant> propertyMap, Map<String, Collection<String>> connectionMap, Variant value) {
26 //                System.err.println("LineUpdater.apply " + value);
27                 LineCommandBuilder builder = context.<LineCommandBuilder>getConcreteCommand();
28                 try {
29                     LineContentBean valuee = (LineContentBean) value.getValue(LineContentBean.BINDING);
30                     builder.bean = valuee;
31                 } catch (AdaptException e) {
32                     e.printStackTrace();
33                 } catch (ClassCastException e) {
34                     e.printStackTrace();
35                 }
36             }
37         });
38     }
39
40     @Override
41     public CommandBuilder createAddCommandBuilder(String name) {
42         return new LineCommandBuilder(name, false);
43     }
44
45     @Override
46     public CommandBuilder createUpdateCommandBuilder(String name) {
47         return new LineCommandBuilder(name, true);
48     }
49
50 }