--- /dev/null
+package org.simantics.spreadsheet.graph;\r
+\r
+import org.simantics.spreadsheet.graph.formula.SpreadsheetEvaluationEnvironment;\r
+\r
+public class EvaluateAll implements SpreadsheetVisitor {\r
+ \r
+ final SpreadsheetEvaluationEnvironment env;\r
+ \r
+ public EvaluateAll(SpreadsheetBook book) {\r
+ this.env = SpreadsheetEvaluationEnvironment.getInstance(book);\r
+ }\r
+\r
+ @Override\r
+ public void visit(SpreadsheetBook book) {\r
+ for(SpreadsheetEngine engine : book.sheets) engine.accept(this);\r
+ }\r
+\r
+ @Override\r
+ public void visit(SpreadsheetEngine engine) {\r
+ engine.lines.accept(this);\r
+ }\r
+\r
+ @Override\r
+ public void visit(SpreadsheetLines node) {\r
+ for(SpreadsheetLines child : node.nodes.values()) child.accept(this);\r
+ for(SpreadsheetLine line : node.lines.values()) line.accept(this);\r
+ }\r
+\r
+ @Override\r
+ public void visit(SpreadsheetLine line) {\r
+ for(SpreadsheetCell cell : line.cells) cell.accept(this);\r
+ }\r
+\r
+ @Override\r
+ public void visit(SpreadsheetCell cell) {\r
+ try {\r
+ cell.evaluate(env, null);\r
+ } catch (Throwable t) {\r
+ t.printStackTrace();\r
+ }\r
+ }\r
+\r
+}\r