svn commit: r12801 - trunk/src_new/org/argouml: i18n uml/ui uml/ui/behavior/common_behavior uml/ui/behavior/use_cases uml/ui/foundation/core

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2007-06-09 08:49:57-0700
New Revision: 12801

Modified:
   trunk/src_new/org/argouml/i18n/menu.properties
   trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java
   trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java
   trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java
   trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java
   trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java
   trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java
   trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java

Log:
Fix for issue 4774: Extend move up down with move top bottom.

Patch supplied by Aleksandar.

Modified: trunk/src_new/org/argouml/i18n/menu.properties
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/i18n/menu.properties?view=diff&rev=12801&p1=trunk/src_new/org/argouml/i18n/menu.properties&p2=trunk/src_new/org/argouml/i18n/menu.properties&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/i18n/menu.properties	(original)
+++ trunk/src_new/org/argouml/i18n/menu.properties	2007-06-09 08:49:57-0700
@@ -33,7 +33,7 @@
 # The first menu in this file is the menu of the left side of the ArgoUML-
 # menubar. After the menu are following the menu's or/and the menuitems of the
 # menu. Then follows the next menu...
-# 
+#
 # Menuitems, you find in action.properties with the keys: action....
 # Menuitems of the menu "Select", you find in gef.
 # Menuitems of the menu "Zoom", you find in gef.
@@ -41,8 +41,8 @@
 # Menuitems of the menu Align, you find in gef.
 # Menuitems of the menu Distribute you find in gef.
 # Menuitems of the menu Reorder you find in gef.
-# 
-# 
+#
+#
 # ----------------------menu File
 menu.file = File
 menu.file.mnemonic = F
@@ -248,8 +248,10 @@
 menu.popup.includes = {0} Includes {1}
 menu.popup.modifiers = Modifiers
 menu.popup.modifiers.mnemonic = M
+menu.popup.movetotop = Move To Top
 menu.popup.movedown = Move Down
 menu.popup.moveup = Move Up
+menu.popup.movetobottom = Move To Bottom
 menu.popup.multiplicity = Multiplicity
 menu.popup.multiplicity.mnemonic = M
 menu.popup.navigability = Navigability

Modified: trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java&p2=trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/UMLModelElementOrderedListModel2.java	2007-06-09 08:49:57-0700
@@ -33,23 +33,23 @@
 import org.tigris.gef.undo.UndoableAction;
 
 /**
- * This class resembles UMLModelElementListModel2, but is for those
- * associations in the metamodel (see UML standard) that have a {ordered}
- * constraint. <p>
+ * This class resembles UMLModelElementListModel2, but is for those associations
+ * in the metamodel (see UML standard) that have a {ordered} constraint.
+ * <p>
  *
- * This adds the functionality of a popup menu with the items "Move Up"
- * and "Move Down".
- *
- * @author [email protected]
+ * This adds the functionality of a popup menu with the items "Move Up" and
+ * "Move Down".
  *
+ * @author Michiel
  */
-public abstract class UMLModelElementOrderedListModel2
-    extends UMLModelElementListModel2 {
+public abstract class UMLModelElementOrderedListModel2 extends
+        UMLModelElementListModel2 {
 
     /**
      * The constructor.
      *
-     * @param name the name
+     * @param name
+     *            the name
      */
     public UMLModelElementOrderedListModel2(String name) {
         super(name);
@@ -66,50 +66,53 @@
     protected abstract boolean isValidElement(Object element);
 
     /**
-     * Move a element from the given position down one position, i.e.
-     * a swap of the two positions. Anyone
-     * listening to the model will then be updated by the events/listener
-     * mechanism.  If the element is already the last element in the list, 
-     * nothing is done.
-     * 
+     * Move a element from the given position down one position, i.e. a swap of
+     * the two positions. Anyone listening to the model will then be updated by
+     * the events/listener mechanism. If the element is already the last element
+     * in the list, nothing is done.
+     *
      * @param index
      *            the current position
      */
     protected abstract void moveDown(int index);
 
+    protected abstract void moveToTop(int index);
+
+    protected abstract void moveToBottom(int index);
+
     /*
      * @see org.argouml.uml.ui.UMLModelElementListModel2#buildPopup(
-     * javax.swing.JPopupMenu, int)
+     *      javax.swing.JPopupMenu, int)
      */
-    @Override
     public boolean buildPopup(JPopupMenu popup, int index) {
-        JMenuItem moveUp =
-	    new JMenuItem(
-                new MoveUpAction(this, index));
-        JMenuItem moveDown =
-	    new JMenuItem(
-                new MoveDownAction(this, index));
+        JMenuItem moveToTop = new JMenuItem(new MoveToTopAction(this, index));
+        JMenuItem moveUp = new JMenuItem(new MoveUpAction(this, index));
+        JMenuItem moveDown = new JMenuItem(new MoveDownAction(this, index));
+        JMenuItem moveToBottom = new JMenuItem(new MoveToBottomAction(this,
+                index));
+        popup.add(moveToTop);
         popup.add(moveUp);
         popup.add(moveDown);
+        popup.add(moveToBottom);
         return true;
     }
 
 }
 
-
 /**
  * The action to move an item in the list one place up.
- * 
+ *
  * @author [email protected]
  */
 class MoveUpAction extends UndoableAction {
     private UMLModelElementOrderedListModel2 model;
+
     private int index;
 
     /**
      * The constructor.
      */
-    public MoveUpAction(UMLModelElementOrderedListModel2 theModel,
+    public MoveUpAction(UMLModelElementOrderedListModel2 theModel, 
             int theIndex) {
         super(Translator.localize("menu.popup.moveup"));
         model = theModel;
@@ -124,7 +127,7 @@
         super.actionPerformed(e);
         model.moveDown(index - 1);
     }
-    
+
     /*
      * @see javax.swing.Action#isEnabled()
      */
@@ -141,6 +144,7 @@
  */
 class MoveDownAction extends UndoableAction {
     private UMLModelElementOrderedListModel2 model;
+
     private int index;
 
     /**
@@ -161,7 +165,7 @@
         super.actionPerformed(e);
         model.moveDown(index);
     }
-    
+
     /*
      * @see javax.swing.Action#isEnabled()
      */
@@ -170,3 +174,79 @@
         return model.getSize() > index + 1;
     }
 }
+
+/**
+ * The action to move an item in the list one place down.
+ *
+ * @author [email protected]
+ */
+class MoveToTopAction extends UndoableAction {
+    private UMLModelElementOrderedListModel2 model;
+
+    private int index;
+
+    /**
+     * The constructor.
+     */
+    public MoveToTopAction(UMLModelElementOrderedListModel2 theModel,
+            int theIndex) {
+        super(Translator.localize("menu.popup.movetotop"));
+        model = theModel;
+        index = theIndex;
+    }
+
+    /*
+     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+     */
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        super.actionPerformed(e);
+        model.moveToTop(index);
+    }
+
+    /*
+     * @see javax.swing.Action#isEnabled()
+     */
+    @Override
+    public boolean isEnabled() {
+        return model.getSize() > 1 && index > 0;
+    }
+}
+
+/**
+ * The action to move an item in the list one place down.
+ *
+ * @author [email protected]
+ */
+class MoveToBottomAction extends UndoableAction {
+    private UMLModelElementOrderedListModel2 model;
+
+    private int index;
+
+    /**
+     * The constructor.
+     */
+    public MoveToBottomAction(UMLModelElementOrderedListModel2 theModel,
+            int theIndex) {
+        super(Translator.localize("menu.popup.movetobottom"));
+        model = theModel;
+        index = theIndex;
+    }
+
+    /*
+     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+     */
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        super.actionPerformed(e);
+        model.moveToBottom(index);
+    }
+
+    /*
+     * @see javax.swing.Action#isEnabled()
+     */
+    @Override
+    public boolean isEnabled() {
+        return model.getSize() > 1 && index < model.getSize() - 1;
+    }
+}

Modified: trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/PropPanelActionSequence.java	2007-06-09 08:49:57-0700
@@ -60,7 +60,7 @@
 

     /**

      * Construct an ActionSequence property panel with the given name and icon.

-     * 

+     *

      * @param name

      *            the name of the properties panel

      * @param icon

@@ -101,7 +101,7 @@
 /**

  * Model for ActionSequence's list of Actions.

  */

-class UMLActionSequenceActionListModel 

+class UMLActionSequenceActionListModel

     extends UMLModelElementOrderedListModel2 {

 

     /**

@@ -139,6 +139,34 @@
             Model.getCommonBehaviorHelper().addAction(target, index + 1, item);

         }

     }

+

+    /**

+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)

+     */

+    @Override

+    protected void moveToBottom(int index) {

+        Object target = getTarget();

+        List c = Model.getFacade().getActions(target);

+        if (index < c.size() - 1) {

+            Object item = c.get(index);

+            Model.getCommonBehaviorHelper().removeAction(target, item);

+            Model.getCommonBehaviorHelper().addAction(target, c.size(), item);

+        }

+    }

+

+    /**

+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)

+     */

+    @Override

+    protected void moveToTop(int index) {

+        Object target = getTarget();

+        List c = Model.getFacade().getActions(target);

+        if (index > 0) {

+            Object item = c.get(index);

+            Model.getCommonBehaviorHelper().removeAction(target, item);

+            Model.getCommonBehaviorHelper().addAction(target, 0, item);

+        }

+    }

 }

 

 

@@ -157,7 +185,7 @@
      */

     public void actionPerformed(ActionEvent e) {

         super.actionPerformed(e);

-        Object action = getObjectToRemove(); 

+        Object action = getObjectToRemove();

         if (action != null) {

             Object as = getTarget();

             if (Model.getFacade().isAActionSequence(as)) {

@@ -165,7 +193,7 @@
             }

         }

     }

-    

+

 }

 

 class UMLActionSequenceActionList extends UMLMutableLinkedList {


Modified: trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLActionArgumentListModel.java	2007-06-09 08:49:57-0700
@@ -32,8 +32,8 @@
 /**
  * Model for action's actual argument list.
  */
-public class UMLActionArgumentListModel 
-    extends UMLModelElementOrderedListModel2 {
+public class UMLActionArgumentListModel extends
+        UMLModelElementOrderedListModel2 {
 
     /**
      * Constructor.
@@ -58,13 +58,11 @@
         return Model.getFacade().isAArgument(element);
     }
 
-
     /**
      * The UID.
      */
     private static final long serialVersionUID = -3265997785192090331L;
 
-
     /*
      * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveDown(int)
      */
@@ -74,8 +72,38 @@
         if (index < c.size() - 1) {
             Object mem = c.get(index);
             Model.getCommonBehaviorHelper().removeActualArgument(clss, mem);
-            Model.getCommonBehaviorHelper().addActualArgument(
-                    clss, index + 1, mem);
+            Model.getCommonBehaviorHelper().addActualArgument(clss, index + 1,
+                    mem);
+
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getActualArguments(clss);
+        if (index < c.size() - 1) {
+            Object mem = c.get(index);
+            Model.getCommonBehaviorHelper().removeActualArgument(clss, mem);
+            Model.getCommonBehaviorHelper().addActualArgument(clss,
+                    c.size() - 1, mem);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getActualArguments(clss);
+        if (index > 0) {
+            Object mem = c.get(index);
+            Model.getCommonBehaviorHelper().removeActualArgument(clss, mem);
+            Model.getCommonBehaviorHelper().addActualArgument(clss, 0, mem);
         }
     }
 }

Modified: trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/common_behavior/UMLLinkConnectionListModel.java	2007-06-09 08:49:57-0700
@@ -71,12 +71,42 @@
         if (index < c.size() - 1) {
             Collections.swap(c, index, index + 1);
             Model.getCoreHelper().setConnections(link, c);
-        
+
         /* The MDR model does not support the 2nd method below for LinkEnds.
-         * Hence we can not replace the above inefficient code 
+         * Hence we can not replace the above inefficient code
          * by the code below. */
 //        Model.getCoreHelper().removeConnection(link, mem1);
 //        Model.getCoreHelper().addConnection(link, index2, mem1);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object link = getTarget();
+        List c = new ArrayList(Model.getFacade().getConnections(link));
+        if (index < c.size() - 1) {
+            Object mem = c.get(index);
+            c.remove(mem);
+            c.add(mem);
+            Model.getCoreHelper().setConnections(link, c);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object link = getTarget();
+        List c = new ArrayList(Model.getFacade().getConnections(link));
+        if (index > 0) {
+            Object mem = c.get(index);
+            c.remove(mem);
+            c.add(0, mem);
+            Model.getCoreHelper().setConnections(link, c);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLExtendExtensionPointListModel.java	2007-06-09 08:49:57-0700
@@ -71,4 +71,34 @@
         Model.getUseCasesHelper().addExtensionPoint(extend, index2, mem1);
     }
 
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object extend = getTarget();
+        /* In case of an Extend, we are sure an ordered List is returned! */
+        List c = (List) Model.getFacade().getExtensionPoints(extend);
+        if (index < c.size() - 1) {
+            Object mem1 = c.get(index);
+            Model.getUseCasesHelper().removeExtensionPoint(extend, mem1);
+            Model.getUseCasesHelper().addExtensionPoint(extend, c.size(), mem1);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object extend = getTarget();
+        /* In case of an Extend, we are sure an ordered List is returned! */
+        List c = (List) Model.getFacade().getExtensionPoints(extend);
+        if (index > 0) {
+            Object mem1 = c.get(index);
+            Model.getUseCasesHelper().removeExtensionPoint(extend, mem1);
+            Model.getUseCasesHelper().addExtensionPoint(extend, 0, mem1);
+        }
+    }
+
 }

Modified: trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java&p2=trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/behavior/use_cases/UMLUseCaseExtensionPointListModel.java	2007-06-09 08:49:57-0700
@@ -33,10 +33,10 @@
 
 /**
  * Model for the ExtensionPoints of a UseCase. <p>
- * 
- * TODO: This should NOT be an ordered list, according the UML standard! 
+ *
+ * TODO: This should NOT be an ordered list, according the UML standard!
  * Shall we stop supporting the move up/down features?
- * 
+ *
  * @since Oct 7, 2002
  * @author [email protected]
  */
@@ -75,4 +75,36 @@
             Model.getUseCasesHelper().setExtensionPoints(usecase, c);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object usecase = getTarget();
+        List c = new ArrayList(Model.getFacade().getExtensionPoints(usecase));
+        if (index < c.size() - 1) {
+            Object mem1 = c.get(index);
+
+            c.remove(mem1);
+            c.add(c.size(), mem1);
+            Model.getUseCasesHelper().setExtensionPoints(usecase, c);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object usecase = getTarget();
+        List c = new ArrayList(Model.getFacade().getExtensionPoints(usecase));
+        if (index > 0) {
+            Object mem1 = c.get(index);
+
+            c.remove(mem1);
+            c.add(0, mem1);
+            Model.getUseCasesHelper().setExtensionPoints(usecase, c);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationConnectionListModel.java	2007-06-09 08:49:57-0700
@@ -34,14 +34,14 @@
 
 /**
  * The list model for the connections of the association. <p>
- * 
- * The specialty of this list model, is that it need to be aware 
- * of name changes in the ends connected to the association. 
- * Most other listmodels only listen to 
+ *
+ * The specialty of this list model, is that it need to be aware
+ * of name changes in the ends connected to the association.
+ * Most other listmodels only listen to
  * model changes in one UML element, but in this case, we also have to listen to
  * changes in some related elements. <p>
- * 
- * Why is this case different: because it is possible to modify the 
+ *
+ * Why is this case different: because it is possible to modify the
  * associationend names on the diagram, without changing the target - i.e.
  * the target remains the association throughout this modification.
  *
@@ -117,4 +117,34 @@
             Model.getCoreHelper().addConnection(assoc, index + 1, mem);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object assoc = getTarget();
+        /* Since we are UML 1.4, this is surely a List! */
+        List c = (List) Model.getFacade().getConnections(assoc);
+        if (index < c.size() - 1) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeConnection(assoc, mem1);
+            Model.getCoreHelper().addConnection(assoc, c.size() - 1, mem1);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object assoc = getTarget();
+        /* Since we are UML 1.4, this is surely a List! */
+        List c = (List) Model.getFacade().getConnections(assoc);
+        if (index > 0) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeConnection(assoc, mem1);
+            Model.getCoreHelper().addConnection(assoc, 0, mem1);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java	2007-06-09 08:49:57-0700
@@ -73,4 +73,32 @@
             Model.getCoreHelper().addQualifier(assocEnd, index + 1, mem);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object assocEnd = getTarget();
+        List c = Model.getFacade().getQualifiers(assocEnd);
+        if (index < c.size() - 1) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeQualifier(assocEnd, mem);
+            Model.getCoreHelper().addQualifier(assocEnd, c.size() - 1, mem);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getQualifiers(clss);
+        if (index > 0) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeQualifier(clss, mem);
+            Model.getCoreHelper().addQualifier(clss, 0, mem);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassAttributeListModel.java	2007-06-09 08:49:57-0700
@@ -34,8 +34,8 @@
  * @author [email protected], alexb
  * @since Mar 22, 2003
  */
-public class UMLClassAttributeListModel
-    extends UMLModelElementOrderedListModel2 {
+public class UMLClassAttributeListModel extends
+        UMLModelElementOrderedListModel2 {
 
     /**
      * Constructor for UMLClassifierStructuralFeatureListModel.
@@ -77,4 +77,32 @@
             Model.getCoreHelper().addFeature(clss, index2, mem1);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getAttributes(clss);
+        if (index < c.size() - 1) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem1);
+            Model.getCoreHelper().addFeature(clss, c.size() - 1, mem1);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getAttributes(clss);
+        if (index > 0) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem1);
+            Model.getCoreHelper().addFeature(clss, 0, mem1);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassOperationListModel.java	2007-06-09 08:49:57-0700
@@ -80,6 +80,34 @@
             Model.getCoreHelper().addFeature(clss, index2, op1);
         }
     }
-    
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getOperationsAndReceptions(clss);
+        if (index < c.size() - 1) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem1);
+            Model.getCoreHelper().addFeature(clss, c.size() - 1, mem1);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getOperationsAndReceptions(clss);
+        if (index > 0) {
+            Object mem1 = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem1);
+            Model.getCoreHelper().addFeature(clss, 0, mem1);
+        }
+    }
+
 
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierFeatureListModel.java	2007-06-09 08:49:57-0700
@@ -72,4 +72,32 @@
             Model.getCoreHelper().addFeature(clss, index + 1, mem);
         }
     }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getFeatures(clss);
+        if (index < c.size() - 1) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem);
+            Model.getCoreHelper().addFeature(clss, c.size(), mem);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getFeatures(clss);
+        if (index > 0) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeFeature(clss, mem);
+            Model.getCoreHelper().addFeature(clss, 0, mem);
+        }
+    }
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLClassifierParameterListModel.java	2007-06-09 08:49:57-0700
@@ -80,4 +80,32 @@
         }
     }
 
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        Collection c = Model.getFacade().getParameters(clss);
+        if (c instanceof List && index < c.size() - 1) {
+            Object mem = ((List) c).get(index);
+            Model.getCoreHelper().removeParameter(clss, mem);
+            Model.getCoreHelper().addParameter(clss, c.size() - 1, mem);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        Collection c = Model.getFacade().getParameters(clss);
+        if (c instanceof List && index > 0) {
+            Object mem = ((List) c).get(index);
+            Model.getCoreHelper().removeParameter(clss, mem);
+            Model.getCoreHelper().addParameter(clss, 0, mem);
+        }
+    }
+
 }

Modified: trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java?view=diff&rev=12801&p1=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java&p2=trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java&r1=12800&r2=12801
==============================================================================
--- trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java	(original)
+++ trunk/src_new/org/argouml/uml/ui/foundation/core/UMLEnumerationLiteralsListModel.java	2007-06-09 08:49:57-0700
@@ -80,6 +80,34 @@
     }
 
     /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToBottom(int)
+     */
+    @Override
+    protected void moveToBottom(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getEnumerationLiterals(clss);
+        if (index < c.size() - 1) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeLiteral(clss, mem);
+            Model.getCoreHelper().addLiteral(clss, c.size(), mem);
+        }
+    }
+
+    /**
+     * @see org.argouml.uml.ui.UMLModelElementOrderedListModel2#moveToTop(int)
+     */
+    @Override
+    protected void moveToTop(int index) {
+        Object clss = getTarget();
+        List c = Model.getFacade().getEnumerationLiterals(clss);
+        if (index > 0) {
+            Object mem = c.get(index);
+            Model.getCoreHelper().removeLiteral(clss, mem);
+            Model.getCoreHelper().addLiteral(clss, 0, mem);
+        }
+    }
+
+    /**
      * The UID.
      */
     private static final long serialVersionUID = 4111214628991094451L;
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.