X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.spreadsheet.graph%2Fsrc%2Forg%2Fsimantics%2Fspreadsheet%2Fgraph%2FExcelImport.java;h=24a0a85d0ce15c204e14da3eb7b9ddef85daba48;hp=246f38edf8654dc7145ffd63c33bbe56e4dd99b3;hb=5c67a96d34fe904b8c4b0375cd08ff1d543bf369;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/ExcelImport.java b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/ExcelImport.java index 246f38edf..24a0a85d0 100644 --- a/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/ExcelImport.java +++ b/bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/ExcelImport.java @@ -28,7 +28,7 @@ import org.simantics.datatypes.utils.BTree; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.DelayedWriteRequest; -import org.simantics.db.common.request.WriteRequest; +import org.simantics.db.common.request.WriteResultRequest; import org.simantics.db.common.utils.NameUtils; import org.simantics.db.exception.BindingException; import org.simantics.db.exception.DatabaseException; @@ -39,19 +39,32 @@ import org.simantics.db.layer0.util.Layer0Utils; import org.simantics.db.service.XSupport; import org.simantics.layer0.Layer0; import org.simantics.operation.Layer0X; -import org.simantics.spreadsheet.graph.SpreadsheetStyle.SpreadsheetStyleBuilder; -import org.simantics.spreadsheet.graph.formula.SpreadsheetEvaluationEnvironment; -import org.simantics.spreadsheet.graph.parser.SheetFormulaParser; -import org.simantics.spreadsheet.graph.parser.ast.AstValue; +import org.simantics.spreadsheet.Spreadsheets; import org.simantics.spreadsheet.resource.SpreadsheetResource; -import org.simantics.spreadsheet.util.SpreadsheetUtils; +import org.simantics.spreadsheet.solver.SpreadsheetBook; +import org.simantics.spreadsheet.solver.SpreadsheetStyle; +import org.simantics.spreadsheet.solver.SpreadsheetStyle.SpreadsheetStyleBuilder; +import org.simantics.spreadsheet.solver.formula.CellValueVisitor; +import org.simantics.spreadsheet.solver.formula.SpreadsheetEvaluationEnvironment; +import org.simantics.spreadsheet.solver.formula.parser.SheetFormulaParser; +import org.simantics.spreadsheet.solver.formula.parser.ast.AstValue; +import org.simantics.spreadsheet.synchronization.ExcelArrayFormula; +import org.simantics.spreadsheet.synchronization.ExcelFormula; import org.simantics.utils.DataContainer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ExcelImport { - + + private static final Logger LOGGER = LoggerFactory.getLogger(ExcelImport.class); + private static final double POINT_TO_PIXEL_RATIO = 1.33; - public static void importBook(Resource container, File file) { + public static void importBook(Resource container, File file) { + importBookR(container, file); + } + + public static Resource importBookR(Resource container, File file) { try { @@ -116,7 +129,7 @@ public class ExcelImport { graph.claim(sheet, L0.ConsistsOf, L0.PartOf, newCell); } - BTree bt = new BTree(graph, SpreadsheetUtils.SPREADSHEET_BTREE_SIZE, SR.Lines, SR.LineNode, L0.PartOf, true); + BTree bt = new BTree(graph, Spreadsheets.SPREADSHEET_BTREE_SIZE, SR.Lines, SR.LineNode, L0.PartOf, true); result.add(bt); Resource lines = bt.rootOfBTree(); @@ -164,7 +177,7 @@ public class ExcelImport { Cell val = row.getCell(i, Row.RETURN_BLANK_AS_NULL); if(val != null) { - String cellName = SpreadsheetUtils.cellName(rowN, i); + String cellName = Spreadsheets.cellName(rowN, i); int ccIndx = val.getColumnIndex(); if(columnWidths.size()<=ccIndx){ @@ -254,7 +267,7 @@ public class ExcelImport { btreeContainer.set(result); bookContainer.set(book); } catch (Exception e) { - e.printStackTrace(); + LOGGER.error("Could not import book " + file.getAbsolutePath(), e); btreeContainer.add(Collections.emptyList()); } } @@ -269,20 +282,21 @@ public class ExcelImport { } }); - Simantics.getSession().sync(new WriteRequest() { + return Simantics.getSession().sync(new WriteResultRequest() { @Override - public void perform(WriteGraph graph) throws DatabaseException { + public Resource perform(WriteGraph graph) throws DatabaseException { Resource delayedBook = bookContainer.get(); XSupport support = graph.getService(XSupport.class); Resource book = support.convertDelayedResourceToResource(delayedBook); SpreadsheetGraphUtils.constructAndInitializeRunVariable(graph, book); + return book; } }); } catch (Exception e) { - e.printStackTrace(); + LOGGER.error("Could not import book " + file.getAbsolutePath(), e); + return null; } - } private static Resource assignStyles(WriteGraph graph, SpreadsheetResource SR, Cell cell, Resource book, Map existingStyles, Map existingStyles2, String styleName) throws DatabaseException { @@ -581,7 +595,7 @@ public class ExcelImport { SheetFormulaParser p = new SheetFormulaParser(new StringReader("(-(0.2/2)+SQRT((0.2/2)^2-4*((0.2/2)^2-(3*0.17625)/(PI()*4.7))))")); AstValue v = p.relation(); System.err.println("v="+v); - SpreadsheetBook book = new SpreadsheetBook(); + SpreadsheetBook book = new SpreadsheetBook("http:/"); Object o = v.accept(new CellValueVisitor(SpreadsheetEvaluationEnvironment.getInstance(book), null)); System.err.println("o="+o); }