svn commit: r17472 - trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java

Bob Tarling <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2009-11-16 02:21:13-0800
New Revision: 17472

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java

Log:
Allow multiple collaboration diagrams of the same collaboration

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java?view=diff&pathrev=17472&r1=17471&r2=17472
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/ActionCollaborationDiagram.java	2009-11-16 02:21:13-0800
@@ -24,6 +24,13 @@
 
 package org.argouml.uml.ui;
 
+import java.awt.event.ActionEvent;
+
+import org.argouml.kernel.Project;
+import org.argouml.kernel.ProjectManager;
+import org.argouml.model.Model;
+import org.argouml.ui.explorer.ExplorerEventAdaptor;
+import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.diagram.ArgoDiagram;
 import org.argouml.uml.diagram.DiagramFactory;
 import org.argouml.uml.diagram.DiagramSettings;
@@ -32,6 +39,11 @@
  * Action to trigger creation of new collaboration diagram.
  */
 public class ActionCollaborationDiagram extends ActionNewDiagram {
+    
+    /**
+     * The UID.
+     */
+    private static final long serialVersionUID = -1089352213298998155L;
 
     /**
      * Constructor.
@@ -39,7 +51,20 @@
     public ActionCollaborationDiagram() {
         super("action.collaboration-diagram");
     }
-
+    
+    /**
+     * Find the right namespace for the diagram.
+     *
+     * @return the namespace or null
+     */
+    protected Object findNamespace() {
+        Object target = TargetManager.getInstance().getModelTarget();
+        if (Model.getFacade().isACollaboration(target)) {
+            return target;
+        }
+        return super.findNamespace();
+    }
+    
     /*
      * @see org.argouml.uml.ui.ActionNewDiagram#createDiagram()
      */
@@ -47,21 +72,21 @@
     @Deprecated
     @Override
     public ArgoDiagram createDiagram(Object namespace) {
-        return DiagramFactory.getInstance().createDiagram(
-                DiagramFactory.DiagramType.Collaboration,
-                createCollaboration(namespace),
+        return createDiagram(
+                namespace,
                 null);
     }
 
     public ArgoDiagram createDiagram(Object namespace, 
             DiagramSettings settings) {
-        return DiagramFactory.getInstance().create(
-                DiagramFactory.DiagramType.Collaboration,
-                createCollaboration(namespace), settings);
+        if (Model.getFacade().isACollaboration(namespace)) {
+            return DiagramFactory.getInstance().create(
+                    DiagramFactory.DiagramType.Collaboration,
+                    namespace, settings);
+        } else {
+            return DiagramFactory.getInstance().create(
+                    DiagramFactory.DiagramType.Collaboration,
+                    createCollaboration(namespace), settings);
+        }
     }
-    /**
-     * The UID.
-     */
-    private static final long serialVersionUID = -1089352213298998155L;
-
 }

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2418416

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.