List of usage examples for com.google.gwt.aria.client Roles getRadiogroupRole
public static RadiogroupRole getRadiogroupRole()
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(); }