Author: bobtarling
Date: 2010-03-26 12:29:01-0700
New Revision: 18173

Modified:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierPackageImportsListModel.java

Log:
Provide add/remove actions

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierPackageImportsListModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierPackageImportsListModel.java?view=diff&pathrev=18173&r1=18172&r2=18173
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierPackageImportsListModel.java
   (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierPackageImportsListModel.java
   2010-03-26 12:29:01-0700
@@ -38,9 +38,16 @@
 
 package org.argouml.core.propertypanels.ui;
 
+import java.awt.event.ActionEvent;
 import java.beans.PropertyChangeEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 
+import org.argouml.i18n.Translator;
 import org.argouml.model.Model;
+import org.argouml.uml.ui.AbstractActionAddModelElement2;
+import org.argouml.uml.ui.AbstractActionRemoveElement;
 
 /**
  * Shows the ModelElements imported in a Package.
@@ -53,7 +60,7 @@
      * Constructor for UMLClassifierRoleBaseListModel.
      */
     public UMLClassifierPackageImportsListModel(Object modelElement) {
-        super("elementImport"); // This is the right event.
+        super("elementImport", modelElement, new ActionAddPackageImport(), 
null, new ActionRemovePackageImport()); // This is the right event.
         setTarget(modelElement);
     }
 
@@ -89,4 +96,64 @@
             }
         }
     }
+    
+    private static class ActionAddPackageImport extends 
AbstractActionAddModelElement2 {
+
+        /**
+         * Constructor for ActionAddPackageImport.
+         */
+        public ActionAddPackageImport() {
+            super();
+        }
+
+
+        protected List getChoices() {
+            List vec = new ArrayList();
+            /* TODO: correctly implement next function 
+             * in the model subsystem for 
+             * issue 1942: */
+            vec.addAll(Model.getModelManagementHelper()
+                    .getAllPossibleImports(getTarget()));
+            return vec;
+        }
+
+
+        protected List getSelected() {
+            List vec = new ArrayList();
+            vec.addAll(Model.getFacade().getImportedElements(getTarget()));
+            return vec;
+        }
+
+
+        protected String getDialogTitle() {
+            return Translator.localize("dialog.title.add-imported-elements");
+        }
+
+
+        @Override
+        protected void doIt(Collection selected) {
+            Object pack = getTarget();
+            Model.getModelManagementHelper().setImportedElements(pack, 
selected);
+        }
+    }
+    
+    private static class ActionRemovePackageImport
+           extends AbstractActionRemoveElement {
+           
+           /**
+            * Constructor for ActionRemovePackageImport.
+            */
+           public ActionRemovePackageImport() {
+               super(Translator.localize("menu.popup.remove"));
+           }
+           
+           /*
+            * @see 
java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+            */
+           public void actionPerformed(ActionEvent e) {
+               super.actionPerformed(e);
+               Model.getModelManagementHelper()
+                   .removeImportedElement(getTarget(), getObjectToRemove());
+           }
+       }
 }

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

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

Reply via email to