import "Simantics/Model" import "Simantics/Ontologies" import "UI/Progress" importJava "org.simantics.document.ui.actions.ImportDocumentWithDetail" where importDocumentWithDetailSCL :: Resource -> String -> Resource importJava "org.simantics.document.ui.graphfile.FileDocumentUtil" where importFolderWithName :: String -> Resource -> Resource -> Resource -> ProgressMonitor -> Resource importJava "org.simantics.document.ui.actions.AddUrlDocumentWithDetail" where addUrlDocumentWithDetailSCL :: Resource -> String -> String -> Resource importJava "org.simantics.document.ui.actions.ExportDocumentFile" where exportDocument :: Resource -> String -> () documentsFolders :: Model -> [Resource] documentsFolders model = recurse DOCUMENT.DocumentLibrary (toResource model) where recurse t r = do cs = resourceChildrenOf r libraries = filter isLibrary cs libraryGrp = filter (not . isLibrary) cs libraries + concatMap (recurse t) libraryGrp isLibrary r = isInstanceOf r DOCUMENT.DocumentLibrary documents :: Model -> [Resource] documents model = recurse DOCUMENT.Document (toResource model) where recurse t r = do cs = resourceChildrenOf r documents = filter isDocument cs documentFolder = filter (not . isDocument) cs documents + concatMap (recurse t) documentFolder isDocument r = isInstanceOf r DOCUMENT.Document document :: Model -> String -> [Resource] document model name = do docs = documents model filter (\x -> (relatedValue2 x L0.HasName :: String) == name) docs