]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet.graph/scl/Spreadsheet/All.scl
Importing of spreadsheets
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / scl / Spreadsheet / All.scl
1 include "Simantics/DB"
2 include "Simantics/Ontologies"
3 include "Simantics/SCL"
4 include "Simantics/UI"
5 include "Document/All"
6 include "File"
7
8 importJava "org.simantics.spreadsheet.graph.ExternalRef" where
9     data ExternalRef
10
11 importJava "org.simantics.spreadsheet.common.TableCell" where
12     data TableCell
13
14 importJava "org.simantics.spreadsheet.common.TreeTableCell" where
15     data TreeTableCell
16
17     @JavaName getData
18     getTreeTableCellData :: TreeTableCell -> <Proc> a
19     
20     createTreeTableCell :: String -> a -> Maybe b -> Integer -> Integer -> Integer -> Boolean -> <Proc> TreeTableCell
21
22     createTreeTableCell2 :: String -> a -> Maybe b -> a -> Integer -> Integer -> Boolean -> <Proc> TreeTableCell
23     
24     @JavaName getText
25     treeTableCellText :: TreeTableCell -> <Proc> String
26     @JavaName getFont
27     treeTableCellFont :: TreeTableCell -> <Proc> Maybe IFont
28     @JavaName getRow
29     treeTableCellRow :: TreeTableCell -> <Proc> Integer
30     @JavaName getColumn
31     treeTableCellColumn :: TreeTableCell -> <Proc> Integer
32     
33 importJava "org.simantics.spreadsheet.common.SpreadsheetCell" where
34     data SpreadsheetCell
35
36 importJava "org.simantics.spreadsheet.graph.SCL" where
37     toVariant :: a -> Variant
38     modelsSourceContribution :: Resource -> <ReadGraph> [Variable]
39     modelsSourceContributionLabeler :: Variable -> <ReadGraph> String
40
41 importJava "org.simantics.spreadsheet.graph.SpreadsheetGraphUtils" where
42     @JavaName "fullSynchronization"
43     fullSynchronizeSheet :: Variable -> <ReadGraph> Boolean
44     evaluateAll :: Variable -> <ReadGraph> ()
45     saveInitialCondition :: Variable -> Resource -> String -> <WriteGraph> Resource
46     findCell :: Variable -> String -> <ReadGraph> Maybe Variable
47     invalidateAll :: Variable -> <ReadGraph> ()
48     extRefVariable :: Variable -> <ReadGraph> Variant
49     extRefActiveVariable :: Variable -> <ReadGraph> Variant
50
51 importJava "org.simantics.spreadsheet.util.SpreadsheetUtils" where
52     createSheet :: Resource -> String -> <WriteGraph> Resource
53     queryCells :: a -> [TableCell]
54     modifyCells1 :: [TableCell] -> (TableCell -> TableCell) -> [TableCell]
55     modifyCells :: [TableCell] -> [(TableCell -> TableCell)] -> [TableCell]
56     organizeCells :: Integer -> [String] -> [TableCell] -> [TableCell]
57     applyFont :: IFont -> (TableCell -> Boolean) -> TableCell -> TableCell
58     applyAlign :: Integer -> (TableCell -> Boolean) -> TableCell -> TableCell
59     applyForeground :: IColor -> (TableCell -> Boolean) -> TableCell -> TableCell
60     applyBackground :: IColor -> (TableCell -> Boolean) -> TableCell -> TableCell
61     simpleFont :: String -> String -> Integer -> IFont
62     rgbColor :: Integer -> Integer -> Integer -> IColor
63     selectRow :: Integer -> TableCell -> Boolean
64     selectColumn :: Integer -> TableCell -> Boolean
65     setSCLLine :: Resource -> Integer -> String -> <WriteGraph> ()
66     sheetRun :: Resource -> Variable -> <ReadGraph> Variable
67
68 importJava "org.simantics.spreadsheet.graph.SpreadsheetSessionManager" where
69     removeSpreadsheetSession :: Variable -> <Proc, WriteGraph> ()
70
71 importJava "org.simantics.spreadsheet.graph.ExcelImport" where
72     importBook :: Resource -> File -> <Proc> ()
73
74 importSpreadsheetBookAction :: Resource -> <Proc> ()
75 importSpreadsheetBookAction res = match fileDialog "foo" [("Excel file", "*.xls"), ("Excel File", "*.xlsx")] with
76   Nothing -> ()
77   Just file -> importBook res file
78
79 createSpreadsheetBookAction :: Resource -> <Proc> ()
80 createSpreadsheetBookAction res = do
81   syncWrite (\() -> createSpreadsheetBookDefault res)
82   ()
83   
84 createSpreadsheetSheetAction :: Resource -> <Proc> ()
85 createSpreadsheetSheetAction res = do
86   syncWrite (\() -> createSpreadsheetDefault res)
87   ()
88
89 createSpreadsheetDefault :: Resource -> <WriteGraph> Resource
90 createSpreadsheetDefault library = createSheet library $ findFreshEscapedName "Sheet" library 
91
92 createSpreadsheetBookDefault :: Resource -> <WriteGraph> Resource
93 createSpreadsheetBookDefault library = createSpreadsheetBook library $ findFreshEscapedName "Book" library 
94
95 createRange :: Resource -> Resource -> String -> String -> <WriteGraph> Resource
96 createRange library type_ name expression = do
97     range = newResource ()
98     claim range L0.InstanceOf type_
99     claimRelatedValue range L0.HasName name
100     createSCLValue range SHEET.ExpressionRange.cells SHEET.SCLValue expression
101     claim range L0.PartOf library
102     range
103
104 createSpreadsheetBook :: Resource -> String -> <WriteGraph> Resource
105 createSpreadsheetBook library name = do
106     markUndoPoint ()
107     book = newResource ()
108     claim book L0.InstanceOf SHEET.Book
109     claimRelatedValue book L0.HasName name
110     claim book L0.PartOf library
111     createSheet book "Sheet"
112     addCommentMetadata ("Created Spreadsheet Book " + name)
113     book
114