1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.office.spreadsheet.cells;
22
23 import org.millscript.millscript.action.Action;
24 import org.millscript.millscript.vm.Package;
25 import org.millscript.office.spreadsheet.Cell;
26 import org.millscript.office.spreadsheet.CellRef;
27 import org.millscript.office.spreadsheet.Workbook;
28
29 /**
30 *
31 */
32 public class FormulaCell implements Cell {
33
34 private Action action;
35
36 private Object result;
37
38 public FormulaCell( final Action act, final Object obj ) {
39 this.action = act;
40 this.result = obj;
41 }
42
43 /**
44 * @see org.millscript.office.spreadsheet.Cell#getCalculatedContents(org.millscript.office.spreadsheet.CellRef)
45 */
46 public Object getCalculatedContents( final CellRef cellRef ) {
47
48 final Workbook workbook = cellRef.getRowRef().getWorksheetRef().getWorkbookRef().getWorkbook();
49
50 final Package standard = workbook.getEngine().getPackage( "millscript.standard" );
51
52 standard.findIdentFor( null, "cell" ).getRef().value = cellRef;
53 this.result = this.action.act1( workbook.getEngine().getMachine() );
54 return this.result;
55 }
56
57 /**
58 * @see org.millscript.office.spreadsheet.Cell#getContents()
59 */
60 public Object getContents() {
61 return this.action;
62 }
63
64 /**
65 * @see java.lang.Object#toString()
66 */
67 @Override
68 public String toString() {
69 return "FORMULA(" + String.valueOf( this.getContents() ) + ")";
70 }
71
72 }