]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetCell.java
Spreadsheet updates cell values properly
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / SpreadsheetCell.java
index b4e83ede1ba0bf9ccff9e92bc7b438e99178436a..0ee66cf075142e57f94f27405cfb1609e17c8785 100644 (file)
@@ -31,12 +31,24 @@ public class SpreadsheetCell implements SpreadsheetElement, SheetNode {
        final private int column;
        int style;
        Object content;
+       final private Map<String, SheetNode> properties;
        
        public SpreadsheetCell(SpreadsheetLine line, int column) {
+               this.properties = createProperties();
                this.line = line;
                this.column = column;
        }
 
+       //All SpreadsheetCells have these properties - create them when object is created
+       private Map<String, SheetNode> createProperties() {
+           Map<String, SheetNode> p = new HashMap<>();     
+           p.put("typeURI", new SpreadsheetTypeNode(SpreadsheetResource.URIs.Cell));
+           p.put("content", new SpreadsheetCellContent(this));
+        p.put("style", new SpreadsheetCellStyle(this));
+        p.put("editable", new SpreadsheetCellEditable(this));
+        return p;
+       }
+       
     public boolean hasExpression() {
                return content instanceof SpreadsheetFormula || content instanceof SpreadsheetSCLConstant; 
        }
@@ -66,16 +78,9 @@ public class SpreadsheetCell implements SpreadsheetElement, SheetNode {
        
        @Override
        public Map<String, SheetNode> getProperties() {
-           Map<String, SheetNode> properties = new HashMap<>();
-           
            if (GraphUI.DEBUG)
                System.out.println("SpreadsheetCell.getProperties: " + this + " " + content + " " + style);
-           
-           properties.put("typeURI", new SpreadsheetTypeNode(SpreadsheetResource.URIs.Cell));
-           properties.put("content", new SpreadsheetCellContent(this));
-        properties.put("style", new SpreadsheetCellStyle(this));
-        properties.put("editable", new SpreadsheetCellEditable(this));
-           return properties;
+           return properties; //Return this SpreadsheetCells's properties, rather than a new HashMap
        }
        
        public SpreadsheetBook getBook() {