X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.spreadsheet.ui%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fui%2FTextTableCellEditor.java;h=f84e0ef84747e402696c6fa6af2a0000a471231d;hb=f56d8b5c5225ef421009dadca4cec0ac56aef019;hp=b9920415ff31c3b7ef2357633275e60dc439f967;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/TextTableCellEditor.java b/bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/TextTableCellEditor.java index b9920415f..f84e0ef84 100644 --- a/bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/TextTableCellEditor.java +++ b/bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/TextTableCellEditor.java @@ -27,6 +27,7 @@ import org.simantics.databoard.Bindings; 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 { @@ -135,8 +136,15 @@ class TextTableCellEditor extends DefaultCellEditor implements SpreadsheetCellEd 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) @@ -145,14 +153,19 @@ class TextTableCellEditor extends DefaultCellEditor implements SpreadsheetCellEd expression = ""; } else { expression = "=" + expression; - } + } + //Don't update if the expression hasn't changed if (expression.equals(str)) 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 } }