]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetCellEditable.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / SpreadsheetCellEditable.java
diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetCellEditable.java b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetCellEditable.java
new file mode 100644 (file)
index 0000000..c9603e3
--- /dev/null
@@ -0,0 +1,78 @@
+package org.simantics.spreadsheet.graph;\r
+\r
+import java.util.Collections;\r
+import java.util.Map;\r
+\r
+import org.simantics.databoard.binding.mutable.Variant;\r
+\r
+public class SpreadsheetCellEditable implements SheetNode {\r
+\r
+    public final SpreadsheetCell cell;\r
+    \r
+    public SpreadsheetCellEditable(SpreadsheetCell spreadsheetCell) {\r
+        this.cell = spreadsheetCell;\r
+    }\r
+\r
+    @Override\r
+    public String getName() {\r
+        return "editable";\r
+    }\r
+\r
+    @Override\r
+    public Map getChildren() {\r
+        return Collections.emptyMap();\r
+    }\r
+\r
+    @Override\r
+    public Map getProperties() {\r
+        return Collections.emptyMap();\r
+    }\r
+    \r
+    @Override\r
+    public int hashCode() {\r
+        final int prime = 31;\r
+        int result = 1;\r
+        result = prime * result + ((cell == null) ? 0 : cell.hashCode());\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public boolean equals(Object obj) {\r
+        if (this == obj)\r
+            return true;\r
+        if (obj == null)\r
+            return false;\r
+        if (getClass() != obj.getClass())\r
+            return false;\r
+        SpreadsheetCellEditable other = (SpreadsheetCellEditable) obj;\r
+        if (cell == null) {\r
+            if (other.cell != null)\r
+                return false;\r
+        } else if (!cell.equals(other.cell))\r
+            return false;\r
+        return true;\r
+    }\r
+\r
+    public boolean editable() {\r
+        if (cell.content == null || cell.content instanceof SpreadsheetFormula || cell.content instanceof SpreadsheetSCLConstant)\r
+            return false;\r
+        if (cell.content instanceof String) {\r
+               String content = (String) cell.content;\r
+               if (content.isEmpty())\r
+                       return false;\r
+        }\r
+        if (cell.content instanceof Variant) {\r
+               Variant content = (Variant) cell.content;\r
+               if (content.getValue() == null)\r
+                       return false;\r
+               if (content.getValue() instanceof String) {\r
+                       String actualContent = (String) content.getValue();\r
+                       if (actualContent.isEmpty())\r
+                               return false;\r
+               }\r
+        }\r
+//        System.out.println("content is " + cell.content);\r
+        return true;\r
+    }\r
+\r
+}\r