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

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

Introduction

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

Prototype

public static <T> void writeAttribute(String attribute, Attributes attributes, T value, T defaultValue,
        Class<T> inputType, DesignContext context) 

Source Link

Document

Writes the given attribute value to a set of attributes if it differs from the default attribute value.

Usage

From source file:com.haulmont.cuba.web.widgets.addons.contextmenu.MenuBar.java

License:Apache License

protected Element createMenuElement(MenuItem item, DesignContext designContext) {
    Element menuElement = new Element(Tag.valueOf("menu"), "");
    // Defaults// ww w. j a va  2s  . co  m
    MenuItem def = new MenuItemImpl("", null, null);

    Attributes attr = menuElement.attributes();
    DesignAttributeHandler.writeAttribute("icon", attr, item.getIcon(), def.getIcon(), Resource.class,
            designContext);
    DesignAttributeHandler.writeAttribute("disabled", attr, !item.isEnabled(), !def.isEnabled(), boolean.class,
            designContext);
    DesignAttributeHandler.writeAttribute("visible", attr, item.isVisible(), def.isVisible(), boolean.class,
            designContext);
    DesignAttributeHandler.writeAttribute("separator", attr, item.isSeparator(), def.isSeparator(),
            boolean.class, designContext);
    DesignAttributeHandler.writeAttribute("checkable", attr, item.isCheckable(), def.isCheckable(),
            boolean.class, designContext);
    DesignAttributeHandler.writeAttribute("checked", attr, item.isChecked(), def.isChecked(), boolean.class,
            designContext);
    DesignAttributeHandler.writeAttribute("description", attr, item.getDescription(), def.getDescription(),
            String.class, designContext);
    DesignAttributeHandler.writeAttribute("style-name", attr, item.getStyleName(), def.getStyleName(),
            String.class, designContext);

    menuElement.append(item.getText());

    if (item.hasChildren()) {
        for (MenuItem subMenu : item.getChildren()) {
            menuElement.appendChild(createMenuElement(subMenu, designContext));
        }
    }

    return menuElement;
}