List of usage examples for com.vaadin.ui.declarative DesignAttributeHandler getFormatter
public static DesignFormatter getFormatter()
From source file:com.haulmont.cuba.web.widgets.addons.contextmenu.MenuBar.java
License:Apache License
protected MenuItem readMenuElement(Element menuElement, MenuItem parent) { Resource icon = null;/*from ww w . j a v a 2s .co m*/ if (menuElement.hasAttr("icon")) { icon = DesignAttributeHandler.getFormatter().parse(menuElement.attr("icon"), Resource.class); } String caption = ""; List<Element> subMenus = new ArrayList<Element>(); for (Node node : menuElement.childNodes()) { if (node instanceof Element && ((Element) node).tagName().equals("menu")) { subMenus.add((Element) node); } else { caption += node.toString(); } } MenuItemImpl menu = new MenuItemImpl(parent, caption.trim(), icon, null); Attributes attr = menuElement.attributes(); if (menuElement.hasAttr("icon")) { menu.setIcon(DesignAttributeHandler.readAttribute("icon", attr, Resource.class)); } if (menuElement.hasAttr("disabled")) { menu.setEnabled(!DesignAttributeHandler.readAttribute("disabled", attr, boolean.class)); } if (menuElement.hasAttr("visible")) { menu.setVisible(DesignAttributeHandler.readAttribute("visible", attr, boolean.class)); } if (menuElement.hasAttr("separator")) { menu.setSeparator(DesignAttributeHandler.readAttribute("separator", attr, boolean.class)); } if (menuElement.hasAttr("checkable")) { menu.setCheckable(DesignAttributeHandler.readAttribute("checkable", attr, boolean.class)); } if (menuElement.hasAttr("checked")) { menu.setChecked(DesignAttributeHandler.readAttribute("checked", attr, boolean.class)); } if (menuElement.hasAttr("description")) { menu.setDescription(DesignAttributeHandler.readAttribute("description", attr, String.class)); } if (menuElement.hasAttr("style-name")) { menu.setStyleName(DesignAttributeHandler.readAttribute("style-name", attr, String.class)); } if (!subMenus.isEmpty()) { menu.setChildren(new ArrayList<MenuItem>()); } for (Element subMenu : subMenus) { MenuItem newItem = readMenuElement(subMenu, menu); menu.getChildren().add(newItem); } return menu; }