]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/synchronization/LineUpdater.java
SCL API for direct access to SpreadsheetBooks
[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                 LineCommandBuilder builder = context.<LineCommandBuilder>getConcreteCommand();
27                 try {
28                     LineContentBean valuee = (LineContentBean) value.getValue(LineContentBean.BINDING);
29                     builder.bean = valuee;
30                 } catch (AdaptException e) {
31                     e.printStackTrace();
32                 } catch (ClassCastException e) {
33                     e.printStackTrace();
34                 }
35             }
36         });
37     }
38
39     @Override
40     public CommandBuilder createAddCommandBuilder(String name) {
41         return new LineCommandBuilder(name, false);
42     }
43
44     @Override
45     public CommandBuilder createUpdateCommandBuilder(String name) {
46         return new LineCommandBuilder(name, true);
47     }
48
49 }