import org.simantics.databoard.binding.mutable.Variant;
import org.simantics.spreadsheet.CellEditor;
import org.simantics.spreadsheet.ClientModel;
+import org.simantics.spreadsheet.Spreadsheets;
import org.simantics.spreadsheet.util.SpreadsheetUtils;
class TextTableCellEditor extends DefaultCellEditor implements SpreadsheetCellEditor {
String str = (String)getCellEditorValue();
- String cellName = SpreadsheetUtils.cellName(row, column);
- String expression = clientModel.getPossiblePropertyAt(cellName, ClientModel.CONTENT_EXPRESSION);
+ String cellName = Spreadsheets.cellName(row, column);
+ Object expressionO = clientModel.getPossiblePropertyAt(cellName, ClientModel.CONTENT_EXPRESSION);
+ String expression = null;
+ if(expressionO instanceof String) {
+ expression = (String)expressionO;
+ } else if(expressionO instanceof Variant) {
+ expression = ((Variant)expressionO).getValue().toString();
+ }
+
if(expression == null) {
Variant content = SpreadsheetUtils.getSafeClientVariant(clientModel, cellName, ClientModel.CONTENT);
if(content != null)
return;
if (str.startsWith("=")) {
- editor.edit(null, SpreadsheetUtils.cellName(row, column), ClientModel.CONTENT_EXPRESSION, str, Bindings.STRING, null);
+ editor.edit(null, Spreadsheets.cellName(row, column), ClientModel.CONTENT_EXPRESSION, str, Bindings.STRING, null);
//Update cell expression
clientModel.setProperty(cellName, ClientModel.CONTENT_EXPRESSION, str);
} else {
- editor.edit(null, SpreadsheetUtils.cellName(row, column), Variant.ofInstance(str), null);
+ editor.edit(null, Spreadsheets.cellName(row, column), Variant.ofInstance(str), null);
//Update cell expression
clientModel.setProperty(cellName, ClientModel.CONTENT_EXPRESSION, null); //If not an expression, then the expression property is null
}