diff options
3 files changed, 41 insertions, 3 deletions
diff --git a/client/src/com/vaadin/client/ui/menubar/VMenuBar.java b/client/src/com/vaadin/client/ui/menubar/VMenuBar.java index 38d6d513bf..83b1c58d0a 100644 --- a/client/src/com/vaadin/client/ui/menubar/VMenuBar.java +++ b/client/src/com/vaadin/client/ui/menubar/VMenuBar.java @@ -783,6 +783,8 @@ public class VMenuBar extends SimpleFocusablePanel implements protected boolean selected = false; protected String description = null; + private String styleName; + /** * Default menu item {@link Widget} constructor for GWT.create(). * @@ -889,6 +891,10 @@ public class VMenuBar extends SimpleFocusablePanel implements super.setStyleName(primaryStyleName + "-menuitem"); } + if (styleName != null) { + addStyleDependentName(styleName); + } + if (enabled) { removeStyleDependentName("disabled"); } else { @@ -1003,15 +1009,16 @@ public class VMenuBar extends SimpleFocusablePanel implements } if (uidl.hasAttribute(MenuBarConstants.ATTRIBUTE_ITEM_STYLE)) { - String itemStyle = uidl + styleName = uidl .getStringAttribute(MenuBarConstants.ATTRIBUTE_ITEM_STYLE); - addStyleDependentName(itemStyle); } if (uidl.hasAttribute(MenuBarConstants.ATTRIBUTE_ITEM_DESCRIPTION)) { description = uidl .getStringAttribute(MenuBarConstants.ATTRIBUTE_ITEM_DESCRIPTION); } + + updateStyleNames(); } public TooltipInfo getTooltip() { diff --git a/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.html b/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.html index 1232418978..3a8e8d81af 100644 --- a/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.html +++ b/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.html @@ -28,6 +28,21 @@ </tr> <tr> <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>my-menu-bar-menuitem-normal</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>icon-white</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>icon-headphones</td> +</tr> +<tr> + <td>assertCSSClass</td> <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[1]</td> <td>my-menu-bar-menuitem</td> </tr> @@ -128,6 +143,21 @@ </tr> <tr> <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>my-other-menu-menuitem-normal</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>icon-white</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[0]</td> + <td>icon-headphones</td> +</tr> +<tr> + <td>assertCSSClass</td> <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]/domChild[1]</td> <td>my-other-menu-menuitem</td> </tr> @@ -211,7 +241,6 @@ <td>vaadin=runcomvaadintestscomponentsmenubarMenuBarPrimaryStylenames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VMenuBar[0]#item0</td> <td>[tab]</td> </tr> - </tbody></table> </body> </html> diff --git a/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.java b/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.java index 79bec2e65e..ad8e2b05ed 100644 --- a/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.java +++ b/uitest/src/com/vaadin/tests/components/menubar/MenuBarPrimaryStylenames.java @@ -14,6 +14,8 @@ public class MenuBarPrimaryStylenames extends TestBase { mainMenu.setPrimaryStyleName("my-menu-bar"); MenuItem submenu1 = mainMenu.addItem("Submenu1", null); + submenu1.setStyleName("normal icon-white icon-headphones"); + MenuItem item1 = submenu1.addItem("Item1", null); item1.setCheckable(true); item1.setStyleName("my-menu-item"); |