svn commit: r12601 - trunk/src_new/org/argouml: ui/targetmanager uml/diagram/collaboration/ui uml/diagram/static_structure/ui uml/diagram/ui uml/ui/behavior/collaborations uml/ui/foundation/core

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2007-05-11 11:44:31-0700
New Revision: 12601

Modified:
   trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java
   trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
   trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
   trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java
   trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java

Log:
Clean out the TargetManager for other Actions.

Modified: trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java&p2=trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java	(original)
+++ trunk/src_new/org/argouml/ui/targetmanager/TargetManager.java	2007-05-11 11:44:31-0700
@@ -42,10 +42,7 @@
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.DeleteInstanceEvent;
 import org.argouml.model.Model;
-import org.argouml.uml.diagram.ui.ActionAddMessage;
 import org.argouml.uml.diagram.ui.UMLDiagram;
-import org.argouml.uml.ui.foundation.core.ActionAddAttribute;
-import org.argouml.uml.ui.foundation.core.ActionAddOperation;
 import org.tigris.gef.base.Diagram;
 import org.tigris.gef.presentation.Fig;
 
@@ -394,12 +391,6 @@
      */
     private boolean inTransaction = false;
 
-    private ActionAddAttribute addAttributeAction = new ActionAddAttribute();
-
-    private ActionAddOperation addOperationAction = new ActionAddOperation();
-    
-    private ActionAddMessage addMessageAction = new ActionAddMessage();
-
     /**
      * Singleton retrieval method.
      * @return the targetmanager
@@ -826,50 +817,15 @@
     }
 
     private void endTargetTransaction() {
-        addAttributeAction.setEnabled(addAttributeAction.shouldBeEnabled());
-        addOperationAction.setEnabled(addOperationAction.shouldBeEnabled());
-        addMessageAction.setEnabled(addMessageAction.shouldBeEnabled());
-
         inTransaction = false;
     }
-    
-    /**
-     * Get the Action for creating and adding a new attribute
-     * to the single selected target (or its owner).
-     * @deprecated in 0.25.3 by Bob Tarling
-     * Use the ActionAddAttribute constructor instead.
-     * @return the action
-     */
-    public Action getAddAttributeAction() {
-        return addAttributeAction;
-    }
-
-    /**
-     * Get the Action for creating and adding a new operation
-     * to the single selected target (or its owner).
-     * @deprecated in 0.25.3 by Bob Tarling
-     * Use the ActionAddAttribute constructor instead.
-     * @return the action
-     */
-    public Action getAddOperationAction() {
-        return addOperationAction;
-    }
-
-    /**
-     * Get the Action for creating and adding a new operation
-     * to the single selected target (or its owner).
-     * @return the action
-     */
-    public Action getAddMessageAction() {
-        return addMessageAction;
-    }
 
     /**
      * Get the Action class for creating and adding a new EnumerationLiteral for
      * the single selected target (or its owner).
      * 
-     * @deprecated by tfmorris for 0.25.3 - use 
-     * new {@link org.argouml.uml.ui.foundation.core.ActionAddEnumerationLiteral}()
+     * @deprecated by tfmorris for 0.25.3 - use new 
+     * {@link org.argouml.uml.ui.foundation.core.ActionAddEnumerationLiteral}()
      * - This was only introduced in 0.24, so it can be removed quickly.
      * @return null
      */

Modified: trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&p2=trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java	2007-05-11 11:44:31-0700
@@ -391,8 +391,7 @@
      */
     private Action getActionMessage() {
         if (actionMessage == null) {
-            actionMessage =
-                TargetManager.getInstance().getAddMessageAction();
+            actionMessage = ActionAddMessage.getTargetFollower();
         }
         return actionMessage;
     }

Modified: trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java&p2=trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java	2007-05-11 11:44:31-0700
@@ -32,9 +32,6 @@
 import org.argouml.i18n.Translator;
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
-import org.argouml.ui.targetmanager.TargetEvent;
-import org.argouml.ui.targetmanager.TargetListener;
-import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.diagram.static_structure.ClassDiagramGraphModel;
 import org.argouml.uml.diagram.ui.ModeCreateDependency;
 import org.argouml.uml.diagram.ui.ModeCreatePermission;
@@ -51,7 +48,7 @@
  * 
  * @author [email protected]
  */
-public class UMLClassDiagram extends UMLDiagram implements TargetListener {
+public class UMLClassDiagram extends UMLDiagram {
 
     /**
      * The UID.
@@ -84,8 +81,6 @@
     private Action actionUniAssociation;
     private Action actionUniAggregation;
     private Action actionUniComposition;
-    private Action actionAttribute;
-    private Action actionOperation;
     private Action actionDataType;
     private Action actionEnumeration;
     private Action actionStereotype;
@@ -97,7 +92,6 @@
      */
     public UMLClassDiagram() {
         super();
-        addTargetListener();
         // TODO: All super constructors should take a GraphModel
         setGraphModel(createGraphModel());
     }
@@ -110,7 +104,6 @@
      */
     public UMLClassDiagram(String name, Object namespace) {
         super(name, namespace);
-        addTargetListener();
     }
 
     /**
@@ -119,7 +112,6 @@
      */
     public UMLClassDiagram(Object m) {
         super(m);
-        addTargetListener();
         String name = getNewDiagramName();
         try {
             setName(name);
@@ -129,18 +121,6 @@
         }
     }
 
-    /**
-     * Add ourselves as a TargetListener after initializing any actions
-     * that the listener callback requires.
-     */
-    private void addTargetListener() {
-        actionAttribute = new ActionAddAttribute();
-        actionAttribute.setEnabled(false);
-        actionOperation = new ActionAddOperation();
-        actionOperation.setEnabled(false);
-        TargetManager.getInstance().addTargetListener(this);
-    }
-
     /*
      * @see org.argouml.uml.diagram.ui.UMLDiagram#setNamespace(java.lang.Object)
      */
@@ -196,8 +176,8 @@
             null,
             getDependencyActions(),
             null,
-            getActionAttribute(),
-            getActionOperation(),
+            ActionAddAttribute.getTargetFollower(),
+            ActionAddOperation.getTargetFollower(),
             getActionAssociationClass(),
             null,
             getDataTypeActions(),
@@ -547,20 +527,6 @@
     }
 
     /**
-     * @return Returns the actionAttribute.
-     */
-    private Action getActionAttribute() {
-        return actionAttribute;
-    }
-
-    /**
-     * @return Returns the actionOperation.
-     */
-    private Action getActionOperation() {
-        return actionOperation;
-    }
-
-    /**
      * @return Returns the actionDataType.
      */
     private Action getActionDataType() {
@@ -634,41 +600,5 @@
         damage();
         return true;
     }
-
-    public void targetAdded(TargetEvent e) {
-	enableActionByTargets();
-    }
-
-    public void targetRemoved(TargetEvent e) {
-	enableActionByTargets();
-    }
-
-    public void targetSet(TargetEvent e) {
-	enableActionByTargets();
-    }
-    
-    private void enableActionByTargets() {
-        boolean enable = false;
-        Object target = TargetManager.getInstance().getSingleModelTarget();
-        if (Model.getFacade().isAClassifier(target)
-            || Model.getFacade().isAFeature(target)
-            || Model.getFacade().isAAssociationEnd(target)) {
-            enable = true;
-        }
-        actionAttribute.setEnabled(enable);
-        actionOperation.setEnabled(enable);
-    }
-
-    /**
-     * 
-     * @see org.argouml.uml.diagram.ArgoDiagram#remove()
-     */
-    @Override
-    public void remove() {
-	super.remove();
-	TargetManager.getInstance().removeTargetListener(this);
-    }
-    
-    
     
 } /* end class UMLClassDiagram */

Modified: trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java&p2=trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/ui/ActionAddMessage.java	2007-05-11 11:44:31-0700
@@ -31,6 +31,8 @@
 import org.argouml.application.helpers.ResourceLoaderWrapper;
 import org.argouml.i18n.Translator;
 import org.argouml.model.Model;
+import org.argouml.ui.targetmanager.TargetEvent;
+import org.argouml.ui.targetmanager.TargetListener;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Globals;
@@ -46,6 +48,8 @@
  */
 public class ActionAddMessage extends UndoableAction {
 
+    private static ActionAddMessage targetFollower;
+    
     /**
      * The constructor.
      */
@@ -57,9 +61,28 @@
                 Translator.localize("action.add-message"));
     }
 
-
-    ////////////////////////////////////////////////////////////////
-    // main methods
+    public static ActionAddMessage getTargetFollower() {
+        if (targetFollower == null) {
+            targetFollower  = new ActionAddMessage();
+            TargetManager.getInstance().addTargetListener(new TargetListener() {
+                public void targetAdded(TargetEvent e) {
+                    setTarget();
+                }
+                public void targetRemoved(TargetEvent e) {
+                    setTarget();
+                }
+
+                public void targetSet(TargetEvent e) {
+                    setTarget();
+                }
+                private void setTarget() {
+                    targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+                }
+            });
+            targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+        }
+        return targetFollower;
+    }
 
     /*
      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

Modified: trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/collaborations/PropPanelAssociationRole.java	2007-05-11 11:44:31-0700
@@ -84,7 +84,7 @@
 		 new JScrollPane(messageList));
 
         addAction(new ActionNavigateContainerElement());
-        addAction(TargetManager.getInstance().getAddMessageAction());
+        addAction(ActionAddMessage.getTargetFollower());
         addAction(getDeleteAction());
     }
 

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddAttribute.java	2007-05-11 11:44:31-0700
@@ -33,6 +33,8 @@
 import org.argouml.kernel.Project;
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
+import org.argouml.ui.targetmanager.TargetEvent;
+import org.argouml.ui.targetmanager.TargetListener;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.tigris.gef.undo.UndoableAction;
 
@@ -43,6 +45,9 @@
  * when this tool should be downlighted or not.
  */
 public class ActionAddAttribute extends UndoableAction {
+
+    private static ActionAddAttribute targetFollower;
+
     /**
      * The constructor for this class.
      */
@@ -54,6 +59,29 @@
                 Translator.localize("button.new-attribute"));
     }
 
+    public static ActionAddAttribute getTargetFollower() {
+        if (targetFollower == null) {
+            targetFollower  = new ActionAddAttribute();
+            TargetManager.getInstance().addTargetListener(new TargetListener() {
+                public void targetAdded(TargetEvent e) {
+                    setTarget();
+                }
+                public void targetRemoved(TargetEvent e) {
+                    setTarget();
+                }
+
+                public void targetSet(TargetEvent e) {
+                    setTarget();
+                }
+                private void setTarget() {
+                    targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+                }
+            });
+            targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+        }
+        return targetFollower;
+    }
+
     /*
      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
      */
@@ -83,8 +111,6 @@
     }
 
     /**
-     * @deprecated in 0.25.3 by Bob Tarling.
-     * It is up to the user of the action to enable it when required
      * @return true if this tool should be enabled
      */
     public boolean shouldBeEnabled() {

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java?view=diff&rev=12601&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java&r1=12600&r2=12601
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/ActionAddOperation.java	2007-05-11 11:44:31-0700
@@ -33,6 +33,8 @@
 import org.argouml.kernel.Project;
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
+import org.argouml.ui.targetmanager.TargetEvent;
+import org.argouml.ui.targetmanager.TargetListener;
 import org.argouml.ui.targetmanager.TargetManager;
 import org.tigris.gef.undo.UndoableAction;
 
@@ -40,8 +42,8 @@
  * Action to add an operation to a classifier.
  */
 public class ActionAddOperation extends UndoableAction {
-    ////////////////////////////////////////////////////////////////
-    // constructors
+
+    private static ActionAddOperation targetFollower;
 
     /**
      * The constructor.
@@ -54,8 +56,29 @@
                 Translator.localize("button.new-operation"));
     }
 
-    ////////////////////////////////////////////////////////////////
-    // main methods
+    public static ActionAddOperation getTargetFollower() {
+        if (targetFollower == null) {
+            targetFollower  = new ActionAddOperation();
+            TargetManager.getInstance().addTargetListener(new TargetListener() {
+                public void targetAdded(TargetEvent e) {
+                    setTarget();
+                }
+                public void targetRemoved(TargetEvent e) {
+                    setTarget();
+                }
+
+                public void targetSet(TargetEvent e) {
+                    setTarget();
+                }
+                private void setTarget() {
+                    targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+                }
+            });
+            targetFollower.setEnabled(targetFollower.shouldBeEnabled());
+        }
+        return targetFollower;
+    }
+
 
     /*
      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
@@ -84,8 +107,6 @@
     }
 
     /**
-     * @deprecated in 0.25.3 by Bob Tarling.
-     * It is up to the user of the action to enable it when required
      * @return true if this tool should be enabled
      */
     public boolean shouldBeEnabled() {
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.