svn commit: r13166 - trunk/src_new/org/argouml/uml/ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2007-07-27 14:26:00-0700
New Revision: 13166

Modified:
   trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java
   trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java
   trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java
   trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java
   trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java
   trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java

Log:
Centralize computation of namespace for new diagrams.

Modified: trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionActivityDiagram.java	2007-07-27 14:26:00-0700
@@ -24,12 +24,10 @@
 
 package org.argouml.uml.ui;
 
-import org.argouml.kernel.Project;
-import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
 import org.argouml.ui.targetmanager.TargetManager;
-import org.argouml.uml.diagram.DiagramFactory;
 import org.argouml.uml.diagram.ArgoDiagram;
+import org.argouml.uml.diagram.DiagramFactory;
 
 /**
  * Action to trigger creation of a new activity diagram.<p>
@@ -53,14 +51,13 @@
 
     /**
      * Create the diagram.
+     * @param namespace the namespace in which to create the diagram
      * @return the newly created and initialized diagram
      */
-    protected ArgoDiagram createDiagram() {
+    protected ArgoDiagram createDiagram(Object namespace) {
         Object target = TargetManager.getInstance().getModelTarget();
         Object graph = null;
-//      Project p = ProjectManager.getManager().getCurrentProject();
-//        Object namespace = p.getRoot(); // the root model
-        Object namespace = Model.getModelManagementFactory().getRootModel();
+
         if (Model.getActivityGraphsHelper().isAddingActivityGraphAllowed(
                 target)) {
             /* The target is a valid context */

Modified: trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionCollaborationDiagram.java	2007-07-27 14:26:00-0700
@@ -42,7 +42,7 @@
     /*
      * @see org.argouml.uml.ui.ActionNewDiagram#createDiagram()
      */
-    public ArgoDiagram createDiagram() {
+    public ArgoDiagram createDiagram(Object namespace) {
         return DiagramFactory.getInstance().createDiagram(
                 DiagramFactory.DiagramType.Collaboration,
                 createCollaboration(),

Modified: trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionDeploymentDiagram.java	2007-07-27 14:26:00-0700
@@ -25,10 +25,9 @@
 package org.argouml.uml.ui;
 
 import org.apache.log4j.Logger;
-import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
-import org.argouml.uml.diagram.DiagramFactory;
 import org.argouml.uml.diagram.ArgoDiagram;
+import org.argouml.uml.diagram.DiagramFactory;
 
 /**
  * Action to trigger creation of a deployment diagram.
@@ -51,46 +50,38 @@
     /*
      * @see org.argouml.uml.ui.ActionAddDiagram#createDiagram(Object)
      */
-    public ArgoDiagram createDiagram(Object notUsedHandle) {
+    public ArgoDiagram createDiagram(Object namespace) {
         // a deployment diagram shows something about the whole model
-        // according to the uml spec
-        Object handle = Model.getModelManagementFactory().getRootModel();
-//	Project p = ProjectManager.getManager().getCurrentProject();
-//	Object handle = p.getRoot();
-        if (!Model.getFacade().isANamespace(handle)) {
+        // according to the UML spec, but we rely on the caller to enforce
+        // that if desired.
+        if (!Model.getFacade().isANamespace(namespace)) {
             LOG.error("No namespace as argument");
-            LOG.error(handle);
+            LOG.error(namespace);
             throw new IllegalArgumentException(
-					       "The argument " + handle
+					       "The argument " + namespace
 					       + "is not a namespace.");
         }
         return DiagramFactory.getInstance().createDiagram(
                 DiagramFactory.DiagramType.Deployment,
-                handle,
+                namespace,
                 null);
     }
 
     /*
      * @see org.argouml.uml.ui.ActionAddDiagram#isValidNamespace(Object)
      */
-    public boolean isValidNamespace(Object notUsedHandle) {
+    public boolean isValidNamespace(Object namespace) {
         // a deployment diagram shows something about the whole model
         // according to the uml spec
-        Object handle =
-            ProjectManager.getManager().getCurrentProject().getRoot();
-        if (!Model.getFacade().isANamespace(handle)) {
+        if (!Model.getFacade().isANamespace(namespace)) {
             LOG.error("No namespace as argument");
-            LOG.error(handle);
+            LOG.error(namespace);
             throw new IllegalArgumentException(
-					       "The argument " + handle
+					       "The argument " + namespace
 					       + "is not a namespace.");
         }
         // may only occur as child of the model or in a package
-        if (handle
-                == ProjectManager.getManager().getCurrentProject().getModel()) {
-            return true;
-        }
-        if (Model.getFacade().isAPackage(handle)) {
+        if (Model.getFacade().isAPackage(namespace)) {
             return true;
         }
         return false;

Modified: trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionNewDiagram.java	2007-07-27 14:26:00-0700
@@ -64,12 +64,15 @@
      */
     public void actionPerformed(ActionEvent e) {
         super.actionPerformed(e);
-        
-        ArgoDiagram diagram = createDiagram();
+
+        // TODO: Since there may be multiple top level elements in
+        // a project, this should be using the default Namespace (currently
+        // undefined) or something similar 
+        Project p = ProjectManager.getManager().getCurrentProject();
+        ArgoDiagram diagram = createDiagram(p.getRoot());
         assert (diagram != null)
         	: "No diagram was returned by the concrete class";
-        
-        Project p = ProjectManager.getManager().getCurrentProject();
+
         p.addMember(diagram);
         //TODO: make the explorer listen to project member property
         //changes...  to eliminate coupling on gui.
@@ -79,9 +82,10 @@
     }
     
     /**
+     * @param namespace the namespace in which to create the diagram
      * @return the new diagram
      */
-    protected abstract ArgoDiagram createDiagram();
+    protected abstract ArgoDiagram createDiagram(Object namespace);
     
     /**
      * Utility function to create a collaboration.

Modified: trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionSequenceDiagram.java	2007-07-27 14:26:00-0700
@@ -42,7 +42,7 @@
     /*
      * @see org.argouml.uml.ui.ActionNewDiagram#createDiagram()
      */
-    public ArgoDiagram createDiagram() {
+    public ArgoDiagram createDiagram(Object namespace) {
         return DiagramFactory.getInstance().createDiagram(
                 DiagramFactory.DiagramType.Sequence,
                 createCollaboration(),

Modified: trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java?view=diff&rev=13166&p1=trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java&p2=trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java&r1=13165&r2=13166
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/ActionStateDiagram.java	2007-07-27 14:26:00-0700
@@ -47,12 +47,9 @@
     /*
      * @see org.argouml.uml.ui.ActionNewDiagram#createDiagram()
      */
-    protected ArgoDiagram createDiagram() {
+    protected ArgoDiagram createDiagram(Object namespace) {
         Object target = TargetManager.getInstance().getModelTarget();
         Object machine = null;
-        Object namespace = Model.getModelManagementFactory().getRootModel();
-//      Project p = ProjectManager.getManager().getCurrentProject();
-//      Object namespace = p.getRoot(); // the root model
         if (Model.getStateMachinesHelper().isAddingStatemachineAllowed(
               target)) {
             /* The target is a valid context. */
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.