-package org.simantics.modeling.ui.actions;\r
-\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.common.utils.NameUtils;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.adapter.ActionFactory;\r
-import org.simantics.document.DocumentResource;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.ui.SimanticsUI;\r
-\r
-public class NewDocument implements ActionFactory {\r
-\r
- @Override\r
- public Runnable create(Object target) {\r
- if(!(target instanceof Resource))\r
- return null;\r
- final Resource model = (Resource)target;\r
- return new Runnable() {\r
-\r
- @Override\r
- public void run() {\r
- SimanticsUI.getSession().asyncRequest(new WriteRequest() {\r
- @Override\r
- public void perform(WriteGraph graph) throws DatabaseException {\r
- graph.markUndoPoint();\r
- \r
- Layer0 L0 = Layer0.getInstance(graph);\r
- DocumentResource DOC = DocumentResource.getInstance(graph);\r
-\r
- String name = NameUtils.findFreshEscapedName(graph, "Document", model, L0.ConsistsOf);\r
-\r
- // Create DOC.WikiDocument instance\r
- Resource wikiDocument = graph.newResource();\r
- graph.claim(wikiDocument, L0.InstanceOf, DOC.WikiDocument);\r
- graph.claim(wikiDocument, L0.PartOf, model);\r
- graph.claimLiteral(wikiDocument, L0.HasName, name);\r
-\r
- // Bind an empty document scene graph to the new :DOC.WikiDocument\r
- Resource documentType = graph.getSingleObject(DOC.WikiDocument_WikiDocumentBinding, DOC.DocumentTypeBinding_HasDocumentType);\r
- Resource document = graph.newResource();\r
- graph.claim(document, L0.InstanceOf, null, DOC.ScenegraphDocument);\r
- graph.claimLiteral(document, L0.HasName, "Documentation");\r
- graph.claim(wikiDocument, DOC.HasDocumentation, document);\r
- graph.claim(document, L0.PartOf, wikiDocument);\r
-\r
- Resource scenegraph = graph.newResource();\r
- graph.claim(scenegraph, L0.InstanceOf, null, documentType);\r
- graph.claimLiteral(scenegraph, L0.HasName, "Scenegraph");\r
- graph.claim(scenegraph, L0.PartOf, document);\r
- graph.claim(document, DOC.ScenegraphDocument_scenegraph, scenegraph);\r
-\r
- }\r
- });\r
- }\r
- \r
- };\r
- }\r
-\r
-}\r
+package org.simantics.modeling.ui.actions;
+
+import org.simantics.Simantics;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ActionFactory;
+import org.simantics.document.DocumentResource;
+import org.simantics.layer0.Layer0;
+
+public class NewDocument implements ActionFactory {
+
+ @Override
+ public Runnable create(Object target) {
+ if(!(target instanceof Resource))
+ return null;
+ final Resource model = (Resource)target;
+ return new Runnable() {
+
+ @Override
+ public void run() {
+ Simantics.getSession().asyncRequest(new WriteRequest() {
+ @Override
+ public void perform(WriteGraph graph) throws DatabaseException {
+ graph.markUndoPoint();
+
+ Layer0 L0 = Layer0.getInstance(graph);
+ DocumentResource DOC = DocumentResource.getInstance(graph);
+
+ String name = NameUtils.findFreshEscapedName(graph, "Document", model, L0.ConsistsOf); //$NON-NLS-1$
+
+ // Create DOC.WikiDocument instance
+ Resource wikiDocument = graph.newResource();
+ graph.claim(wikiDocument, L0.InstanceOf, DOC.WikiDocument);
+ graph.claim(wikiDocument, L0.PartOf, model);
+ graph.claimLiteral(wikiDocument, L0.HasName, name);
+
+ // Bind an empty document scene graph to the new :DOC.WikiDocument
+ Resource documentType = graph.getSingleObject(DOC.WikiDocument_WikiDocumentBinding, DOC.DocumentTypeBinding_HasDocumentType);
+ Resource document = graph.newResource();
+ graph.claim(document, L0.InstanceOf, null, DOC.ScenegraphDocument);
+ graph.claimLiteral(document, L0.HasName, "Documentation"); //$NON-NLS-1$
+ graph.claim(wikiDocument, DOC.HasDocumentation, document);
+ graph.claim(document, L0.PartOf, wikiDocument);
+
+ Resource scenegraph = graph.newResource();
+ graph.claim(scenegraph, L0.InstanceOf, null, documentType);
+ graph.claimLiteral(scenegraph, L0.HasName, "Scenegraph"); //$NON-NLS-1$
+ graph.claim(scenegraph, L0.PartOf, document);
+ graph.claim(document, DOC.ScenegraphDocument_scenegraph, scenegraph);
+
+ }
+ });
+ }
+
+ };
+ }
+
+}