svn commit: r19458 - trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2011-05-18 12:51:05-0700
New Revision: 19458

Modified:
   trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java

Log:
Separate ;list for UML1.4 and UML2 metatypes - this should move behind the model interface in future

Modified: trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java?view=diff&pathrev=19458&r1=19457&r2=19458
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java	2011-05-18 12:51:05-0700
@@ -108,58 +108,10 @@
     
     private static final Logger LOG =
         Logger.getLogger(ExplorerPopup.class);
-    
-    /**
-     * Array of model elements and corresponding il8n tag 
-     * that are presented on the Create Model Elements menu.
-     */
-    private static final Object[] MODEL_ELEMENT_MENUITEMS = 
-        new Object[] {
-            Model.getMetaTypes().getProfile(), // needs to be the first entry
-            "button.new-profile-package", // because of UML1/UML2 differences
-            Model.getMetaTypes().getParameter(),
-            "button.new-parameter",
-            Model.getMetaTypes().getTemplateParameter(),
-            "button.new-template-parameter",
-            Model.getMetaTypes().getPackage(), 
-            "button.new-package",
-            Model.getMetaTypes().getActor(), 
-            "button.new-actor",
-            Model.getMetaTypes().getUseCase(), 
-            "button.new-usecase",
-            Model.getMetaTypes().getExtensionPoint(), 
-            "button.new-extension-point",
-            Model.getMetaTypes().getUMLClass(), 
-            "button.new-class",
-            Model.getMetaTypes().getInterface(), 
-            "button.new-interface",
-            Model.getMetaTypes().getAttribute(), 
-            "button.new-attribute",
-            Model.getMetaTypes().getOperation(), 
-            "button.new-operation",
-            Model.getMetaTypes().getDataType(),
-            "button.new-datatype",
-            Model.getMetaTypes().getEnumeration(),
-            "button.new-enumeration",
-            Model.getMetaTypes().getEnumerationLiteral(),
-            "button.new-enumeration-literal",
-            Model.getMetaTypes().getSignal(),
-            "button.new-signal",
-            Model.getMetaTypes().getException(),
-            "button.new-exception",
-            Model.getMetaTypes().getComponent(), 
-            "button.new-component",
-            Model.getMetaTypes().getComponentInstance(), 
-            "button.new-componentinstance",
-            Model.getMetaTypes().getNode(), 
-            "button.new-node",
-            Model.getMetaTypes().getNodeInstance(), 
-            "button.new-nodeinstance",
-            Model.getMetaTypes().getReception(), 
-            "button.new-reception",             
-            Model.getMetaTypes().getStereotype(), 
-            "button.new-stereotype" };
 
+    private final Object[] metaTypes; 
+    
+    
     /**
      * Creates a new instance of ExplorerPopup.
      *
@@ -170,7 +122,64 @@
      */
     public ExplorerPopup(Object selectedItem, MouseEvent me) {
         super("Explorer popup menu");
-
+        
+        // TODO: Bob says - we need a Model interface method to return all
+        // metatypes that are available in that model. This code should
+        // only be required till that is implemented.
+        if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
+            metaTypes = 
+                new Object[] {
+                    Model.getMetaTypes().getProfile(),
+                    Model.getMetaTypes().getParameter(),
+                    Model.getMetaTypes().getTemplateParameter(),
+                    Model.getMetaTypes().getPackage(), 
+                    Model.getMetaTypes().getActor(), 
+                    Model.getMetaTypes().getUseCase(), 
+                    Model.getMetaTypes().getExtensionPoint(), 
+                    Model.getMetaTypes().getUMLClass(), 
+                    Model.getMetaTypes().getInterface(), 
+                    Model.getMetaTypes().getAttribute(), 
+                    Model.getMetaTypes().getOperation(), 
+                    Model.getMetaTypes().getDataType(),
+                    Model.getMetaTypes().getEnumeration(),
+                    Model.getMetaTypes().getEnumerationLiteral(),
+                    Model.getMetaTypes().getSignal(),
+                    Model.getMetaTypes().getException(),
+                    Model.getMetaTypes().getComponent(), 
+                    Model.getMetaTypes().getComponentInstance(), 
+                    Model.getMetaTypes().getNode(), 
+                    Model.getMetaTypes().getNodeInstance(), 
+                    Model.getMetaTypes().getReception(), 
+                    Model.getMetaTypes().getStereotype()
+            };
+        } else {
+            metaTypes = 
+                new Object[] {
+                    Model.getMetaTypes().getParameter(),
+                    Model.getMetaTypes().getTemplateParameter(),
+                    Model.getMetaTypes().getPackage(), 
+                    Model.getMetaTypes().getActor(), 
+                    Model.getMetaTypes().getUseCase(), 
+                    Model.getMetaTypes().getExtensionPoint(), 
+                    Model.getMetaTypes().getUMLClass(), 
+                    Model.getMetaTypes().getInterface(), 
+                    Model.getMetaTypes().getAttribute(), 
+                    Model.getMetaTypes().getOperation(), 
+                    Model.getMetaTypes().getDataType(),
+                    Model.getMetaTypes().getEnumeration(),
+                    Model.getMetaTypes().getEnumerationLiteral(),
+                    Model.getMetaTypes().getRegion(),
+                    Model.getMetaTypes().getState(),
+                    Model.getMetaTypes().getSignal(),
+                    Model.getMetaTypes().getException(),
+                    Model.getMetaTypes().getComponent(), 
+                    Model.getMetaTypes().getNode(), 
+                    Model.getMetaTypes().getNodeInstance(), 
+                    Model.getMetaTypes().getReception(), 
+                    Model.getMetaTypes().getStereotype()
+            };
+        }
+        
         /* Check if multiple items are selected. */
         boolean multiSelect =
                 TargetManager.getInstance().getTargets().size() > 1;
@@ -478,24 +487,14 @@
 
             // iterate through all possible model elements to determine which  
             // are valid to be contained by the selected target
-            int start = 0;
-            if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
-                // skip profile item for UML1
-                start = 2;
-            }
-            for (int iter = start; iter < MODEL_ELEMENT_MENUITEMS.length; 
-                iter += 2) {
-                
-                Object me = MODEL_ELEMENT_MENUITEMS[iter];
-                String md = (String) MODEL_ELEMENT_MENUITEMS[iter + 1];
-                
+            for (Object metaType : metaTypes) {
                 // test if this element can be contained by the target
-                if (Model.getUmlFactory().isContainmentValid(me, target)) {
+                if (Model.getUmlFactory().isContainmentValid(metaType, target)) {
                     // this element can be contained add a menu item 
                     // that allows the user to take that action
                     menuItems.add(new OrderedMenuItem(
                             new ActionCreateContainedModelElement(
-                                    me, target, md)));
+                                    metaType, target)));
                 }
             }    
         }

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

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.