]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SpreadsheetNodeManager.java
ExternalRef corrections
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / SpreadsheetNodeManager.java
index b86544c0dfed7a7e42328334622a84d21c568dbb..64d002f831d81c7198406b877ef21b7cb46cd3e9 100644 (file)
@@ -21,6 +21,7 @@ import org.simantics.spreadsheet.solver.SpreadsheetCellContent;
 import org.simantics.spreadsheet.solver.SpreadsheetCellContentExpression;
 import org.simantics.spreadsheet.solver.SpreadsheetCellEditable;
 import org.simantics.spreadsheet.solver.SpreadsheetFormula;
+import org.simantics.spreadsheet.solver.SpreadsheetSCLConstant;
 import org.simantics.spreadsheet.solver.SpreadsheetTypeNode;
 import org.simantics.structural.stubs.StructuralResource2;
 
@@ -33,11 +34,17 @@ public class SpreadsheetNodeManager extends StandardVariableNodeManager<SheetNod
             
             @Override
             public void cellsChanged(Collection<SpreadsheetCell> cells) {
-                for(SpreadsheetCell cell : cells) {
-                    System.err.println("Modification in cell " + cell);
-                    refreshVariable(new SpreadsheetCellContent(cell));
-                    refreshVariable(new SpreadsheetCellContentExpression(cell));
-                }
+                realm.asyncExec(new Runnable() {
+                    @Override
+                    public void run() {
+                        for(SpreadsheetCell cell : cells) {
+                            refreshVariable(new SpreadsheetCellContent(cell));
+                            Object content = cell.getContent();
+                            if(content instanceof SpreadsheetFormula || content instanceof SpreadsheetSCLConstant)
+                                refreshVariable(new SpreadsheetCellContentExpression(cell));
+                        }
+                    }
+                });
             }
         });
     }