Example usage for com.google.gwt.aria.client Roles getRadiogroupRole

List of usage examples for com.google.gwt.aria.client Roles getRadiogroupRole

Introduction

In this page you can find the example usage for com.google.gwt.aria.client Roles getRadiogroupRole.

Prototype

public static RadiogroupRole getRadiogroupRole() 

Source Link

Usage

From source file:com.vaadin.client.ui.VOptionGroup.java

License:Apache License

@Override
public void buildOptions(UIDL uidl) {
    /*/* w  w w . j av a 2 s . c o m*/
     * In order to retain focus, we need to update values rather than
     * recreate panel from scratch (#10451). However, the panel will be
     * rebuilt (losing focus) if number of elements or their order is
     * changed.
     */
    HashMap<String, CheckBox> keysToOptions = new HashMap<String, CheckBox>();
    for (Map.Entry<CheckBox, String> entry : optionsToKeys.entrySet()) {
        keysToOptions.put(entry.getValue(), entry.getKey());
    }
    ArrayList<Widget> existingwidgets = new ArrayList<Widget>();
    ArrayList<Widget> newwidgets = new ArrayList<Widget>();

    // Get current order of elements
    for (Widget wid : panel) {
        existingwidgets.add(wid);
    }

    optionsEnabled.clear();

    if (isMultiselect()) {
        Roles.getGroupRole().set(getElement());
    } else {
        Roles.getRadiogroupRole().set(getElement());
    }

    for (final Iterator<?> it = uidl.getChildIterator(); it.hasNext();) {
        final UIDL opUidl = (UIDL) it.next();

        String itemHtml = opUidl.getStringAttribute("caption");
        if (!htmlContentAllowed) {
            itemHtml = WidgetUtil.escapeHTML(itemHtml);
        }

        String iconUrl = opUidl.getStringAttribute("icon");
        if (iconUrl != null && iconUrl.length() != 0) {
            Icon icon = client.getIcon(iconUrl);
            itemHtml = icon.getElement().getString() + itemHtml;
        }

        String key = opUidl.getStringAttribute("key");
        CheckBox op = keysToOptions.get(key);

        // Need to recreate object if isMultiselect is changed (#10451)
        // OR if htmlContentAllowed changed due to Safari 5 issue
        if ((op == null) || (htmlContentAllowed != wasHtmlContentAllowed)
                || (isMultiselect() != wasMultiselect)) {
            // Create a new element
            if (isMultiselect()) {
                op = new VCheckBox();
            } else {
                op = new RadioButton(paintableId);
                op.setStyleName("v-radiobutton");
            }
            if (iconUrl != null && iconUrl.length() != 0) {
                WidgetUtil.sinkOnloadForImages(op.getElement());
                op.addHandler(iconLoadHandler, LoadEvent.getType());
            }

            op.addStyleName(CLASSNAME_OPTION);
            op.addClickHandler(this);

            optionsToKeys.put(op, key);
        }

        op.setHTML(itemHtml);
        op.setValue(opUidl.getBooleanAttribute("selected"));
        boolean optionEnabled = !opUidl.getBooleanAttribute(OptionGroupConstants.ATTRIBUTE_OPTION_DISABLED);
        boolean enabled = optionEnabled && !isReadonly() && isEnabled();
        op.setEnabled(enabled);
        optionsEnabled.put(op, optionEnabled);

        setStyleName(op.getElement(), StyleConstants.DISABLED, !(optionEnabled && isEnabled()));

        newwidgets.add(op);
    }

    if (!newwidgets.equals(existingwidgets)) {
        // Rebuild the panel, losing focus
        panel.clear();
        for (Widget wid : newwidgets) {
            panel.add(wid);
        }
    }

    wasHtmlContentAllowed = htmlContentAllowed;
    wasMultiselect = isMultiselect();
}

From source file:com.vaadin.client.ui.VRadioButtonGroup.java

License:Apache License

public void buildOptions(List<JsonObject> items) {
    Roles.getRadiogroupRole().set(getElement());
    int i = 0;//from w w  w . ja v  a 2  s  .co  m
    int widgetsToRemove = getWidget().getWidgetCount() - items.size();
    if (widgetsToRemove < 0) {
        widgetsToRemove = 0;
    }
    List<Widget> remove = new ArrayList<>(widgetsToRemove);
    for (Widget widget : getWidget()) {
        if (i < items.size()) {
            updateItem((RadioButton) widget, items.get(i), false);
            i++;
        } else {
            remove.add(widget);
        }
    }
    remove.stream().forEach(this::remove);
    while (i < items.size()) {
        updateItem(new RadioButton(groupId), items.get(i), true);
        i++;
    }
}

From source file:com.vaadin.v7.client.ui.VOptionGroup.java

License:Apache License

@Override
public void buildOptions(UIDL uidl) {
    /*// ww w  .j  a v a 2s  .c  o m
     * In order to retain focus, we need to update values rather than
     * recreate panel from scratch (#10451). However, the panel will be
     * rebuilt (losing focus) if number of elements or their order is
     * changed.
     */
    HashMap<String, CheckBox> keysToOptions = new HashMap<>();
    for (Map.Entry<CheckBox, String> entry : optionsToKeys.entrySet()) {
        keysToOptions.put(entry.getValue(), entry.getKey());
    }
    ArrayList<Widget> existingwidgets = new ArrayList<>();
    ArrayList<Widget> newwidgets = new ArrayList<>();

    // Get current order of elements
    for (Widget wid : panel) {
        existingwidgets.add(wid);
    }

    optionsEnabled.clear();

    if (isMultiselect()) {
        Roles.getGroupRole().set(getElement());
    } else {
        Roles.getRadiogroupRole().set(getElement());
    }

    for (final Iterator<?> it = uidl.getChildIterator(); it.hasNext();) {
        final UIDL opUidl = (UIDL) it.next();

        String itemHtml = opUidl.getStringAttribute("caption");
        if (!isHtmlContentAllowed()) {
            itemHtml = WidgetUtil.escapeHTML(itemHtml);
        }

        String iconUrl = opUidl.getStringAttribute("icon");
        if (iconUrl != null && iconUrl.length() != 0) {
            Icon icon = client.getIcon(iconUrl);
            itemHtml = icon.getElement().getString() + itemHtml;
        }

        String key = opUidl.getStringAttribute("key");
        CheckBox op = keysToOptions.get(key);

        // Need to recreate object if isMultiselect is changed (#10451)
        // OR if htmlContentAllowed changed due to Safari 5 issue
        if ((op == null) || (isHtmlContentAllowed() != wasHtmlContentAllowed)
                || (isMultiselect() != wasMultiselect)) {
            // Create a new element
            if (isMultiselect()) {
                op = new VCheckBox();
            } else {
                op = new RadioButton(paintableId);
                op.setStyleName("v-radiobutton");
            }
            if (iconUrl != null && iconUrl.length() != 0) {
                WidgetUtil.sinkOnloadForImages(op.getElement());
                op.addHandler(iconLoadHandler, LoadEvent.getType());
            }

            op.addStyleName(CLASSNAME_OPTION);
            op.addClickHandler(this);

            optionsToKeys.put(op, key);
        }

        op.setHTML(itemHtml);
        op.setValue(opUidl.getBooleanAttribute("selected"));
        boolean optionEnabled = !opUidl.getBooleanAttribute(OptionGroupConstants.ATTRIBUTE_OPTION_DISABLED);
        boolean enabled = optionEnabled && !isReadonly() && isEnabled();
        op.setEnabled(enabled);
        optionsEnabled.put(op, optionEnabled);

        setStyleName(op.getElement(), StyleConstants.DISABLED, !(optionEnabled && isEnabled()));

        newwidgets.add(op);
    }

    if (!newwidgets.equals(existingwidgets)) {
        // Rebuild the panel, losing focus
        panel.clear();
        for (Widget wid : newwidgets) {
            panel.add(wid);
        }
    }

    wasHtmlContentAllowed = isHtmlContentAllowed();
    wasMultiselect = isMultiselect();
}