]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/adapter/SpreadsheetVariable.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / adapter / SpreadsheetVariable.java
index 016209a7ea4efb58077b8c34b3b7156be6d688b8..0244d5c07949fc897b01f9fc37f7ddf3dbe675a1 100644 (file)
-package org.simantics.spreadsheet.graph.adapter;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.mutable.Variant;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.variable.ConstantChildVariable;\r
-import org.simantics.db.layer0.variable.ExtendedGraphChildVariable;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.layer0.variable.VariableSpaceManipulator;\r
-import org.simantics.db.layer0.variable.Variables;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.spreadsheet.Range;\r
-import org.simantics.spreadsheet.SheetVariables;\r
-import org.simantics.spreadsheet.common.matrix.VariantMatrix;\r
-import org.simantics.spreadsheet.util.SpreadsheetUtils;\r
-\r
-public class SpreadsheetVariable extends ExtendedGraphChildVariable {\r
-\r
-//    final private Collection<Pair<StringCellParser, GraphCellCreator>> creators = new ArrayList<Pair<StringCellParser, GraphCellCreator>>(); \r
-       \r
-       public SpreadsheetVariable(Variable parent, Resource resource) throws DatabaseException {\r
-               \r
-               super(parent, resource);\r
-               \r
-//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.MATRIX_PARSER, new MatrixCellCreator(resource)));\r
-//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.EXPRESSION_PARSER, new ExpressionCellCreator(resource)));\r
-//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.COMMAND_PARSER, new CommandCellCreator(resource)));\r
-//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.RESOURCE_ARRAY_PARSER, new ResourceArrayCellCreator(resource)));\r
-//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.TEXT_PARSER, new TextCellCreator(resource)));\r
-           \r
-       }\r
-       \r
-    @SuppressWarnings("unchecked")\r
-    protected <T> T tryAdapt(ReadGraph graph, Class<T> clazz) throws DatabaseException {\r
-               if(VariableSpaceManipulator.class == clazz) {\r
-                       \r
-                       return (T)new VariableSpaceManipulator() {\r
-\r
-                               @Override\r
-                               public void apply(WriteGraph graph, Modification modification) throws DatabaseException {\r
-                                       \r
-                                       Layer0 L0 = Layer0.getInstance(graph);\r
-                                       for(String name : modification.removedChildren) {\r
-                                               Variable child = getChild(graph, name);\r
-                                               Resource represents = child.getRepresents(graph);\r
-                                               graph.deny(represents, L0.PartOf);\r
-                                       }\r
-                                       \r
-                                       for(ChildCreationData data : modification.newChildren) {\r
-                                               Resource container = getRepresents(graph);\r
-                                               Resource cell = graph.newResource();\r
-                                               Resource type = graph.getResource(data.type);\r
-                                               graph.claim(cell, L0.InstanceOf, null, type);\r
-                                               graph.addLiteral(cell, L0.HasName, L0.NameOf, L0.String, data.name, Bindings.STRING);\r
-                                               for(PropertyCreationData p : data.properties) {\r
-                                                       Resource property = graph.getResource(p.name);\r
-                                                       graph.claimLiteral(cell, property, p.value.getValue());\r
-                                               }\r
-                                               graph.claim(cell, L0.PartOf, container);\r
-                                               \r
-                                       }\r
-                                       \r
-                               }\r
-                               \r
-                       };\r
-                       \r
-               }\r
-               return null;\r
-       }\r
-\r
-       @Override\r
-       public <T> T adapt(ReadGraph graph, Class<T> clazz) throws DatabaseException {\r
-               T t = tryAdapt(graph, clazz);\r
-               return t != null ? t : super.adapt(graph, clazz);\r
-       }\r
-\r
-       @Override\r
-       public <T> T adaptPossible(ReadGraph graph, Class<T> clazz) throws DatabaseException {\r
-               T t = tryAdapt(graph, clazz);\r
-               return t != null ? t : super.adaptPossible(graph, clazz);\r
-       }\r
-\r
-       final String[] propertyNames = { SheetVariables.CONTENT, Variables.LABEL, "immutable" }; \r
-       final Binding[] bindings = { Bindings.VARIANT, Bindings.STRING, Bindings.BOOLEAN};\r
-       \r
-       @Override\r
-       public Variable getPossibleSpecialChild(ReadGraph graph, String name) throws DatabaseException {\r
-               if(name.contains(":")) {\r
-                       Range range = SpreadsheetUtils.decodeRange(name, 0, 0);\r
-                       \r
-                       VariantMatrix matrix = new VariantMatrix(range.height(),range.width());\r
-                       \r
-                       for(int x=range.startColumn;x<=range.endColumn;x++) {\r
-                               for(int y=range.startRow;y<=range.endRow;y++) {\r
-                                       String location = SpreadsheetUtils.cellName(y,x);\r
-                                       Variable child = getPossibleChild(graph, location);\r
-                                       Variant value = null;\r
-                                       if(child != null)\r
-                                           value = child.getPossiblePropertyValue(graph, SheetVariables.CONTENT, Bindings.VARIANT);\r
-                                       matrix.set(y-range.startRow, x-range.startColumn, value);\r
-                               }\r
-                       }\r
-                       \r
-                       return new ConstantChildVariable(this, name, propertyNames, bindings, new Object[] {\r
-                                       Variant.ofInstance(matrix), null, name, false\r
-                       });\r
-                       \r
-               } else {\r
-                       return super.getPossibleSpecialChild(graph, name);\r
-               }\r
-       }\r
-       \r
-}\r
+package org.simantics.spreadsheet.graph.adapter;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.mutable.Variant;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.ConstantChildVariable;
+import org.simantics.db.layer0.variable.ExtendedGraphChildVariable;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.layer0.variable.VariableSpaceManipulator;
+import org.simantics.db.layer0.variable.Variables;
+import org.simantics.layer0.Layer0;
+import org.simantics.spreadsheet.Range;
+import org.simantics.spreadsheet.SheetVariables;
+import org.simantics.spreadsheet.common.matrix.VariantMatrix;
+import org.simantics.spreadsheet.util.SpreadsheetUtils;
+
+public class SpreadsheetVariable extends ExtendedGraphChildVariable {
+
+//    final private Collection<Pair<StringCellParser, GraphCellCreator>> creators = new ArrayList<Pair<StringCellParser, GraphCellCreator>>(); 
+       
+       public SpreadsheetVariable(Variable parent, Resource resource) throws DatabaseException {
+               
+               super(parent, resource);
+               
+//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.MATRIX_PARSER, new MatrixCellCreator(resource)));
+//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.EXPRESSION_PARSER, new ExpressionCellCreator(resource)));
+//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.COMMAND_PARSER, new CommandCellCreator(resource)));
+//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.RESOURCE_ARRAY_PARSER, new ResourceArrayCellCreator(resource)));
+//         creators.add(new Pair<StringCellParser, GraphCellCreator>(Parsers.TEXT_PARSER, new TextCellCreator(resource)));
+           
+       }
+       
+    @SuppressWarnings("unchecked")
+    protected <T> T tryAdapt(ReadGraph graph, Class<T> clazz) throws DatabaseException {
+               if(VariableSpaceManipulator.class == clazz) {
+                       
+                       return (T)new VariableSpaceManipulator() {
+
+                               @Override
+                               public void apply(WriteGraph graph, Modification modification) throws DatabaseException {
+                                       
+                                       Layer0 L0 = Layer0.getInstance(graph);
+                                       for(String name : modification.removedChildren) {
+                                               Variable child = getChild(graph, name);
+                                               Resource represents = child.getRepresents(graph);
+                                               graph.deny(represents, L0.PartOf);
+                                       }
+                                       
+                                       for(ChildCreationData data : modification.newChildren) {
+                                               Resource container = getRepresents(graph);
+                                               Resource cell = graph.newResource();
+                                               Resource type = graph.getResource(data.type);
+                                               graph.claim(cell, L0.InstanceOf, null, type);
+                                               graph.addLiteral(cell, L0.HasName, L0.NameOf, L0.String, data.name, Bindings.STRING);
+                                               for(PropertyCreationData p : data.properties) {
+                                                       Resource property = graph.getResource(p.name);
+                                                       graph.claimLiteral(cell, property, p.value.getValue());
+                                               }
+                                               graph.claim(cell, L0.PartOf, container);
+                                               
+                                       }
+                                       
+                               }
+                               
+                       };
+                       
+               }
+               return null;
+       }
+
+       @Override
+       public <T> T adapt(ReadGraph graph, Class<T> clazz) throws DatabaseException {
+               T t = tryAdapt(graph, clazz);
+               return t != null ? t : super.adapt(graph, clazz);
+       }
+
+       @Override
+       public <T> T adaptPossible(ReadGraph graph, Class<T> clazz) throws DatabaseException {
+               T t = tryAdapt(graph, clazz);
+               return t != null ? t : super.adaptPossible(graph, clazz);
+       }
+
+       final String[] propertyNames = { SheetVariables.CONTENT, Variables.LABEL, "immutable" }; 
+       final Binding[] bindings = { Bindings.VARIANT, Bindings.STRING, Bindings.BOOLEAN};
+       
+       @Override
+       public Variable getPossibleSpecialChild(ReadGraph graph, String name) throws DatabaseException {
+               if(name.contains(":")) {
+                       Range range = SpreadsheetUtils.decodeRange(name, 0, 0);
+                       
+                       VariantMatrix matrix = new VariantMatrix(range.height(),range.width());
+                       
+                       for(int x=range.startColumn;x<=range.endColumn;x++) {
+                               for(int y=range.startRow;y<=range.endRow;y++) {
+                                       String location = SpreadsheetUtils.cellName(y,x);
+                                       Variable child = getPossibleChild(graph, location);
+                                       Variant value = null;
+                                       if(child != null)
+                                           value = child.getPossiblePropertyValue(graph, SheetVariables.CONTENT, Bindings.VARIANT);
+                                       matrix.set(y-range.startRow, x-range.startColumn, value);
+                               }
+                       }
+                       
+                       return new ConstantChildVariable(this, name, propertyNames, bindings, new Object[] {
+                                       Variant.ofInstance(matrix), null, name, false
+                       });
+                       
+               } else {
+                       return super.getPossibleSpecialChild(graph, name);
+               }
+       }
+       
+}