import org.simantics.spreadsheet.CellEditor;
import org.simantics.spreadsheet.ClientModel;
import org.simantics.spreadsheet.Range;
-import org.simantics.spreadsheet.graph.ExcelFormula;
-import org.simantics.spreadsheet.graph.SheetNode;
-import org.simantics.spreadsheet.graph.SpreadsheetBook;
-import org.simantics.spreadsheet.graph.SpreadsheetCell;
-import org.simantics.spreadsheet.graph.SpreadsheetCellContent;
-import org.simantics.spreadsheet.graph.SpreadsheetFormula;
+import org.simantics.spreadsheet.Transaction;
import org.simantics.spreadsheet.graph.SpreadsheetGraphUtils;
-import org.simantics.spreadsheet.graph.SpreadsheetSCLConstant;
import org.simantics.spreadsheet.graph.SpreadsheetSessionManager;
-import org.simantics.spreadsheet.graph.SpreadsheetStyle;
-import org.simantics.spreadsheet.graph.SpreadsheetStyle.SpreadsheetStyleBuilder;
import org.simantics.spreadsheet.graph.celleditor.GraphCellEditorAdapter;
-import org.simantics.spreadsheet.graph.parser.ParseException;
-import org.simantics.spreadsheet.graph.parser.SheetFormulaParser;
-import org.simantics.spreadsheet.graph.parser.ast.AstValue;
import org.simantics.spreadsheet.resource.SpreadsheetResource;
+import org.simantics.spreadsheet.solver.SheetNode;
+import org.simantics.spreadsheet.solver.SpreadsheetBook;
+import org.simantics.spreadsheet.solver.SpreadsheetCell;
+import org.simantics.spreadsheet.solver.SpreadsheetCellContent;
+import org.simantics.spreadsheet.solver.SpreadsheetFormula;
+import org.simantics.spreadsheet.solver.SpreadsheetSCLConstant;
+import org.simantics.spreadsheet.solver.SpreadsheetStyle;
+import org.simantics.spreadsheet.solver.SpreadsheetStyle.SpreadsheetStyleBuilder;
+import org.simantics.spreadsheet.solver.formula.parser.ParseException;
+import org.simantics.spreadsheet.solver.formula.parser.SheetFormulaParser;
+import org.simantics.spreadsheet.solver.formula.parser.ast.AstValue;
+import org.simantics.spreadsheet.synchronization.ExcelFormula;
+import org.simantics.spreadsheet.synchronization.LineContentBean;
+import org.simantics.spreadsheet.synchronization.LineContentBeanCell;
import org.simantics.spreadsheet.util.SpreadsheetUtils;
import gnu.trove.map.TMap;
SpreadsheetCell sc = book.get(sheet.getName(graph), r.startRow, r.startColumn);
sc.setContent(value);
// book.accept(new InvalidateAll());
- List<SpreadsheetCell> changed = book.invalidate(sc);
+// List<SpreadsheetCell> changed = book.invalidate(sc); //Invalidation handled by SpreadsheetNodeManager
realm.asyncExec(new Runnable() {
@Override
private CellEditor<Write> getPossibleCellEditor(WriteGraph graph, String location, Variant value) throws DatabaseException {
SpreadsheetResource SHEET = SpreadsheetResource.getInstance(graph);
- Range range = SpreadsheetUtils.decodeCellAbsolute(location);
-
- List<Variable> cells = SpreadsheetGraphUtils.possibleConfigurationCellVariables(graph, sheet, range);
- if (cells.isEmpty()) {
- if (value == null) {
- return null;
- } else {
- cells = SpreadsheetGraphUtils.getOrCreateConfigurationCellVariables(graph, sheet, range);
- }
- }
- if (cells.size() != 1)
- throw new DatabaseException("Can edit only one cell at a time!");
-
- return cells.iterator().next().getPropertyValue(graph, SHEET.cellEditor);
+ Range range = SpreadsheetUtils.decodePossibleCellAbsolute(location);
+ if(range == null) return null; //No editor found
+
+ List<Variable> cells = SpreadsheetGraphUtils.possibleConfigurationCellVariables(graph, sheet, range);
+ if (cells.isEmpty()) {
+ if (value == null) {
+ return null;
+ } else {
+ cells = SpreadsheetGraphUtils.getOrCreateConfigurationCellVariables(graph, sheet, range);
+ }
+ }
+ if (cells.size() != 1)
+ throw new DatabaseException("Can edit only one cell at a time!");
+
+ return cells.iterator().next().getPropertyValue(graph, SHEET.cellEditor);
}
@Override