]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetBook.java
Simulator toolkit enhancements
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / SpreadsheetBook.java
index 277b10cb0635f6e8401f78069a175f56104bc037..f87ce4d0675e851fee84a432d093241f38245607 100644 (file)
@@ -10,9 +10,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.binding.Binding;
 import org.simantics.databoard.binding.mutable.Variant;
 import org.simantics.db.exception.DatabaseException;
-import org.simantics.db.layer0.StandardEngine;
+import org.simantics.simulator.toolkit.StandardNodeManagerSupport;
+import org.simantics.simulator.variable.exceptions.NodeManagerException;
 import org.simantics.spreadsheet.graph.formula.SpreadsheetEvaluationEnvironment;
 import org.simantics.spreadsheet.graph.synchronization.LineNodeUpdater;
 import org.simantics.spreadsheet.graph.synchronization.LineUpdater;
@@ -33,7 +36,7 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
 import it.unimi.dsi.fastutil.longs.LongArraySet;
 import it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet;
 
-public class SpreadsheetBook implements SpreadsheetElement<SpreadsheetElement, SpreadsheetElement>, StandardEngine<SheetNode>, Serializable, SheetNode<SpreadsheetEngine, SheetNode>, Solver, SolverNameUtil, ComponentFactory<SheetLineComponent>, ModuleUpdaterFactoryBase<SheetLineComponent> {
+public class SpreadsheetBook implements StandardNodeManagerSupport<SheetNode>, SpreadsheetElement<SpreadsheetElement, SpreadsheetElement>, Serializable, SheetNode<SpreadsheetEngine, SheetNode>, Solver, SolverNameUtil, ComponentFactory<SheetLineComponent>, ModuleUpdaterFactoryBase<SheetLineComponent> {
 
        private static final long serialVersionUID = 7417208688311691396L;
        
@@ -90,7 +93,17 @@ public class SpreadsheetBook implements SpreadsheetElement<SpreadsheetElement, S
        }
        
        @Override
-       public Object getValue(SheetNode node) {
+       public Binding getEngineBinding(SheetNode node) throws NodeManagerException {
+               Object value = getEngineValue(node);
+               if(value instanceof Variant) return Bindings.VARIANT;
+               if(value instanceof String) return Bindings.STRING;
+               if(value instanceof Boolean) return Bindings.BOOLEAN;
+               else return Bindings.VOID;
+               
+       }
+       
+       @Override
+       public Object getEngineValue(SheetNode node) {
                if(node instanceof SpreadsheetCellContent) {
                        try {
                                SpreadsheetCellContent scc = (SpreadsheetCellContent)node;
@@ -139,7 +152,7 @@ public class SpreadsheetBook implements SpreadsheetElement<SpreadsheetElement, S
        }
 
        @Override
-       public void setValue(SheetNode node, Object value) {
+       public void setEngineValue(SheetNode node, Object value) {
        }
 
        @Override