]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/mapping/TGElementCopyAdvisor.java
Layer0Utils.addL0Identifier to prevent possible differentiation of code
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / mapping / TGElementCopyAdvisor.java
index 05f0cf712777a898c343eab07ebf0eb1389a636d..4c7c3d77988f94299cfd18ef8667d046bbd64a40 100644 (file)
@@ -1,86 +1,86 @@
-package org.simantics.modeling.mapping;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.NamedResource;\r
-import org.simantics.db.common.utils.NameUtils;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.util.ClipboardUtils;\r
-import org.simantics.db.layer0.util.SimanticsClipboard.Representation;\r
-import org.simantics.db.layer0.util.SimanticsClipboardImpl;\r
-import org.simantics.db.layer0.util.SimanticsKeys;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.diagram.synchronization.ISynchronizationContext;\r
-import org.simantics.graph.db.TransferableGraphs;\r
-import org.simantics.graph.representation.TransferableGraph1;\r
-import org.simantics.modeling.mapping.ComponentAndElementCopyHandler;\r
-import org.simantics.modeling.mapping.ComponentAndElementPasteImportAdvisor;\r
-\r
-/**\r
- * TG-based ElementCopyAdvisor.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public class TGElementCopyAdvisor extends ElementCopyAdvisor {\r
-       \r
-       public Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, Resource sourceContainer,\r
-            Resource targetContainer, Map<Object, Object> map) throws DatabaseException {\r
-               \r
-\r
-               DiagramResource DIA = DiagramResource.getInstance(graph);\r
-               if (!graph.isInstanceOf(source, DIA.Connection)) {\r
-                       // Connections cannot be copied with TG. \r
-                       SimanticsClipboardImpl builder = new SimanticsClipboardImpl();\r
-                       \r
-                       ComponentAndElementCopyHandler handler = new ComponentAndElementCopyHandler(source,false,true) {\r
-                               @Override\r
-                               protected void processElement(ReadGraph graph, Resource element,\r
-                                               boolean includeElement, ArrayList<NamedResource> roots,\r
-                                               ArrayList<Resource> exclusions) throws DatabaseException {\r
-                                       super.processElement(graph, element, includeElement, roots, exclusions);\r
-                                       TGElementCopyAdvisor.this.processElement(graph, element, includeElement, roots, exclusions);\r
-                               }\r
-                       };\r
-                       \r
-                       ComponentAndElementPasteImportAdvisor advisor = new ComponentAndElementPasteImportAdvisor(graph, targetContainer, false,true);\r
-                       \r
-                       handler.copyToClipboard(graph, builder);\r
-                       for(Set<Representation> object : builder.getContents()) {\r
-                   TransferableGraph1 tg = ClipboardUtils.accept(graph, object, SimanticsKeys.KEY_TRANSFERABLE_GRAPH);\r
-                   if(tg != null) {\r
-                       \r
-                       TransferableGraphs.importGraph1(graph, tg, advisor);\r
-                       advisor.attach(graph);\r
-                       Resource copy = advisor.getElement();\r
-                       map.put(source, copy);\r
-                       return copy;\r
-                   }\r
-               }\r
-               } else {\r
-                       return super.copy(context, graph, source, sourceContainer, targetContainer, map);\r
-               }\r
-               \r
-                throw new DatabaseException("Failed to copy resource " + NameUtils.getSafeName(graph, source, true)\r
-                       + " under " + NameUtils.getSafeName(graph, targetContainer, true));\r
-       }\r
-\r
-       /**\r
-        * Callback for custom element handling.\r
-        * \r
-        * @param graph\r
-        * @param element\r
-        * @param includeElement\r
-        * @param roots\r
-        * @param exclusions\r
-        * @throws DatabaseException\r
-        */\r
-       protected void processElement(ReadGraph graph, Resource element, boolean includeElement, ArrayList<NamedResource> roots, ArrayList<Resource> exclusions) throws DatabaseException {\r
-               \r
-       }\r
-}\r
+package org.simantics.modeling.mapping;
+
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Set;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.NamedResource;
+import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.ClipboardUtils;
+import org.simantics.db.layer0.util.SimanticsClipboard.Representation;
+import org.simantics.db.layer0.util.SimanticsClipboardImpl;
+import org.simantics.db.layer0.util.SimanticsKeys;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.diagram.synchronization.ISynchronizationContext;
+import org.simantics.graph.db.TransferableGraphs;
+import org.simantics.graph.representation.TransferableGraph1;
+import org.simantics.modeling.mapping.ComponentAndElementCopyHandler;
+import org.simantics.modeling.mapping.ComponentAndElementPasteImportAdvisor;
+
+/**
+ * TG-based ElementCopyAdvisor.
+ * 
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+public class TGElementCopyAdvisor extends ElementCopyAdvisor {
+       
+       public Object copy(ISynchronizationContext context, WriteGraph graph, Resource source, Resource sourceContainer,
+            Resource targetContainer, Map<Object, Object> map) throws DatabaseException {
+               
+
+               DiagramResource DIA = DiagramResource.getInstance(graph);
+               if (!graph.isInstanceOf(source, DIA.Connection)) {
+                       // Connections cannot be copied with TG. 
+                       SimanticsClipboardImpl builder = new SimanticsClipboardImpl();
+                       
+                       ComponentAndElementCopyHandler handler = new ComponentAndElementCopyHandler(source,false,true) {
+                               @Override
+                               protected void processElement(ReadGraph graph, Resource element,
+                                               boolean includeElement, ArrayList<NamedResource> roots,
+                                               ArrayList<Resource> exclusions) throws DatabaseException {
+                                       super.processElement(graph, element, includeElement, roots, exclusions);
+                                       TGElementCopyAdvisor.this.processElement(graph, element, includeElement, roots, exclusions);
+                               }
+                       };
+                       
+                       ComponentAndElementPasteImportAdvisor advisor = new ComponentAndElementPasteImportAdvisor(graph, targetContainer, false,true);
+                       
+                       handler.copyToClipboard(graph, builder);
+                       for(Set<Representation> object : builder.getContents()) {
+                   TransferableGraph1 tg = ClipboardUtils.accept(graph, object, SimanticsKeys.KEY_TRANSFERABLE_GRAPH);
+                   if(tg != null) {
+                       
+                       TransferableGraphs.importGraph1(graph, tg, advisor);
+                       advisor.attach(graph);
+                       Resource copy = advisor.getElement();
+                       map.put(source, copy);
+                       return copy;
+                   }
+               }
+               } else {
+                       return super.copy(context, graph, source, sourceContainer, targetContainer, map);
+               }
+               
+                throw new DatabaseException("Failed to copy resource " + NameUtils.getSafeName(graph, source, true)
+                       + " under " + NameUtils.getSafeName(graph, targetContainer, true));
+       }
+
+       /**
+        * Callback for custom element handling.
+        * 
+        * @param graph
+        * @param element
+        * @param includeElement
+        * @param roots
+        * @param exclusions
+        * @throws DatabaseException
+        */
+       protected void processElement(ReadGraph graph, Resource element, boolean includeElement, ArrayList<NamedResource> roots, ArrayList<Resource> exclusions) throws DatabaseException {
+               
+       }
+}