Author: bobtarling
Date: 2010-04-26 05:56:50-0700
New Revision: 18334
Added:
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActivityGraphContextComboBoxModel.java
Modified:
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
Log:
Issue 6080: Allow combo to change context of activity graph
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java?view=diff&pathrev=18334&r1=18333&r2=18334
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java 2010-04-26 05:56:50-0700
@@ -444,8 +444,14 @@
"label.represented-operation.navigate.tooltip"),
combo);
} else if ("context".equals(prop.getName())) {
- final UMLComboBoxModel model =
- new UMLStateMachineContextComboBoxModel(propertyName, target);
+ final UMLComboBoxModel model;
+ if (Model.getFacade().isAActivityGraph(target)) {
+ model =
+ new UMLActivityGraphContextComboBoxModel(propertyName, target);
+ } else {
+ model =
+ new UMLStateMachineContextComboBoxModel(propertyName, target);
+ }
UMLComboBox combo = new UMLComboBox(model);
comp = new UMLComboBoxNavigator(Translator.localize(
"label.context.navigate.tooltip"),
Added: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActivityGraphContextComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActivityGraphContextComboBoxModel.java?view=markup&pathrev=18334
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActivityGraphContextComboBoxModel.java 2010-04-26 05:56:50-0700
@@ -0,0 +1,154 @@
+/* $Id: UMLActivityGraphContextComboBoxModel.java 17883 2010-01-12 21:11:38Z linus $
+ *****************************************************************************
+ * Copyright (c) 2009-2010 Contributors - see below
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Bob Tarling
+ *****************************************************************************
+ *
+ * Some portions of this file was previously release using the BSD License:
+ */
+
+// Copyright (c) 2006 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies. This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason. IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.core.propertypanels.ui;
+
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.swing.Action;
+
+import org.argouml.i18n.Translator;
+import org.argouml.kernel.Project;
+import org.argouml.kernel.ProjectManager;
+import org.argouml.model.Model;
+import org.argouml.model.UmlChangeEvent;
+import org.argouml.ui.UndoableAction;
+
+/**
+ * Listmodel for the Context of an ActivityGraph.
+ *
+ * @author Michiel
+ */
+class UMLActivityGraphContextComboBoxModel extends UMLComboBoxModel {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 8957839123057771519L;
+
+ /**
+ * Constructor for UMLStateMachineContextListModel.
+ */
+ public UMLActivityGraphContextComboBoxModel(String propertyName, final Object target) {
+ super(propertyName, false);
+ setTarget(target);
+ }
+
+ /*
+ * @see org.argouml.uml.ui.UMLModelElementListModel2#buildModelList()
+ */
+ protected void buildModelList() {
+ Collection elements = new ArrayList();
+ Project p = ProjectManager.getManager().getCurrentProject();
+ for (Object model : p.getUserDefinedModelList()) {
+ elements.addAll(Model
+ .getModelManagementHelper().getAllModelElementsOfKind(
+ model, Model.getMetaTypes().getClassifier()));
+ elements.addAll(Model
+ .getModelManagementHelper().getAllModelElementsOfKind(
+ model,
+ Model.getMetaTypes().getBehavioralFeature()));
+ elements.addAll(Model
+ .getModelManagementHelper().getAllModelElementsOfKind(
+ model, Model.getMetaTypes().getPackage()));
+ }
+
+ setElements(elements);
+ }
+
+ /*
+ * @see org.argouml.uml.ui.UMLComboBoxModel2#isValidElement(Object)
+ */
+ protected boolean isValidElement(Object element) {
+ return Model.getFacade().isAClassifier(element)
+ || Model.getFacade().isABehavioralFeature(element)
+ || Model.getFacade().isAPackage(element);
+ }
+
+ /*
+ * @see org.argouml.uml.ui.UMLComboBoxModel2#getSelectedModelElement()
+ */
+ protected Object getSelectedModelElement() {
+ return Model.getFacade().getContext(getTarget());
+ }
+
+ /*
+ * @see org.argouml.uml.ui.UMLComboBoxModel2#propertyChange(java.beans.PropertyChangeEvent)
+ */
+ public void modelChange(UmlChangeEvent evt) {
+ /* Do nothing by design. */
+ }
+
+ public Action getAction() {
+ return new ActionSetContext();
+ }
+
+ private class ActionSetContext extends UndoableAction {
+
+ /**
+ * The UID.
+ */
+ private static final long serialVersionUID = -8118983979324112900L;
+
+ /**
+ * Constructor for ActionSetCompositeStateConcurrent.
+ */
+ protected ActionSetContext() {
+ super(Translator.localize("action.set"), null);
+ // Set the tooltip string:
+ putValue(Action.SHORT_DESCRIPTION,
+ Translator.localize("action.set"));
+ }
+
+ /*
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+ */
+ public void actionPerformed(ActionEvent e) {
+ super.actionPerformed(e);
+ UMLComboBox source = (UMLComboBox) e.getSource();
+ Object target = source.getTarget();
+ if (Model.getFacade().getContext(target)
+ != source.getSelectedItem()) {
+ Model.getStateMachinesHelper().setContext(
+ target, source.getSelectedItem());
+ }
+ }
+ }
+}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2595906
To unsubscribe from this discussion, e-mail: [[email protected]].
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.