Example usage for com.vaadin.ui.declarative DesignAttributeHandler getFormatter

List of usage examples for com.vaadin.ui.declarative DesignAttributeHandler getFormatter

Introduction

In this page you can find the example usage for com.vaadin.ui.declarative DesignAttributeHandler getFormatter.

Prototype

public static DesignFormatter getFormatter() 

Source Link

Document

Returns the currently used formatter.

Usage

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;
}