Author: bobtarling
Date: 2011-02-21 18:31:18-0800
New Revision: 19049

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

Log:
Issue 6197: Expand tree structured commands into a flat structure before 
displaying - also displays exception to user if a panel fails to build.

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=19049&r1=19048&r2=19049
==============================================================================
--- 
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
    2011-02-21 18:31:18-0800
@@ -516,10 +516,23 @@
     
     public JComponent getExpansion() {
        
+       List<Action> flatActions = new ArrayList<Action>();
+       for (Object o : actions) {
+            if (o instanceof Action) {
+               flatActions.add((Action) o);
+            } else {
+               Object[] oa = (Object[]) o;
+               for (int j = 0; j < oa.length; ++j) {
+                   flatActions.add((Action) oa[j]);
+               }
+            }
+       }
+       
+       
        final ToolBox tb =
-           new ToolBox(2, actions.size() / 2 + actions.size() % 2, true);
-       for (int i = 0; i < actions.size() / 2 + actions.size() % 2; ++i) {
-            tb.add((Action) actions.get(i));
+           new ToolBox(2, flatActions.size() / 2 + flatActions.size() % 2, 
true);
+       for (int i = 0; i < flatActions.size() / 2 + flatActions.size() % 2; 
++i) {
+            tb.add((Action) flatActions.get(i));
        }
         if (moveUpAction != null) {
             tb.add(moveUpAction);
@@ -527,11 +540,11 @@
         if (moveTopAction != null) {
             tb.add(moveTopAction);
         }
-       if (actions.size() % 2 == 1) {
+       if (flatActions.size() % 2 == 1) {
            tb.add(new JPanel());
        }
-       for (int i = actions.size() / 2 + actions.size() % 2; i < 
actions.size(); ++i) {
-            tb.add((Action) actions.get(i));
+       for (int i = flatActions.size() / 2 + flatActions.size() % 2; i < 
flatActions.size(); ++i) {
+            tb.add((Action) flatActions.get(i));
        }
         if (moveDownAction != null) {
             tb.add(moveDownAction);

Modified: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java?view=diff&pathrev=19049&r1=19048&r2=19049
==============================================================================
--- 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
 (original)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java
 2011-02-21 18:31:18-0800
@@ -116,10 +116,15 @@
                     panel.add(LabelledLayout.getSeparator());
                 }
             } catch (Exception e) {
-                throw new IllegalStateException(
-                       "Exception caught building control " + 
prop.getControlType()
-                       + " for property " + prop.getPropertyName() + " on 
panel for "
-                       + target, e);
+               String message = "Exception caught building control " + 
prop.getControlType()
+               + " for property " + prop.getPropertyName() + " on panel for "
+               + target;
+               LOG.error(message, e);
+               try {
+                    panel.add(new JLabel(message));
+               } catch (Exception ex) {
+                   throw e;
+               }
             }
         }
     }
@@ -274,7 +279,7 @@
         } else {
             final GetterSetterManager getterSetter = 
                GetterSetterManager.getGetterSetter(prop.getType());
-
+            
             if (getterSetter.contains(propertyName)) {
                 ExpressionModel model =
                        new ExpressionModel(propertyName, 
prop.getTypes().get(0), target, getterSetter);

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

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

Reply via email to