Author: linus
Date: 2008-02-19 11:55:43-0800
New Revision: 14137

Modified:
   trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java
   trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java

Log:
Patch for issue 4832 about selecting the path visibility for multiple objects.



Contributed by Scott Roberts.

Modified: trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java?view=diff&rev=14137&p1=trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java&p2=trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java&r1=14136&r2=14137
==============================================================================
--- trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java     
(original)
+++ trunk/src/app/src/org/argouml/uml/diagram/ui/ActionSetPath.java     
2008-02-19 11:55:43-0800
@@ -24,12 +24,16 @@
 
 package org.argouml.uml.diagram.ui;
 
+import java.util.Iterator;
 import java.awt.event.ActionEvent;
 
 import javax.swing.Action;
 
 import org.argouml.i18n.Translator;
 import org.argouml.uml.diagram.PathContainer;
+import org.tigris.gef.base.Globals;
+import org.tigris.gef.base.Selection;
+import org.tigris.gef.presentation.Fig;
 import org.tigris.gef.undo.UndoableAction;
 
 
@@ -41,15 +45,22 @@
 class ActionSetPath extends UndoableAction {
 
     private boolean isPathVisible;
-    private PathContainer myFig;
 
-    public ActionSetPath(boolean isVisible, PathContainer fig) {
+    /**
+     * Constructor.
+     *
+     * @param isVisible <tt>true</tt> if the path is visible.
+     */
+    public ActionSetPath(boolean isVisible) {
         super();
         isPathVisible = isVisible;
-        String name = Translator.localize(isVisible ? "menu.popup.hide.path" 
-                : "menu.popup.show.path"); 
+        String name;
+        if (isVisible) {
+            name = Translator.localize("menu.popup.hide.path");
+        } else {
+            name = Translator.localize("menu.popup.show.path");
+        }
         putValue(Action.NAME, name);
-        myFig = fig;
     }
 
     /**
@@ -58,7 +69,18 @@
     @Override
     public void actionPerformed(ActionEvent e) {
         super.actionPerformed(e);
-        myFig.setPathVisible(!isPathVisible);
+
+        // enumerate all selected figures and update their path accordingly  
+        Iterator< ? > i =
+            Globals.curEditor().getSelectionManager().selections().iterator();
+        while (i.hasNext()) {
+            Selection sel = (Selection) i.next();
+            Fig       f   = sel.getContent();
+                       
+            if (f instanceof PathContainer) {
+               ((PathContainer) f).setPathVisible(!isPathVisible);
+            }
+        }
     }
     
 }
\ No newline at end of file

Modified: trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java?view=diff&rev=14137&p1=trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&p2=trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&r1=14136&r2=14137
==============================================================================
--- trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java       
(original)
+++ trunk/src/app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java       
2008-02-19 11:55:43-0800
@@ -555,7 +555,7 @@
             Object ns = Model.getFacade().getNamespace(owner);
             if (ns != null) {
                 /* Only show the path item when there is an owning namespace. 
*/
-                showMenu.add(new ActionSetPath(isPathVisible(), this));
+                showMenu.add(new ActionSetPath(isPathVisible()));
             }
         }
         return showMenu;

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to