]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.ui/scl/Simantics/Document.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.ui / scl / Simantics / Document.scl
1 import "Simantics/Model"\r
2 import "Simantics/Ontologies"\r
3 import "UI/Progress"\r
4     \r
5 importJava "org.simantics.document.ui.actions.ImportDocumentWithDetail" where\r
6     importDocumentWithDetailSCL :: Resource -> String -> <WriteGraph> Resource\r
7     \r
8 importJava "org.simantics.document.ui.graphfile.FileDocumentUtil" where\r
9     importFolderWithName :: String -> Resource -> Resource -> Resource -> ProgressMonitor -> <WriteGraph> Resource\r
10     \r
11 importJava "org.simantics.document.ui.actions.AddUrlDocumentWithDetail" where\r
12     addUrlDocumentWithDetailSCL :: Resource -> String -> String -> <WriteGraph> Resource\r
13     \r
14 importJava "org.simantics.document.ui.actions.ExportDocumentFile" where\r
15     exportDocument :: Resource -> String -> <Proc> ()\r
16 \r
17 documentsFolders :: Model -> <ReadGraph> [Resource]\r
18 documentsFolders model = recurse DOCUMENT.DocumentLibrary (toResource model)\r
19   where\r
20     recurse t r = do\r
21         cs = resourceChildrenOf r \r
22         libraries = filter isLibrary cs\r
23         libraryGrp = filter (not . isLibrary) cs\r
24         libraries + concatMap (recurse t) libraryGrp\r
25     isLibrary r = isInstanceOf r DOCUMENT.DocumentLibrary\r
26 \r
27 documents :: Model -> <ReadGraph> [Resource]\r
28 documents model = recurse DOCUMENT.Document (toResource model)\r
29   where\r
30     recurse t r = do\r
31         cs = resourceChildrenOf r \r
32         documents = filter isDocument cs\r
33         documentFolder = filter (not . isDocument) cs\r
34         documents + concatMap (recurse t) documentFolder\r
35     isDocument r = isInstanceOf r DOCUMENT.Document\r
36     \r
37 document :: Model -> String -> <ReadGraph> [Resource]\r
38 document model name = do\r
39     docs = documents model\r
40     filter (\x -> (relatedValue2 x L0.HasName :: String) == name) docs\r