svn commit: r12718 - trunk/src_new/org/argouml: kernel ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2007-05-30 09:49:26-0700
New Revision: 12718

Modified:
   trunk/src_new/org/argouml/kernel/Project.java
   trunk/src_new/org/argouml/ui/ProjectBrowser.java

Log:
Reduce the dependency from the Project (org.argouml.kernel) on the GUI (org.argouml.ui.targetmanager).

Modified: trunk/src_new/org/argouml/kernel/Project.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/kernel/Project.java?view=diff&rev=12718&p1=trunk/src_new/org/argouml/kernel/Project.java&p2=trunk/src_new/org/argouml/kernel/Project.java&r1=12717&r2=12718
==============================================================================
--- trunk/src_new/org/argouml/kernel/Project.java	(original)
+++ trunk/src_new/org/argouml/kernel/Project.java	2007-05-30 09:49:26-0700
@@ -49,8 +49,6 @@
 import org.argouml.model.Model;
 import org.argouml.persistence.PersistenceManager;
 import org.argouml.ui.explorer.ExplorerEventAdaptor;
-import org.argouml.ui.targetmanager.TargetEvent;
-import org.argouml.ui.targetmanager.TargetListener;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.Profile;
 import org.argouml.uml.ProfileException;
@@ -73,7 +71,7 @@
  * The Project is a datastructure that represents the designer's
  * current project. It manages the list of diagrams and UML models.
  */
-public class Project implements java.io.Serializable, TargetListener {
+public class Project implements java.io.Serializable {
 
     /**
      * Logger.
@@ -200,7 +198,6 @@
             LOG.error("Exception setting the default profile", e);
         }
         addSearchPath("PROJECT_DIR");
-        TargetManager.getInstance().addTargetListener(this);
     }
 
     /**
@@ -1277,44 +1274,6 @@
         activeDiagram = theDiagram;
     }
 
-    public void targetAdded(TargetEvent e) {
-    	setTarget(e.getNewTarget());
-    }
-
-    public void targetRemoved(TargetEvent e) {
-    	setTarget(e.getNewTarget());
-    }
-
-    public void targetSet(TargetEvent e) {
-    	setTarget(e.getNewTarget());
-    }
-
-    /**
-     * Called to update the current namespace and active diagram after
-     * the target has changed.
-     *
-     * TODO: The parameter is not used. Why?
-     * @param target Not used.
-     */
-    private void setTarget(Object target) {
-        Object theCurrentNamespace = null;
-        target = TargetManager.getInstance().getModelTarget();
-        if (target instanceof UMLDiagram) {
-            theCurrentNamespace = ((UMLDiagram) target).getNamespace();
-        } else if (Model.getFacade().isANamespace(target)) {
-            theCurrentNamespace = target;
-        } else if (Model.getFacade().isAModelElement(target)) {
-            theCurrentNamespace = Model.getFacade().getNamespace(target);
-        } else {
-            theCurrentNamespace = getRoot();
-        }
-        setCurrentNamespace(theCurrentNamespace);
-
-        if (target instanceof ArgoDiagram) {
-            activeDiagram = (ArgoDiagram) target;
-        }
-    }
-
     /**
      * Remove the project.
      */
@@ -1368,7 +1327,6 @@
         vetoSupport = null;
         activeDiagram = null;
 
-        TargetManager.getInstance().removeTargetListener(this);
         trashcan.clear();
     }
 

Modified: trunk/src_new/org/argouml/ui/ProjectBrowser.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/ui/ProjectBrowser.java?view=diff&rev=12718&p1=trunk/src_new/org/argouml/ui/ProjectBrowser.java&p2=trunk/src_new/org/argouml/ui/ProjectBrowser.java&r1=12717&r2=12718
==============================================================================
--- trunk/src_new/org/argouml/ui/ProjectBrowser.java	(original)
+++ trunk/src_new/org/argouml/ui/ProjectBrowser.java	2007-05-30 09:49:26-0700
@@ -87,6 +87,7 @@
 import org.argouml.uml.diagram.DiagramFactory;
 import org.argouml.uml.diagram.UMLMutableGraphSupport;
 import org.argouml.uml.diagram.ui.ActionRemoveFromDiagram;
+import org.argouml.uml.diagram.ui.UMLDiagram;
 import org.argouml.uml.ui.ActionSaveProject;
 import org.argouml.uml.ui.ProjectFileView;
 import org.argouml.uml.ui.TabProps;
@@ -1004,33 +1005,53 @@
      * @see org.argouml.ui.targetmanager.TargetListener#targetAdded(org.argouml.ui.targetmanager.TargetEvent)
      */
     public void targetAdded(TargetEvent e) {
-        Object target = e.getNewTarget();
-        if (target instanceof ArgoDiagram) {
-            titleHandler.buildTitle(null, (ArgoDiagram) target);
-        }
-        determineRemoveEnabled();
+    	targetChanged(e.getNewTarget());
     }
 
     /*
      * @see org.argouml.ui.targetmanager.TargetListener#targetRemoved(org.argouml.ui.targetmanager.TargetEvent)
      */
     public void targetRemoved(TargetEvent e) {
-        Object target = e.getNewTarget();
-        if (target instanceof ArgoDiagram) {
-            titleHandler.buildTitle(null, (ArgoDiagram) target);
-        }
-        determineRemoveEnabled();
+    	targetChanged(e.getNewTarget());
     }
 
     /*
      * @see org.argouml.ui.targetmanager.TargetListener#targetSet(org.argouml.ui.targetmanager.TargetEvent)
      */
     public void targetSet(TargetEvent e) {
-        Object target = e.getNewTarget();
+    	targetChanged(e.getNewTarget());
+    }
+    
+    /**
+     * Called to update the current namespace and active diagram after
+     * the target has changed.
+     *
+     * @param target the new target
+     */
+    private void targetChanged(Object target) {
         if (target instanceof ArgoDiagram) {
             titleHandler.buildTitle(null, (ArgoDiagram) target);
         }
         determineRemoveEnabled();
+        
+        Project p = ProjectManager.getManager().getCurrentProject();
+        
+        Object theCurrentNamespace = null;
+        target = TargetManager.getInstance().getTarget();
+        if (target instanceof UMLDiagram) {
+            theCurrentNamespace = ((UMLDiagram) target).getNamespace();
+        } else if (Model.getFacade().isANamespace(target)) {
+            theCurrentNamespace = target;
+        } else if (Model.getFacade().isAModelElement(target)) {
+            theCurrentNamespace = Model.getFacade().getNamespace(target);
+        } else {
+            theCurrentNamespace = p.getRoot();
+        }
+        p.setCurrentNamespace(theCurrentNamespace);
+
+        if (target instanceof ArgoDiagram) {
+            p.setActiveDiagram((ArgoDiagram) target);
+        }
     }
 
     /**
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.