X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.spreadsheet.graph%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fgraph%2FSpreadsheetCellEditable.java;fp=bundles%2Forg.simantics.spreadsheet.graph%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fgraph%2FSpreadsheetCellEditable.java;h=c9603e30da8eb7e95c56d48f4101f4b1d7289fac;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git 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 index 000000000..c9603e30d --- /dev/null +++ b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetCellEditable.java @@ -0,0 +1,78 @@ +package org.simantics.spreadsheet.graph; + +import java.util.Collections; +import java.util.Map; + +import org.simantics.databoard.binding.mutable.Variant; + +public class SpreadsheetCellEditable implements SheetNode { + + public final SpreadsheetCell cell; + + public SpreadsheetCellEditable(SpreadsheetCell spreadsheetCell) { + this.cell = spreadsheetCell; + } + + @Override + public String getName() { + return "editable"; + } + + @Override + public Map getChildren() { + return Collections.emptyMap(); + } + + @Override + public Map getProperties() { + return Collections.emptyMap(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((cell == null) ? 0 : cell.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SpreadsheetCellEditable other = (SpreadsheetCellEditable) obj; + if (cell == null) { + if (other.cell != null) + return false; + } else if (!cell.equals(other.cell)) + return false; + return true; + } + + public boolean editable() { + if (cell.content == null || cell.content instanceof SpreadsheetFormula || cell.content instanceof SpreadsheetSCLConstant) + return false; + if (cell.content instanceof String) { + String content = (String) cell.content; + if (content.isEmpty()) + return false; + } + if (cell.content instanceof Variant) { + Variant content = (Variant) cell.content; + if (content.getValue() == null) + return false; + if (content.getValue() instanceof String) { + String actualContent = (String) content.getValue(); + if (actualContent.isEmpty()) + return false; + } + } +// System.out.println("content is " + cell.content); + return true; + } + +}