Author: bobtarling
Date: 2010-03-24 07:11:33-0700
New Revision: 18145

Removed:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionEffectListModel.java
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionGuardListModel.java
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionTriggerListModel.java
Modified:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels.xml
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels2.xml
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SingleListFactory.java

Log:
First commit with drop down button for creating guards, triggers and effects

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels.xml
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels.xml?view=diff&pathrev=18145&r1=18144&r2=18145
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels.xml
        (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels.xml
        2010-03-24 07:11:33-0700
@@ -2861,9 +2861,9 @@
     <separator />
     <singlerow name="source" type="StateVertex" />
     <singlerow name="target" type="StateVertex" />
-    <singlerow name="guard" type="Guard" />
-    <singlerow name="effect" type="Action" />
-    <singlerow name="trigger" type="Event" />
+    <singlerow name="guard" 
type="org.omg.uml.behavioralelements.statemachines.Guard" />
+    <singlerow name="effect" 
type="org.omg.uml.behavioralelements.commonbehavior.CallAction,org.omg.uml.behavioralelements.commonbehavior.CreateAction,org.omg.uml.behavioralelements.commonbehavior.DestroyAction,org.omg.uml.behavioralelements.commonbehavior.ReturnAction,org.omg.uml.behavioralelements.commonbehavior.SendAction,org.omg.uml.behavioralelements.commonbehavior.TerminateAction,org.omg.uml.behavioralelements.commonbehavior.UninterpretedAction,org.omg.uml.behavioralelements.commonbehavior.ActionSequence"
 />
+    <singlerow name="trigger" 
type="org.omg.uml.behavioralelements.statemachines.CallEvent,org.omg.uml.behavioralelements.statemachines.ChangeEvent,org.omg.uml.behavioralelements.statemachines.SignalEvent,org.omg.uml.behavioralelements.statemachines.TimeEvent"
 />
         
        <debug />
     <attribute name="visibility" type="VisibilityKind" />

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels2.xml
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels2.xml?view=diff&pathrev=18145&r1=18144&r2=18145
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels2.xml
       (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/meta/panels2.xml
       2010-03-24 07:11:33-0700
@@ -2802,10 +2802,7 @@
     <separator />
     <singlerow name="source" type="StateVertex" />
     <singlerow name="target" type="StateVertex" />
-    <singlerow name="guard" type="Guard" />
-    <singlerow name="effect" type="Action" />
-    <singlerow name="trigger" type="Event" />
-        
+    <singlerow name="trigger" 
type="org.eclipse.uml2.uml.CallEvent,org.eclipse.uml2.uml.ChangeEvent,org.eclipse.uml2.uml.SignalEvent,org.eclipse.uml2.uml.TimeEvent"
 />
        <debug />
     <attribute name="visibility" type="VisibilityKind" />
     <attribute name="modifiers">

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java?view=diff&pathrev=18145&r1=18144&r2=18145
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
     (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
     2010-03-24 07:11:33-0700
@@ -13,6 +13,7 @@
 
 package org.argouml.core.propertypanels.model;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -71,6 +72,9 @@
         addGetterSetter("message", new MessageGetterSetter());
         addGetterSetter("actualArgument", new ArgumentGetterSetter());
         addGetterSetter("extensionPoint", new ExtensionPointGetterSetter());
+        addGetterSetter("guard", new GuardGetterSetter());
+        addGetterSetter("effect", new EffectGetterSetter());
+        addGetterSetter("trigger", new TriggerGetterSetter());
     }
     
     /**
@@ -840,6 +844,117 @@
         }
     }
     
+    private class GuardGetterSetter extends ListGetterSetter {
+        
+        /**
+         * Get all the guards
+         * @param modelElement
+         * @param type
+         * @return
+         * @see 
org.argouml.core.propertypanels.model.GetterSetterManager.OptionGetterSetter#getOptions(java.lang.Object,
 java.lang.String)
+         */
+        public Collection getOptions(
+                final Object modelElement,
+                final String type) {
+            final ArrayList l = new ArrayList(1);
+            l.add(Model.getFacade().getGuard(modelElement));
+            return l;
+        }
+      
+        public Object get(Object modelElement, String type) {
+            // not needed
+            return null;
+        }
+      
+        public void set(Object element, Object x) {
+            // not needed
+        }
+
+        protected boolean isValidElement(
+                final Object element,
+                final String type) {
+            return getOptions(element, type).contains(element);
+        }
+        
+        public Object getMetaType() {
+            return Model.getMetaTypes().getGuard();
+        }
+    }
+    
+    private class EffectGetterSetter extends ListGetterSetter {
+        
+        /**
+         * Get all the effects
+         * @param modelElement
+         * @param type
+         * @return
+         * @see 
org.argouml.core.propertypanels.model.GetterSetterManager.OptionGetterSetter#getOptions(java.lang.Object,
 java.lang.String)
+         */
+        public Collection getOptions(
+                final Object modelElement,
+                final String type) {
+            final ArrayList l = new ArrayList(1);
+            l.add(Model.getFacade().getEffect(modelElement));
+            return l;
+        }
+      
+        public Object get(Object modelElement, String type) {
+            // not needed
+            return null;
+        }
+      
+        public void set(Object element, Object x) {
+            // not needed
+        }
+
+        protected boolean isValidElement(
+                final Object element,
+                final String type) {
+            return getOptions(element, type).contains(element);
+        }
+        
+        public Object getMetaType() {
+            return Model.getMetaTypes().getAction();
+        }
+    }
+    
+    private class TriggerGetterSetter extends ListGetterSetter {
+        
+        /**
+         * Get all the effects
+         * @param modelElement
+         * @param type
+         * @return
+         * @see 
org.argouml.core.propertypanels.model.GetterSetterManager.OptionGetterSetter#getOptions(java.lang.Object,
 java.lang.String)
+         */
+        public Collection getOptions(
+                final Object modelElement,
+                final String type) {
+            final ArrayList l = new ArrayList(1);
+            l.add(Model.getFacade().getTrigger(modelElement));
+            return l;
+        }
+      
+        public Object get(Object modelElement, String type) {
+            // not needed
+            return null;
+        }
+      
+        public void set(Object element, Object x) {
+            // not needed
+        }
+
+        protected boolean isValidElement(
+                final Object element,
+                final String type) {
+            return getOptions(element, type).contains(element);
+        }
+        
+        public Object getMetaType() {
+            return Model.getMetaTypes().getEvent();
+        }
+    }
+    
     private class ParameterGetterSetter extends ListGetterSetter {
         
         public Collection getOptions(Object modelElement, String type) {

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java?view=diff&pathrev=18145&r1=18144&r2=18145
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
    (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
    2010-03-24 07:11:33-0700
@@ -83,6 +83,8 @@
 import org.tigris.swidgets.FlexiGridLayout;
 import org.tigris.toolbar.ToolBar;
 import org.tigris.toolbar.ToolBarFactory;
+import org.tigris.toolbar.toolbutton.PopupToolBoxButton;
+import org.tigris.toolbar.toolbutton.ToolButton;
 
 /**
  * A control for displaying the contents of a list model elements in a panel
@@ -298,6 +300,32 @@
             moveDownAction = null;
             moveTopAction = null;
             moveBottomAction = null;
+            if (!readonly) {
+                // Create popup toolbutton if we have a single row
+                final ArrayList<Action> actions = new ArrayList<Action>(6);
+    
+                for (Object meta : metaTypes) {
+                    if (Model.getUmlFactory().isContainmentValid(meta, 
target)) {
+                        final String label =
+                            "button.new-" + 
Model.getMetaTypes().getName(meta).toLowerCase();
+                        final Action createAction = new 
ActionCreateContainedModelElement(
+                                meta,
+                                target,
+                                label);
+                        actions.add(createAction);
+                    }
+                }
+                if (!actions.isEmpty()) {
+                    PopupToolBoxButton tb = new 
PopupToolBoxButton(actions.get(0), actions.size(), 1, true);
+                    for (Action action : actions) {
+                        tb.add(action);
+                    }
+                    JPanel buttonPanel =
+                        new JPanel(new FlexiGridLayout(2, 1, 
FlexiGridLayout.ROWCOLPREFERRED));
+                    buttonPanel.add(tb);
+                    add(buttonPanel, BorderLayout.WEST);
+                }
+            }
         } else {
             if (!readonly) {
                // TODO: Lets build this into a separate buildToolbar method

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SingleListFactory.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SingleListFactory.java?view=diff&pathrev=18145&r1=18144&r2=18145
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SingleListFactory.java
      (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SingleListFactory.java
      2010-03-24 07:11:33-0700
@@ -104,12 +104,6 @@
             model = new UMLTransitionSourceListModel(modelElement, propName);
         } else if ("target".equals(propName)) {
             model = new UMLTransitionTargetListModel(modelElement, propName);
-        } else if ("guard".equals(propName)) {
-            model = new UMLTransitionGuardListModel(modelElement, propName);
-        } else if ("effect".equals(propName)) {
-            model = new UMLTransitionEffectListModel(modelElement, propName);
-        } else if ("trigger".equals(propName)) {
-            model = new UMLTransitionTriggerListModel(modelElement, propName);
         } else if ("transition".equals(propName)) {
             model = new UMLGuardTransitionListModel(modelElement, propName);
         } else if ("container".equals(propName)) {

Removed: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionEffectListModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionEffectListModel.java?view=markup&pathrev=18144

Removed: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionGuardListModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionGuardListModel.java?view=markup&pathrev=18144

Removed: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionTriggerListModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTransitionTriggerListModel.java?view=markup&pathrev=18144

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2464372

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to