]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.ui/src/org/simantics/document/ui/actions/AddUrlDocumentWithDetail.java
Externalize strings in org.simantics.document.ui
[simantics/platform.git] / bundles / org.simantics.document.ui / src / org / simantics / document / ui / actions / AddUrlDocumentWithDetail.java
index 86fc104db2bf9fce17ec5dc7da72cadcb7e07460..829b2aa324790d7c56cfed15e3f0d122ba47c418 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.document.ui.actions;\r
-\r
-import org.eclipse.jface.dialogs.InputDialog;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\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.exception.DatabaseException;\r
-import org.simantics.db.exception.ManyObjectsForFunctionalRelationException;\r
-import org.simantics.db.exception.ServiceException;\r
-import org.simantics.document.DocumentResource;\r
-import org.simantics.document.ui.dialogs.UrlDetailDialog;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.utils.datastructures.Callback;\r
-import org.simantics.utils.ui.ExceptionUtils;\r
-\r
-/**\r
- * Action for adding URI-links as documents.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public class AddUrlDocumentWithDetail extends AddDocumentAction {\r
-\r
-       public AddUrlDocumentWithDetail(ReadGraph graph, String relationUri)\r
-                       throws DatabaseException {\r
-               super(graph, relationUri);\r
-       }\r
-\r
-\r
-       @Override\r
-       public Runnable create(Object target) {\r
-               if(!(target instanceof Resource))\r
-                       return null;\r
-               final Resource resource = (Resource)target;\r
-               return new Runnable() {\r
-                       \r
-                       @Override\r
-                       public void run() {\r
-                               final UrlDetailDialog dialog = new UrlDetailDialog(Display.getCurrent().getActiveShell(),resource);\r
-                               if (dialog.open() != InputDialog.OK) {\r
-                                       dialog.getAnnotationConfigurator().dispose();\r
-                                       return;\r
-                               }\r
-                               final String uriString = dialog.getUrl();\r
-                               final String name = dialog.getName();\r
-                               Simantics.getSession().asyncRequest(new WriteRequest() {\r
-                                       @Override\r
-                                       public void perform(WriteGraph graph)\r
-                                                       throws DatabaseException {\r
-                                           graph.markUndoPoint();\r
-                                           Resource urlDocument = doAddUrl(graph, name, uriString);\r
-                                           linkDocument(graph, resource, urlDocument);\r
-                                               dialog.getAnnotationConfigurator().apply(graph,urlDocument);\r
-                                       }\r
-                               },new Callback<DatabaseException>() {\r
-                                       @Override\r
-                                       public void run(DatabaseException parameter) {\r
-                                               dialog.getAnnotationConfigurator().dispose();\r
-                                               if (parameter != null) {\r
-                                                       ExceptionUtils.logAndShowError("Cannot add URL link.", parameter);\r
-                                               }\r
-                                               \r
-                                       }\r
-                               });\r
-                       }\r
-               };\r
-       }\r
-\r
-       private Resource doAddUrl(WriteGraph graph, String name, String uriString) throws ManyObjectsForFunctionalRelationException, ServiceException {\r
-        Layer0 l0 = Layer0.getInstance(graph);\r
-        DocumentResource doc = DocumentResource.getInstance(graph);\r
-        Resource urlDocument = graph.newResource();\r
-        graph.claim(urlDocument, l0.InstanceOf, doc.UrlDocument);\r
-        graph.claimLiteral(urlDocument, l0.HasName, name);\r
-        graph.claimLiteral(urlDocument, doc.HasUrl, uriString);\r
-        return urlDocument;\r
-       }\r
-       \r
-       public static Resource addUrlDocumentWithDetailSCL(WriteGraph graph, Resource target, String name, String uriString) throws DatabaseException {\r
-           AddUrlDocumentWithDetail urlDocument = new AddUrlDocumentWithDetail(graph, "http://www.simantics.org/Layer0-1.1/ConsistsOf");\r
-           Resource urlResource = urlDocument.doAddUrl(graph, name, uriString);\r
-           urlDocument.linkDocument(graph, target, urlResource);\r
-           return urlResource;\r
-       }\r
-\r
-       \r
-//     @Override\r
-//     public Runnable create(Object target) {\r
-//\r
-//             if(!(target instanceof Resource))\r
-//                     return null;\r
-//\r
-//             final Resource resource = (Resource)target;\r
-//\r
-//             return new Runnable() {\r
-//                     @Override\r
-//                     public void run() {\r
-//                             InputDialog dialog = new InputDialog(Display.getCurrent().getActiveShell(), "Add URL", "Input URL", "", new URLValidator());\r
-//                             if (dialog.open() != InputDialog.OK)\r
-//                                     return;\r
-//                             final String uriString = dialog.getValue();\r
-//                             Simantics.getSession().asyncRequest(new WriteRequest() {\r
-//                                     \r
-//                                     @Override\r
-//                                     public void perform(WriteGraph graph) throws DatabaseException {\r
-//                                             Layer0 l0 = Layer0.getInstance(graph);\r
-//                                             DocumentResource doc = DocumentResource.getInstance(graph);\r
-//                                             Resource urlDocument = graph.newResource();\r
-//                                             graph.claim(urlDocument, l0.InstanceOf, doc.UrlDocument);\r
-//                                             graph.claimLiteral(urlDocument, l0.HasName, uriString);\r
-//                                             graph.claimLiteral(urlDocument, doc.HasUrl, uriString);\r
-//                                             \r
-//                                             if (graph.isInstanceOf(resource, doc.UrlDocument)) {\r
-//                                                     if (graph.hasStatement(resource, doc.HasNewerVersion))\r
-//                                                             throw new DatabaseException("Document " + NameUtils.getSafeName(graph, resource) +" has already new version");\r
-//                                                     // adding a new revision\r
-//                                                     Resource inverse = graph.getInverse(relation);\r
-//                                                     Resource lib = graph.getSingleObject(resource, inverse);\r
-//                                                     graph.claim(lib, relation, urlDocument);\r
-//                                                     graph.claim(resource, doc.HasNewerVersion, urlDocument);\r
-//                                             } else {\r
-//                                                     // adding to a library\r
-//                                                     graph.claim(resource, relation, urlDocument);\r
-//                                             }\r
-//                                     }\r
-//                             },new Callback<DatabaseException>() {\r
-//                                     \r
-//                                     @Override\r
-//                                     public void run(DatabaseException parameter) {\r
-//                                             if (parameter != null) {\r
-//                                                     ExceptionUtils.logAndShowError("Cannot add URL link.", parameter);\r
-//                                             }\r
-//                                             \r
-//                                     }\r
-//                             });\r
-//                             \r
-//                     }\r
-//             };\r
-//     }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.document.ui.actions;
+
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.swt.widgets.Display;
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.exception.ManyObjectsForFunctionalRelationException;
+import org.simantics.db.exception.ServiceException;
+import org.simantics.document.AddDocumentAction;
+import org.simantics.document.DocumentResource;
+import org.simantics.document.ui.dialogs.UrlDetailDialog;
+import org.simantics.layer0.Layer0;
+import org.simantics.utils.ui.ExceptionUtils;
+
+/**
+ * Action for adding URI-links as documents.
+ * 
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+public class AddUrlDocumentWithDetail extends AddDocumentAction {
+
+       public AddUrlDocumentWithDetail(ReadGraph graph, String relationUri)
+                       throws DatabaseException {
+               super(graph, relationUri);
+       }
+
+
+       @Override
+       public Runnable create(Object target) {
+               if(!(target instanceof Resource))
+                       return null;
+               final Resource resource = (Resource)target;
+               return new Runnable() {
+                       
+                       @Override
+                       public void run() {
+                               final UrlDetailDialog dialog = new UrlDetailDialog(Display.getCurrent().getActiveShell(),resource);
+                               if (dialog.open() != InputDialog.OK) {
+                                       dialog.getAnnotationConfigurator().dispose();
+                                       return;
+                               }
+                               final String uriString = dialog.getUrl();
+                               final String name = dialog.getName();
+                               Simantics.getSession().asyncRequest(new WriteRequest() {
+                                       @Override
+                                       public void perform(WriteGraph graph)
+                                                       throws DatabaseException {
+                                           graph.markUndoPoint();
+                                           Resource urlDocument = doAddUrl(graph, name, uriString);
+                                           linkDocument(graph, resource, urlDocument);
+                                               dialog.getAnnotationConfigurator().apply(graph,urlDocument);
+                                       }
+                               }, e -> {
+                                       dialog.getAnnotationConfigurator().dispose();
+                                       if (e != null)
+                                               ExceptionUtils.logAndShowError("Cannot add URL link.", e); //$NON-NLS-1$
+                               });
+                       }
+               };
+       }
+
+       private Resource doAddUrl(WriteGraph graph, String name, String uriString) throws ManyObjectsForFunctionalRelationException, ServiceException {
+        Layer0 l0 = Layer0.getInstance(graph);
+        DocumentResource doc = DocumentResource.getInstance(graph);
+        Resource urlDocument = graph.newResource();
+        graph.claim(urlDocument, l0.InstanceOf, doc.UrlDocument);
+        graph.claimLiteral(urlDocument, l0.HasName, name);
+        graph.claimLiteral(urlDocument, doc.HasUrl, uriString);
+        return urlDocument;
+       }
+       
+       public static Resource addUrlDocumentWithDetailSCL(WriteGraph graph, Resource target, String name, String uriString) throws DatabaseException {
+           AddUrlDocumentWithDetail urlDocument = new AddUrlDocumentWithDetail(graph, "http://www.simantics.org/Layer0-1.1/ConsistsOf"); //$NON-NLS-1$
+           Resource urlResource = urlDocument.doAddUrl(graph, name, uriString);
+           urlDocument.linkDocument(graph, target, urlResource);
+           return urlResource;
+       }
+
+       
+//     @Override
+//     public Runnable create(Object target) {
+//
+//             if(!(target instanceof Resource))
+//                     return null;
+//
+//             final Resource resource = (Resource)target;
+//
+//             return new Runnable() {
+//                     @Override
+//                     public void run() {
+//                             InputDialog dialog = new InputDialog(Display.getCurrent().getActiveShell(), "Add URL", "Input URL", "", new URLValidator());
+//                             if (dialog.open() != InputDialog.OK)
+//                                     return;
+//                             final String uriString = dialog.getValue();
+//                             Simantics.getSession().asyncRequest(new WriteRequest() {
+//                                     
+//                                     @Override
+//                                     public void perform(WriteGraph graph) throws DatabaseException {
+//                                             Layer0 l0 = Layer0.getInstance(graph);
+//                                             DocumentResource doc = DocumentResource.getInstance(graph);
+//                                             Resource urlDocument = graph.newResource();
+//                                             graph.claim(urlDocument, l0.InstanceOf, doc.UrlDocument);
+//                                             graph.claimLiteral(urlDocument, l0.HasName, uriString);
+//                                             graph.claimLiteral(urlDocument, doc.HasUrl, uriString);
+//                                             
+//                                             if (graph.isInstanceOf(resource, doc.UrlDocument)) {
+//                                                     if (graph.hasStatement(resource, doc.HasNewerVersion))
+//                                                             throw new DatabaseException("Document " + NameUtils.getSafeName(graph, resource) +" has already new version");
+//                                                     // adding a new revision
+//                                                     Resource inverse = graph.getInverse(relation);
+//                                                     Resource lib = graph.getSingleObject(resource, inverse);
+//                                                     graph.claim(lib, relation, urlDocument);
+//                                                     graph.claim(resource, doc.HasNewerVersion, urlDocument);
+//                                             } else {
+//                                                     // adding to a library
+//                                                     graph.claim(resource, relation, urlDocument);
+//                                             }
+//                                     }
+//                             },new Callback<DatabaseException>() {
+//                                     
+//                                     @Override
+//                                     public void run(DatabaseException parameter) {
+//                                             if (parameter != null) {
+//                                                     ExceptionUtils.logAndShowError("Cannot add URL link.", parameter);
+//                                             }
+//                                             
+//                                     }
+//                             });
+//                             
+//                     }
+//             };
+//     }
+}