]> source.dussan.org Git - vaadin-framework.git/commitdiff
#4125 fix for some cases with selectable items not on the deepest nested level, relat...
authorHenri Sara <henri.sara@itmill.com>
Tue, 14 Jun 2011 07:55:53 +0000 (07:55 +0000)
committerHenri Sara <henri.sara@itmill.com>
Tue, 14 Jun 2011 07:55:53 +0000 (07:55 +0000)
svn changeset:19359/svn branch:6.6

src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java
tests/src/com/vaadin/tests/components/menubar/MenuBarTest.java

index cab37e7c701aeafa9d7ad487864bf1114e49d5a3..4d43b7c34602f103d78ec3ccea3f09a6f6460edd 100644 (file)
@@ -288,7 +288,7 @@ public class VMenuBar extends SimpleFocusablePanel implements Paintable,
                 currentItem.setSubMenu(currentMenu);
             }
 
-            if (!itr.hasNext()) {
+            while (!itr.hasNext() && !iteratorStack.empty()) {
                 boolean hasCheckableItem = false;
                 for (CustomMenuItem menuItem : currentMenu.getItems()) {
                     hasCheckableItem = hasCheckableItem
@@ -299,9 +299,7 @@ public class VMenuBar extends SimpleFocusablePanel implements Paintable,
                 } else {
                     currentMenu.removeStyleDependentName("check-column");
                 }
-            }
 
-            while (!itr.hasNext() && !iteratorStack.empty()) {
                 itr = iteratorStack.pop();
                 currentMenu = menuStack.pop();
             }
index 6bc1e7d272dc6e3b2a97c5e94c3af00359d89979..a6ff3c4b8537c7ffc83d613b1a315a67920e01fa 100644 (file)
@@ -266,15 +266,16 @@ public class MenuBarTest extends AbstractComponentTest<MenuBar> {
             if (invisibleDensity != null && i % invisibleDensity == 0) {\r
                 subMenuItem.setVisible(false);\r
             }\r
-            if (level == subLevels && selectableDensity != null\r
-                    && i % selectableDensity == 0) {\r
-                subMenuItem.setSelectable(true);\r
-            }\r
 \r
             if (i % subMenuDensity == 0 && level < subLevels) {\r
                 subMenuItem.setCommand(null);\r
                 createSubItems(subMenuItem, level + 1);\r
             }\r
+\r
+            if (!subMenuItem.hasChildren() && level > 0\r
+                    && selectableDensity != null && i % selectableDensity == 0) {\r
+                subMenuItem.setSelectable(true);\r
+            }\r
         }\r
 \r
     }\r