]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/EvaluateAll.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / EvaluateAll.java
1 package org.simantics.spreadsheet.graph;
2
3 import org.simantics.spreadsheet.SpreadsheetVisitor;
4 import org.simantics.spreadsheet.solver.SpreadsheetBook;
5 import org.simantics.spreadsheet.solver.SpreadsheetCell;
6 import org.simantics.spreadsheet.solver.SpreadsheetEngine;
7 import org.simantics.spreadsheet.solver.SpreadsheetLine;
8 import org.simantics.spreadsheet.solver.SpreadsheetLines;
9 import org.simantics.spreadsheet.solver.formula.SpreadsheetEvaluationEnvironment;
10
11 public class EvaluateAll implements SpreadsheetVisitor {
12         
13         final SpreadsheetEvaluationEnvironment env;
14         
15         public EvaluateAll(SpreadsheetBook book) {
16                 this.env = SpreadsheetEvaluationEnvironment.getInstance(book);
17         }
18
19         @Override
20         public void visit(SpreadsheetBook book) {
21                 for(SpreadsheetEngine engine : book.sheets) engine.accept(this);
22         }
23
24         @Override
25         public void visit(SpreadsheetEngine engine) {
26                 engine.lines.accept(this);
27         }
28
29         @Override
30         public void visit(SpreadsheetLines node) {
31                 for(SpreadsheetLines child : node.nodes.values()) child.accept(this);
32                 for(SpreadsheetLine line : node.lines.values()) line.accept(this);
33         }
34
35         @Override
36         public void visit(SpreadsheetLine line) {
37                 for(SpreadsheetCell cell : line.cells) cell.accept(this);
38         }
39
40         @Override
41         public void visit(SpreadsheetCell cell) {
42                 try {
43                         cell.evaluate(env, null);
44                 } catch (Throwable t) {
45                         t.printStackTrace();
46                 }
47         }
48
49 }