svn commit: r18580 - trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2010-07-26 01:07:38-0700
New Revision: 18580

Modified:
   trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/BaseDiagram.java
   trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java

Log:
Allow tools to be in dropdown tool buttons

Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/BaseDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/BaseDiagram.java?view=diff&pathrev=18580&r1=18579&r2=18580
==============================================================================
--- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/BaseDiagram.java	(original)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/BaseDiagram.java	2010-07-26 01:07:38-0700
@@ -74,14 +74,32 @@
             new Object[edgeTools.length + nodeTools.length];
         int i = 0;
         for (Object meta : edgeTools) {
-            actions[i++] = getCreateEdgeAction(
-                    meta, 
-                    Model.getMetaTypes().getName(meta));
+            if (meta instanceof Object[]) {
+                Object[] childEdgeTools = (Object[]) meta;
+                final Object[] childActions =
+                    new Object[childEdgeTools.length];
+                int j = 0;
+                for (Object childMeta : childEdgeTools) {
+                    childActions[j++] = getCreateEdgeAction(childMeta);
+                }
+                actions[i++] = childActions;
+            } else {
+                actions[i++] = getCreateEdgeAction(meta);
+            }
         }
         for (Object meta : nodeTools) {
-            actions[i++] = getCreateNodeAction(
-                    meta, 
-                    Model.getMetaTypes().getName(meta));
+            if (meta instanceof Object[]) {
+                Object[] childNodeTools = (Object[]) meta;
+                final Object[] childActions =
+                    new Object[childNodeTools.length];
+                int j = 0;
+                for (Object childMeta : childNodeTools) {
+                    childActions[j++] = getCreateNodeAction(childMeta);
+                }
+                actions[i++] = childActions;
+            } else {
+                actions[i++] = getCreateNodeAction(meta);
+            }
         }
         return actions;
     }
@@ -92,12 +110,14 @@
     /**
      * @return Returns a diagram tool creation action.
      */
-    private Action getCreateNodeAction(Object metaType, String label) {
+    private Action getCreateNodeAction(Object metaType) {
+        String label = Model.getMetaTypes().getName(metaType);
         return new RadioAction(
                 new CmdCreateNode(metaType, label));
     }
     
-    protected Action getCreateEdgeAction(Object metaType, String label) {
+    protected Action getCreateEdgeAction(Object metaType) {
+        String label = Model.getMetaTypes().getName(metaType);
         return new RadioAction(
                 new ActionSetMode(
                         ModeCreatePolyEdge.class,

Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java?view=diff&pathrev=18580&r1=18579&r2=18580
==============================================================================
--- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java	(original)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java	2010-07-26 01:07:38-0700
@@ -56,15 +56,18 @@
     @Override
     Object[] getNewNodeTypes() {
         return new Object[] {
-            Model.getMetaTypes().getCallBehaviorAction(),
-            Model.getMetaTypes().getCreateObjectAction(),
-            Model.getMetaTypes().getDestroyObjectAction(),
+            new Object[] {
+                Model.getMetaTypes().getCallBehaviorAction(),
+                Model.getMetaTypes().getCreateObjectAction(),
+                Model.getMetaTypes().getDestroyObjectAction(),
+            },
             Model.getMetaTypes().getAcceptEventAction(),
             Model.getMetaTypes().getSendSignalAction(),
-            Model.getMetaTypes().getDestroyObjectAction(),
-            Model.getMetaTypes().getActivityParameterNode(),
-            Model.getMetaTypes().getCentralBufferNode(),
-            Model.getMetaTypes().getDataStoreNode(),
+            new Object[] {
+                Model.getMetaTypes().getActivityParameterNode(),
+                Model.getMetaTypes().getCentralBufferNode(),
+                Model.getMetaTypes().getDataStoreNode(),
+            },
         };
     }

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

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.