]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/SelectionListener.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet.ui / src / org / simantics / spreadsheet / ui / SelectionListener.java
index d2eece5bd2b6275927f5980c0d30841d5c7c5219..500d8cd7f6bf1bad8adac4967699caee6309d41a 100644 (file)
@@ -11,9 +11,10 @@ import org.simantics.databoard.binding.mutable.Variant;
 import org.simantics.db.layer0.variable.Variable;
 import org.simantics.spreadsheet.Adaptable;
 import org.simantics.spreadsheet.ClientModel;
+import org.simantics.spreadsheet.Spreadsheets;
 import org.simantics.spreadsheet.util.SpreadsheetUtils;
-import org.simantics.utils.ui.jface.ActiveSelectionProvider;
 import org.simantics.ui.selection.VariableWorkbenchSelectionElement;
+import org.simantics.utils.ui.jface.ActiveSelectionProvider;
 
 public class SelectionListener implements ListSelectionListener {
 
@@ -62,9 +63,18 @@ public class SelectionListener implements ListSelectionListener {
 
                        final Object cell = table.getValueAt(selectedRows[0], selectedColumns[0]);
                        if(cell != null) {
-                               String expression = clientModel.getPossiblePropertyAt(SpreadsheetUtils.cellName(selectedRows[0], selectedColumns[0]), ClientModel.CONTENT_EXPRESSION);
+
+                               String expression = "";
+
+                               Object expressionO = clientModel.getPossiblePropertyAt(Spreadsheets.cellName(selectedRows[0], selectedColumns[0]), ClientModel.CONTENT_EXPRESSION);
+                               if(expressionO instanceof String) {
+                                       expression = (String)expressionO;
+                               } else if(expressionO instanceof Variant) {
+                                       expression = ((Variant)expressionO).toString();
+                               }
+
                                if(expression == null) {
-                                       Variant content = SpreadsheetUtils.getSafeClientVariant(clientModel, SpreadsheetUtils.cellName(selectedRows[0], selectedColumns[0]), ClientModel.CONTENT);
+                                       Variant content = SpreadsheetUtils.getSafeClientVariant(clientModel, Spreadsheets.cellName(selectedRows[0], selectedColumns[0]), ClientModel.CONTENT);
                                        if(content != null)
                                                expression =  content.getValue().toString();
                                        else