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.