include "Simantics/DB" include "Simantics/Ontologies" include "Simantics/SCL" include "Document/All" include "File" importJava "org.simantics.spreadsheet.common.TableCell" where data TableCell importJava "org.simantics.spreadsheet.common.TreeTableCell" where data TreeTableCell @JavaName getData getTreeTableCellData :: TreeTableCell -> a createTreeTableCell :: String -> a -> Maybe b -> Integer -> Integer -> Integer -> Boolean -> TreeTableCell @JavaName getText treeTableCellText :: TreeTableCell -> String @JavaName getFont treeTableCellFont :: TreeTableCell -> Maybe IFont @JavaName getRow treeTableCellRow :: TreeTableCell -> Integer @JavaName getColumn treeTableCellColumn :: TreeTableCell -> Integer importJava "org.simantics.spreadsheet.common.SpreadsheetCell" where data SpreadsheetCell importJava "org.simantics.spreadsheet.graph.SCL" where toVariant :: a -> Variant modelsSourceContribution :: Resource -> [Variable] modelsSourceContributionLabeler :: Variable -> String importJava "org.simantics.spreadsheet.graph.SpreadsheetGraphUtils" where @JavaName "fullSynchronization" fullSynchronizeSheet :: Variable -> Boolean evaluateAll :: Variable -> () saveInitialCondition :: Variable -> Resource -> String -> Resource findCell :: Variable -> String -> Maybe Variable invalidateAll :: Variable -> () importJava "org.simantics.spreadsheet.util.SpreadsheetUtils" where createSheet :: Resource -> String -> Resource queryCells :: a -> [TableCell] modifyCells1 :: [TableCell] -> (TableCell -> TableCell) -> [TableCell] modifyCells :: [TableCell] -> [(TableCell -> TableCell)] -> [TableCell] organizeCells :: Integer -> [String] -> [TableCell] -> [TableCell] applyFont :: IFont -> (TableCell -> Boolean) -> TableCell -> TableCell applyAlign :: Integer -> (TableCell -> Boolean) -> TableCell -> TableCell applyForeground :: IColor -> (TableCell -> Boolean) -> TableCell -> TableCell applyBackground :: IColor -> (TableCell -> Boolean) -> TableCell -> TableCell simpleFont :: String -> String -> Integer -> IFont rgbColor :: Integer -> Integer -> Integer -> IColor selectRow :: Integer -> TableCell -> Boolean selectColumn :: Integer -> TableCell -> Boolean setSCLLine :: Resource -> Integer -> String -> () sheetRun :: Resource -> Variable -> Variable importJava "org.simantics.spreadsheet.graph.SpreadsheetSessionManager" where removeSpreadsheetSession :: Variable -> () importJava "org.simantics.spreadsheet.graph.ExcelImport" where importBook :: Resource -> File -> () createSpreadsheetBookAction :: Resource -> () createSpreadsheetBookAction res = do syncWrite (\() -> createSpreadsheetBookDefault res) () createSpreadsheetSheetAction :: Resource -> () createSpreadsheetSheetAction res = do syncWrite (\() -> createSpreadsheetDefault res) () createSpreadsheetDefault :: Resource -> Resource createSpreadsheetDefault library = createSheet library $ findFreshEscapedName "Sheet" library createSpreadsheetBookDefault :: Resource -> Resource createSpreadsheetBookDefault library = createSpreadsheetBook library $ findFreshEscapedName "Book" library createRange :: Resource -> Resource -> String -> String -> Resource createRange library type_ name expression = do range = newResource () claim range L0.InstanceOf type_ claimRelatedValue range L0.HasName name createSCLValue range SHEET.ExpressionRange.cells SHEET.SCLValue expression claim range L0.PartOf library range createSpreadsheetBook :: Resource -> String -> Resource createSpreadsheetBook library name = do markUndoPoint () book = newResource () claim book L0.InstanceOf SHEET.Book claimRelatedValue book L0.HasName name claim book L0.PartOf library createSheet book "Sheet" addCommentMetadata ("Created Spreadsheet Book " + name) book