X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.spreadsheet.graph%2Fscl%2FSpreadsheet%2FAll.scl;h=aa58a7f73c2f5654dffac51ce7e81accd1eee6be;hb=5c67a96d34fe904b8c4b0375cd08ff1d543bf369;hp=4eeb308d295c394a9bfa397b7728631b46903487;hpb=6a4a43b278d6819c660182eb4954524d1757e077;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.spreadsheet.graph/scl/Spreadsheet/All.scl b/bundles/org.simantics.spreadsheet.graph/scl/Spreadsheet/All.scl index 4eeb308d2..aa58a7f73 100644 --- a/bundles/org.simantics.spreadsheet.graph/scl/Spreadsheet/All.scl +++ b/bundles/org.simantics.spreadsheet.graph/scl/Spreadsheet/All.scl @@ -1,84 +1,154 @@ -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 - -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.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 +include "Simantics/DB" +include "Simantics/Ontologies" +include "Simantics/SCL" +include "Simantics/UI" +include "Document/All" +include "File" + + +effect SpreadsheetTransaction + "spreadsheetTransaction" + "org.simantics.spreadsheet.Transaction" + +importJava "org.simantics.spreadsheet.graph.ExternalRef" where + data ExternalRef + +importJava "org.simantics.spreadsheet.common.TableCell" where + data TableCell + +importJava "java.util.function.Consumer" where + data Consumer + +importJava "org.simantics.spreadsheet.CellEditor" where + data CellEditor + startTransaction :: CellEditor -> OperationMode -> Transaction + @JavaName "edit" + editProperty_ :: CellEditor -> String -> String -> a -> Binding a -> Maybe Consumer -> () + @JavaName "edit" + editContent :: CellEditor -> String -> Variant -> Maybe Consumer -> () + +@inline +editProperty :: Serializable a => CellEditor -> String -> String -> a -> Maybe Consumer -> () +editProperty editor location property value consumer = editProperty_ editor location property value binding consumer + +importJava "org.simantics.spreadsheet.OperationMode" where + data OperationMode + OPERATION :: OperationMode + EDIT_MODE :: OperationMode + +importJava "org.simantics.spreadsheet.Transaction" where + data Transaction + commit :: Transaction -> () + +importJava "org.simantics.spreadsheet.common.TreeTableCell" where + data TreeTableCell + + @JavaName getData + getTreeTableCellData :: TreeTableCell -> a + + createTreeTableCell :: String -> a -> Maybe b -> Integer -> Integer -> Integer -> Boolean -> TreeTableCell + + createTreeTableCell2 :: String -> a -> Maybe b -> a -> 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 -> () + extRefVariable :: Variable -> Variant + extRefActiveVariable :: Variable -> Variant + cellEditor :: Resource -> CellEditor + syncExec :: CellEditor -> OperationMode -> ( a) -> a + cellColumn :: Variable -> Integer + +importJava "org.simantics.spreadsheet.Spreadsheets" where + cellName :: Integer -> Integer -> String + +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 + @JavaName "sheetRun" + bookRun :: Resource -> Variable -> Variable + +sheetRunDefault :: Resource -> Variable +sheetRunDefault sheet = sheetRun sheet (resourceVariable sheet) + +importJava "org.simantics.spreadsheet.graph.SpreadsheetSessionManager" where + removeSpreadsheetSession :: Variable -> () + +importJava "org.simantics.spreadsheet.graph.ExcelImport" where + importBook :: Resource -> File -> () + +importSpreadsheetBookAction :: Resource -> () +importSpreadsheetBookAction res = match fileDialog "foo" [("Excel file", "*.xls"), ("Excel File", "*.xlsx")] with + Nothing -> () + Just file -> importBook res 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 \ No newline at end of file