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]
