]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.template2d.ui/src/org/simantics/modeling/template2d/ui/function/LinkSVGImage.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.modeling.template2d.ui / src / org / simantics / modeling / template2d / ui / function / LinkSVGImage.java
index 912c74f68d4e439b67107e55abf4008357174d8b..aa0527f80fd082622ded42dde092681d9c15dd5f 100644 (file)
-package org.simantics.modeling.template2d.ui.function;\r
-\r
-import java.util.Vector;\r
-\r
-import org.simantics.databoard.Bindings;\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.ReadRequest;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.layer0.variable.Variables;\r
-import org.simantics.diagram.function.PredefinedVariables;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.image2.ontology.ImageResource;\r
-import org.simantics.modeling.template2d.ontology.Template2dResource;\r
-import org.simantics.project.ontology.ProjectResource;\r
-import org.simantics.simulation.ontology.SimulationResource;\r
-import org.simantics.utils.ui.dialogs.ShowMessage;\r
-\r
-public class LinkSVGImage {\r
-       \r
-    public static void linkSVGImage(WriteGraph graph, final Resource parent, final Resource child) {\r
-       \r
-       final String[] uri = {null};\r
-       final String[] msg = {null};\r
-       final String errmsg = "Creation of image reference failed. Activate an experiment and try to copy and paste an image again.";\r
-       \r
-       try {\r
-                       graph.syncRequest(new ReadRequest() {\r
-                               @Override\r
-                               public void run(ReadGraph g) throws DatabaseException {\r
-                                       if (parent == null || child == null) {\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       //Layer0 L0 = Layer0.getInstance(g);\r
-                                       ImageResource IMG = ImageResource.getInstance(g);\r
-                                       if (!g.isInstanceOf(child, IMG.SvgImage)){\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       \r
-                                       Variable parentV = Variables.getVariable(g, parent);\r
-                                       if (parentV == null){\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       \r
-                                       Vector<Variable> grandOfParent = new Vector<Variable>();\r
-                                       Variable tmp = parentV;\r
-                                       do {\r
-                                               grandOfParent.add(0, tmp);\r
-                                               tmp = tmp.getParent(g);\r
-                                       }\r
-                                       while (tmp != null);\r
-                                       \r
-//                                     System.err.println(parentV.getURI(g));\r
-//                                     String parentUri = parentV.getURI(g);\r
-                                       \r
-                                       Variable childV = Variables.getVariable(g, child);\r
-                                       String childUri = null;\r
-                                       if (childV == null){\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       \r
-                                       Vector<Variable> grandOfChild = new Vector<Variable>();\r
-                                       tmp = childV;\r
-                                       do {\r
-                                               grandOfChild.add(0, tmp);\r
-                                               tmp = tmp.getParent(g);\r
-                                       }\r
-                                       while (tmp != null);\r
-                                       \r
-                                       int k = -1; // index of the most nearest common parent\r
-                                       int maxLen = (grandOfChild.size() < grandOfParent.size())? grandOfChild.size() : grandOfParent.size(); \r
-                                       for (int i = 0;i < maxLen; i++){\r
-                                               if (grandOfChild.get(i).equals(grandOfParent.get(i)))\r
-                                                       k++;\r
-                                               else\r
-                                                       break;\r
-                                       }\r
-                                       if (k == -1) // no common parent\r
-                                       {\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       //StructuralResource2 STR = StructuralResource2.getInstance(g);\r
-                                       SimulationResource SIMU = SimulationResource.getInstance(g);\r
-                                       ProjectResource PROJ = ProjectResource.getInstance(g);\r
-                    Template2dResource TEPLATE2D = Template2dResource.getInstance(g);\r
-                                       Resource root = g.getRootLibrary();;\r
-                                       Resource type = null;\r
-                                       String predefined = null;\r
-                                       Resource res = null;\r
-                                       for (;k >= 0;k--){\r
-                                               tmp = grandOfChild.get(k);\r
-                                               res = tmp.getRepresents(g);\r
-                                               if (res.equals(root)){\r
-                                                       predefined = PredefinedVariables.root;\r
-                                                       break;\r
-                                               }\r
-                                               type = g.getPossibleType(res, SIMU.Model);\r
-                                               if (type != null){\r
-                                                       predefined = PredefinedVariables.model;\r
-                                                       break;\r
-                                               }\r
-                                               type = g.getPossibleType(res, PROJ.Project);\r
-                                               if (type != null){\r
-                                                       predefined = PredefinedVariables.project;\r
-                                                       break;\r
-                                               }\r
-                                               type = g.getPossibleType(res, TEPLATE2D.DrawingTemplate);\r
-                                               if (type != null){\r
-                                                       predefined = PredefinedVariables.template;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                                       if (predefined == null) // no predefined common parent\r
-                                       {\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       Variable resV = Variables.getVariable(g, res);\r
-                                       String resUri = resV.getURI(g);\r
-                                       \r
-                                       childUri = childV.getURI(g);\r
-//                                     System.err.println(childUri);\r
-\r
-                                       Resource childModel = Variables.getModel(g, childV);\r
-                                       Resource parentModel = Variables.getModel(g, parentV);\r
-                                       if (childModel == null || parentModel == null){\r
-                                               msg[0] = errmsg; \r
-                                               return;\r
-                                       }\r
-                                       \r
-                                       if (!parentModel.equals(childModel)){\r
-                                               msg[0] = errmsg;\r
-                                               return;\r
-                                       }\r
-\r
-//                                     Variable modelV = Variables.getVariable(g, childModel);\r
-//                                     if (modelV == null){\r
-//                                             msg[0] = errmsg[0];\r
-//                                             return;\r
-//                                     }\r
-//                                     \r
-//                                     String modelUri = modelV.getURI(g);\r
-\r
-                                       if (childUri.startsWith(resUri)){\r
-                                               uri[0] = childUri.substring(resUri.length());\r
-                                               uri[0] = "pre:/" + predefined + uri[0];\r
-//                                             System.err.println(uri);\r
-                                       }\r
-                               }\r
-                       });\r
-                       graph.syncRequest(new WriteRequest() {\r
-                               @Override\r
-                               public void perform(WriteGraph g) throws DatabaseException {\r
-                                       if (uri == null || parent == null){\r
-                                               msg[0] = errmsg;\r
-                                               return;\r
-                                       }\r
-                                       DiagramResource DIA = DiagramResource.getInstance(g);\r
-                    Template2dResource TEMPLATE2D = Template2dResource.getInstance(g);\r
-\r
-                                       Resource var = g.getPossibleObject(parent, DIA.Scenegraph_SVGImage_document);\r
-                                       if (var == null){\r
-                                               msg[0] = "Creation of image reference failed. Only SVG images are supported for now.";\r
-                                               return;\r
-                                       }\r
-                                       \r
-                                       g.claimLiteral(var, TEMPLATE2D.Profiles_VariableReference_path, uri[0] + "#data", Bindings.STRING);\r
-                               }\r
-                       });\r
-                       if (msg[0] != null){\r
-                               ShowMessage.showWarning("Warning", msg[0]);\r
-                       }\r
-               } catch (Exception e) {\r
-                       // TODO: handle exception\r
-                       e.printStackTrace();\r
-               }\r
-       \r
-       }\r
-       \r
-\r
+package org.simantics.modeling.template2d.ui.function;
+
+import java.util.Vector;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.ReadRequest;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.layer0.variable.Variables;
+import org.simantics.diagram.function.PredefinedVariables;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.image2.ontology.ImageResource;
+import org.simantics.modeling.template2d.ontology.Template2dResource;
+import org.simantics.project.ontology.ProjectResource;
+import org.simantics.simulation.ontology.SimulationResource;
+import org.simantics.utils.ui.dialogs.ShowMessage;
+
+public class LinkSVGImage {
+       
+    public static void linkSVGImage(WriteGraph graph, final Resource parent, final Resource child) {
+       
+       final String[] uri = {null};
+       final String[] msg = {null};
+       final String errmsg = "Creation of image reference failed. Activate an experiment and try to copy and paste an image again.";
+       
+       try {
+                       graph.syncRequest(new ReadRequest() {
+                               @Override
+                               public void run(ReadGraph g) throws DatabaseException {
+                                       if (parent == null || child == null) {
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       //Layer0 L0 = Layer0.getInstance(g);
+                                       ImageResource IMG = ImageResource.getInstance(g);
+                                       if (!g.isInstanceOf(child, IMG.SvgImage)){
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       
+                                       Variable parentV = Variables.getVariable(g, parent);
+                                       if (parentV == null){
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       
+                                       Vector<Variable> grandOfParent = new Vector<Variable>();
+                                       Variable tmp = parentV;
+                                       do {
+                                               grandOfParent.add(0, tmp);
+                                               tmp = tmp.getParent(g);
+                                       }
+                                       while (tmp != null);
+                                       
+//                                     System.err.println(parentV.getURI(g));
+//                                     String parentUri = parentV.getURI(g);
+                                       
+                                       Variable childV = Variables.getVariable(g, child);
+                                       String childUri = null;
+                                       if (childV == null){
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       
+                                       Vector<Variable> grandOfChild = new Vector<Variable>();
+                                       tmp = childV;
+                                       do {
+                                               grandOfChild.add(0, tmp);
+                                               tmp = tmp.getParent(g);
+                                       }
+                                       while (tmp != null);
+                                       
+                                       int k = -1; // index of the most nearest common parent
+                                       int maxLen = (grandOfChild.size() < grandOfParent.size())? grandOfChild.size() : grandOfParent.size(); 
+                                       for (int i = 0;i < maxLen; i++){
+                                               if (grandOfChild.get(i).equals(grandOfParent.get(i)))
+                                                       k++;
+                                               else
+                                                       break;
+                                       }
+                                       if (k == -1) // no common parent
+                                       {
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       //StructuralResource2 STR = StructuralResource2.getInstance(g);
+                                       SimulationResource SIMU = SimulationResource.getInstance(g);
+                                       ProjectResource PROJ = ProjectResource.getInstance(g);
+                    Template2dResource TEPLATE2D = Template2dResource.getInstance(g);
+                                       Resource root = g.getRootLibrary();;
+                                       Resource type = null;
+                                       String predefined = null;
+                                       Resource res = null;
+                                       for (;k >= 0;k--){
+                                               tmp = grandOfChild.get(k);
+                                               res = tmp.getRepresents(g);
+                                               if (res.equals(root)){
+                                                       predefined = PredefinedVariables.root;
+                                                       break;
+                                               }
+                                               type = g.getPossibleType(res, SIMU.Model);
+                                               if (type != null){
+                                                       predefined = PredefinedVariables.model;
+                                                       break;
+                                               }
+                                               type = g.getPossibleType(res, PROJ.Project);
+                                               if (type != null){
+                                                       predefined = PredefinedVariables.project;
+                                                       break;
+                                               }
+                                               type = g.getPossibleType(res, TEPLATE2D.DrawingTemplate);
+                                               if (type != null){
+                                                       predefined = PredefinedVariables.template;
+                                                       break;
+                                               }
+                                       }
+                                       if (predefined == null) // no predefined common parent
+                                       {
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       Variable resV = Variables.getVariable(g, res);
+                                       String resUri = resV.getURI(g);
+                                       
+                                       childUri = childV.getURI(g);
+//                                     System.err.println(childUri);
+
+                                       Resource childModel = Variables.getModel(g, childV);
+                                       Resource parentModel = Variables.getModel(g, parentV);
+                                       if (childModel == null || parentModel == null){
+                                               msg[0] = errmsg; 
+                                               return;
+                                       }
+                                       
+                                       if (!parentModel.equals(childModel)){
+                                               msg[0] = errmsg;
+                                               return;
+                                       }
+
+//                                     Variable modelV = Variables.getVariable(g, childModel);
+//                                     if (modelV == null){
+//                                             msg[0] = errmsg[0];
+//                                             return;
+//                                     }
+//                                     
+//                                     String modelUri = modelV.getURI(g);
+
+                                       if (childUri.startsWith(resUri)){
+                                               uri[0] = childUri.substring(resUri.length());
+                                               uri[0] = "pre:/" + predefined + uri[0];
+//                                             System.err.println(uri);
+                                       }
+                               }
+                       });
+                       graph.syncRequest(new WriteRequest() {
+                               @Override
+                               public void perform(WriteGraph g) throws DatabaseException {
+                                       if (uri == null || parent == null){
+                                               msg[0] = errmsg;
+                                               return;
+                                       }
+                                       DiagramResource DIA = DiagramResource.getInstance(g);
+                    Template2dResource TEMPLATE2D = Template2dResource.getInstance(g);
+
+                                       Resource var = g.getPossibleObject(parent, DIA.Scenegraph_SVGImage_document);
+                                       if (var == null){
+                                               msg[0] = "Creation of image reference failed. Only SVG images are supported for now.";
+                                               return;
+                                       }
+                                       
+                                       g.claimLiteral(var, TEMPLATE2D.Profiles_VariableReference_path, uri[0] + "#data", Bindings.STRING);
+                               }
+                       });
+                       if (msg[0] != null){
+                               ShowMessage.showWarning("Warning", msg[0]);
+                       }
+               } catch (Exception e) {
+                       // TODO: handle exception
+                       e.printStackTrace();
+               }
+       
+       }
+       
+
 }
\ No newline at end of file