]> gerrit.simantics Code Review - simantics/platform.git/blob
81033f44cf15367b6da72ccc726267c0866126e5
[simantics/platform.git] /
1 package org.simantics.spreadsheet.graph;
2
3 import java.util.Collections;
4 import java.util.Map;
5
6 import org.simantics.databoard.binding.mutable.Variant;
7
8 public class SpreadsheetCellEditable implements SheetNode {
9
10     public final SpreadsheetCell cell;
11     
12     public SpreadsheetCellEditable(SpreadsheetCell spreadsheetCell) {
13         this.cell = spreadsheetCell;
14     }
15
16     @Override
17     public String getName() {
18         return "editable";
19     }
20
21     @Override
22     public Map getChildren() {
23         return Collections.emptyMap();
24     }
25
26     @Override
27     public Map getProperties() {
28         return Collections.emptyMap();
29     }
30     
31     @Override
32     public int hashCode() {
33         final int prime = 31;
34         int result = 1;
35         result = prime * result + ((cell == null) ? 0 : cell.hashCode());
36         return result;
37     }
38
39     @Override
40     public boolean equals(Object obj) {
41         if (this == obj)
42             return true;
43         if (obj == null)
44             return false;
45         if (getClass() != obj.getClass())
46             return false;
47         SpreadsheetCellEditable other = (SpreadsheetCellEditable) obj;
48         if (cell == null) {
49             if (other.cell != null)
50                 return false;
51         } else if (!cell.equals(other.cell))
52             return false;
53         return true;
54     }
55
56     public boolean editable() {
57         if (cell.content == null || cell.content instanceof SpreadsheetFormula || cell.content instanceof SpreadsheetSCLConstant)
58             return false;
59         if (cell.content instanceof String) {
60                 String content = (String) cell.content;
61                 if (content.isEmpty())
62                         return false;
63         }
64         if (cell.content instanceof Variant) {
65                 Variant content = (Variant) cell.content;
66                 if (content.getValue() == null)
67                         return false;
68                 if (content.getValue() instanceof String) {
69                         String actualContent = (String) content.getValue();
70                         if (actualContent.isEmpty())
71                                 return false;
72                 }
73         }
74 //        System.out.println("content is " + cell.content);
75         return true;
76     }
77
78 }