List of usage examples for com.google.gwt.aria.client Roles getButtonRole
public static ButtonRole getButtonRole()
From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java
License:Apache License
protected void constructDOM() { setStyleName(CLASSNAME);/*from w w w . j ava 2 s. c om*/ topTabStop = DOM.createDiv(); topTabStop.setTabIndex(0); header = DOM.createDiv(); header.setClassName(CLASSNAME + "-outerheader"); headerText = DOM.createDiv(); headerText.setClassName(CLASSNAME + "-header"); contents = DOM.createDiv(); contents.setClassName(CLASSNAME + "-contents"); footer = DOM.createDiv(); footer.setClassName(CLASSNAME + "-footer"); resizeBox = DOM.createDiv(); resizeBox.setClassName(CLASSNAME + "-resizebox"); closeBox = DOM.createDiv(); closeBox.setClassName(CLASSNAME + "-closebox"); closeBox.setTabIndex(0); DOM.appendChild(footer, resizeBox); bottomTabStop = DOM.createDiv(); bottomTabStop.setTabIndex(0); wrapper = DOM.createDiv(); wrapper.setClassName(CLASSNAME + "-wrap"); DOM.appendChild(wrapper, topTabStop); DOM.appendChild(wrapper, header); DOM.appendChild(header, closeBox); DOM.appendChild(header, headerText); DOM.appendChild(wrapper, contents); DOM.appendChild(wrapper, footer); DOM.appendChild(wrapper, bottomTabStop); DOM.appendChild(super.getContainerElement(), wrapper); sinkEvents(Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.TOUCHEVENTS | Event.ONCLICK | Event.ONLOSECAPTURE); currentFileLabel = new VLabel(); currentFileLabel.addStyleName("upload-file-label"); currentFileLabel.setWidth("100%"); progressBar = new VProgressBar(); progressBar.addStyleName("upload-progressbar"); progressBar.setIndeterminate(false); progressBar.setState(0); progressBar.setWidth("100%"); cancelButton = new VButton(); cancelButton.addStyleName("upload-cancel-button"); cancelButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { closeWindow(); } }); contentPanel = new SimpleFocusablePanel(); contentPanel.setStyleName("content-pane"); contentPanel.addKeyDownHandler(this); contentPanel.addKeyUpHandler(this); setWidget(contentPanel); final FlowPanel verticalPanel = new FlowPanel(); verticalPanel.setStyleName("vertical-panel"); verticalPanel.addStyleName("v-widget"); verticalPanel.addStyleName("v-has-width"); verticalPanel.addStyleName("v-has-height"); verticalPanel.add(currentFileLabel); verticalPanel.add(progressBar); verticalPanel.add(cancelButton); contentPanel.setWidget(verticalPanel); // do some calculations for window layout Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { Style contentStyle = contents.getStyle(); ComputedStyle headerCs = new ComputedStyle(header); String headerHeight = headerCs.getProperty("height"); contentStyle.setProperty("paddingTop", headerHeight); contentStyle.setProperty("marginTop", "-" + headerHeight); ComputedStyle footerCs = new ComputedStyle(footer); String footerHeight = footerCs.getProperty("height"); contentStyle.setProperty("paddingBottom", footerHeight); contentStyle.setProperty("marginBottom", "-" + footerHeight); } }); // Make the closebox accessible for assistive devices Roles.getButtonRole().set(closeBox); Roles.getButtonRole().setAriaLabelProperty(closeBox, "close button"); // Provide the title to assistive devices AriaHelper.ensureHasId(headerText); Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(headerText)); // Handlers to Prevent tab to leave the window // and backspace to cause browser navigation topEventBlocker = new Event.NativePreviewHandler() { @Override public void onPreviewNativeEvent(Event.NativePreviewEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (nativeEvent.getEventTarget().cast() == topTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && nativeEvent.getShiftKey()) { nativeEvent.preventDefault(); } if (nativeEvent.getEventTarget().cast() == topTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) { nativeEvent.preventDefault(); } } }; bottomEventBlocker = new Event.NativePreviewHandler() { @Override public void onPreviewNativeEvent(Event.NativePreviewEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (nativeEvent.getEventTarget().cast() == bottomTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && !nativeEvent.getShiftKey()) { nativeEvent.preventDefault(); } if (nativeEvent.getEventTarget().cast() == bottomTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) { nativeEvent.preventDefault(); } } }; }
From source file:com.vaadin.client.ui.VAbstractPopupCalendar.java
License:Apache License
public VAbstractPopupCalendar(PANEL calendarPanel, R resolution) { super(resolution); calendarToggle.setText(""); calendarToggle.addClickHandler(this); calendarToggle.addDomHandler(new MouseOverHandler() { @Override/*w w w . j a va2s .c o m*/ public void onMouseOver(MouseOverEvent event) { cursorOverCalendarToggleButton = true; } }, MouseOverEvent.getType()); calendarToggle.addDomHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { cursorOverCalendarToggleButton = false; } }, MouseOutEvent.getType()); // -2 instead of -1 to avoid FocusWidget.onAttach to reset it calendarToggle.getElement().setTabIndex(-2); Roles.getButtonRole().set(calendarToggle.getElement()); Roles.getButtonRole().setAriaHiddenState(calendarToggle.getElement(), true); add(calendarToggle); // Description of the usage of the widget for assisitve device users descriptionForAssisitveDevicesElement = DOM.createDiv(); descriptionForAssisitveDevicesElement.setInnerText(TextualDateFieldState.DESCRIPTION_FOR_ASSISTIVE_DEVICES); AriaHelper.ensureHasId(descriptionForAssisitveDevicesElement); Roles.getTextboxRole().setAriaDescribedbyProperty(text.getElement(), Id.of(descriptionForAssisitveDevicesElement)); AriaHelper.setVisibleForAssistiveDevicesOnly(descriptionForAssisitveDevicesElement, true); calendar = calendarPanel; calendar.setParentField(this); calendar.setFocusOutListener(new FocusOutListener() { @Override public boolean onFocusOut(DomEvent<?> event) { event.preventDefault(); closeCalendarPanel(); return true; } }); // FIXME: Problem is, that the element with the provided id does not // exist yet in html. This is the same problem as with the context menu. // Apply here the same fix (#11795) Roles.getTextboxRole().setAriaControlsProperty(text.getElement(), Id.of(calendar.getElement())); Roles.getButtonRole().setAriaControlsProperty(calendarToggle.getElement(), Id.of(calendar.getElement())); calendar.setSubmitListener(new SubmitListener() { @Override public void onSubmit() { // Update internal value and send valuechange event if immediate updateValue(calendar.getDate()); // Update text field (a must when not immediate). buildDate(true); closeCalendarPanel(); } @Override public void onCancel() { closeCalendarPanel(); } }); popup = new VOverlay(true, false); popup.setOwner(this); FlowPanel wrapper = new FlowPanel(); selectedDate = new Label(); selectedDate.setStyleName(getStylePrimaryName() + "-selecteddate"); AriaHelper.setVisibleForAssistiveDevicesOnly(selectedDate.getElement(), true); Roles.getTextboxRole().setAriaLiveProperty(selectedDate.getElement(), LiveValue.ASSERTIVE); Roles.getTextboxRole().setAriaAtomicProperty(selectedDate.getElement(), true); wrapper.add(selectedDate); wrapper.add(calendar); popup.setWidget(wrapper); popup.addCloseHandler(this); DOM.setElementProperty(calendar.getElement(), "id", "PID_VAADIN_POPUPCAL"); sinkEvents(Event.ONKEYDOWN); updateStyleNames(); }
From source file:com.vaadin.client.ui.VAbstractPopupCalendar.java
License:Apache License
protected void updateTextFieldEnabled() { boolean reallyEnabled = isEnabled() && isTextFieldEnabled(); // IE has a non input disabled themeing that can not be overridden so we // must fake the functionality using readonly and unselectable if (BrowserInfo.get().isIE()) { if (!reallyEnabled) { text.getElement().setAttribute("unselectable", "on"); text.getElement().setAttribute("readonly", ""); text.setTabIndex(-2);//from w w w . ja v a 2 s .c o m } else if (reallyEnabled && text.getElement().hasAttribute("unselectable")) { text.getElement().removeAttribute("unselectable"); text.getElement().removeAttribute("readonly"); text.setTabIndex(0); } } else { text.setEnabled(reallyEnabled); } if (reallyEnabled) { calendarToggle.setTabIndex(-1); Roles.getButtonRole().setAriaHiddenState(calendarToggle.getElement(), true); } else { calendarToggle.setTabIndex(0); Roles.getButtonRole().setAriaHiddenState(calendarToggle.getElement(), false); } handleAriaAttributes(); }
From source file:com.vaadin.client.ui.VAbstractPopupCalendar.java
License:Apache License
@Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); updateTextFieldEnabled();//from w ww . j a va 2s .c o m calendarToggle.setEnabled(enabled); Roles.getButtonRole().setAriaDisabledState(calendarToggle.getElement(), !enabled); }
From source file:com.vaadin.client.ui.VButton.java
License:Apache License
public VButton() { super(DOM.createDiv()); setTabIndex(0);/*from w ww. j a v a 2 s . c o m*/ sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS | Event.FOCUSEVENTS | Event.KEYEVENTS); // Add a11y role "button" Roles.getButtonRole().set(getElement()); getElement().appendChild(wrapper); wrapper.appendChild(captionElement); setStyleName(CLASSNAME); addClickHandler(this); }
From source file:com.vaadin.client.ui.VButton.java
License:Apache License
/** * Sets whether this button is enabled.//from w w w. j a v a 2 s .co m * * @param enabled * <code>true</code> to enable the button, <code>false</code> to * disable it */ @Override public final void setEnabled(boolean enabled) { if (isEnabled() != enabled) { this.enabled = enabled; if (!enabled) { cleanupCaptureState(); Roles.getButtonRole().setAriaDisabledState(getElement(), !enabled); super.setTabIndex(-1); } else { Roles.getButtonRole().removeAriaDisabledState(getElement()); super.setTabIndex(tabIndex); } } }
From source file:com.vaadin.client.ui.VComboBox.java
License:Apache License
/** * Default constructor.//ww w. j a v a 2s. c o m */ public VComboBox() { tb = createTextBox(); suggestionPopup = createSuggestionPopup(); popupOpener.addMouseDownHandler(VComboBox.this); Roles.getButtonRole().setAriaHiddenState(popupOpener.getElement(), true); Roles.getButtonRole().set(popupOpener.getElement()); panel.add(tb); panel.add(popupOpener); initWidget(panel); Roles.getComboboxRole().set(panel.getElement()); tb.addKeyDownHandler(this); tb.addKeyUpHandler(this); tb.addFocusHandler(this); tb.addBlurHandler(this); panel.addDomHandler(this, ClickEvent.getType()); setStyleName(CLASSNAME); sinkEvents(Event.ONPASTE); }
From source file:com.vaadin.client.ui.VFilterSelect.java
License:Apache License
/** * Default constructor./* ww w. j a v a 2 s .co m*/ */ public VFilterSelect() { tb = createTextBox(); suggestionPopup = createSuggestionPopup(); popupOpener.sinkEvents(Event.ONMOUSEDOWN); Roles.getButtonRole().setAriaHiddenState(popupOpener.getElement(), true); Roles.getButtonRole().set(popupOpener.getElement()); panel.add(tb); panel.add(popupOpener); initWidget(panel); Roles.getComboboxRole().set(panel.getElement()); tb.addKeyDownHandler(this); tb.addKeyUpHandler(this); tb.addFocusHandler(this); tb.addBlurHandler(this); tb.addClickHandler(this); popupOpener.addClickHandler(this); setStyleName(CLASSNAME); sinkEvents(Event.ONPASTE); }
From source file:com.vaadin.client.ui.VPopupCalendar.java
License:Apache License
public VPopupCalendar() { super();//ww w . j a va 2 s. co m calendarToggle.setText(""); calendarToggle.addClickHandler(this); calendarToggle.addDomHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { cursorOverCalendarToggleButton = true; } }, MouseOverEvent.getType()); calendarToggle.addDomHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { cursorOverCalendarToggleButton = false; } }, MouseOutEvent.getType()); // -2 instead of -1 to avoid FocusWidget.onAttach to reset it calendarToggle.getElement().setTabIndex(-2); Roles.getButtonRole().set(calendarToggle.getElement()); Roles.getButtonRole().setAriaHiddenState(calendarToggle.getElement(), true); add(calendarToggle); // Description of the usage of the widget for assisitve device users descriptionForAssisitveDevicesElement = DOM.createDiv(); descriptionForAssisitveDevicesElement.setInnerText(PopupDateFieldState.DESCRIPTION_FOR_ASSISTIVE_DEVICES); AriaHelper.ensureHasId(descriptionForAssisitveDevicesElement); Roles.getTextboxRole().setAriaDescribedbyProperty(text.getElement(), Id.of(descriptionForAssisitveDevicesElement)); AriaHelper.setVisibleForAssistiveDevicesOnly(descriptionForAssisitveDevicesElement, true); calendar = GWT.create(VCalendarPanel.class); calendar.setParentField(this); calendar.setFocusOutListener(new FocusOutListener() { @Override public boolean onFocusOut(DomEvent<?> event) { event.preventDefault(); closeCalendarPanel(); return true; } }); // FIXME: Problem is, that the element with the provided id does not // exist yet in html. This is the same problem as with the context menu. // Apply here the same fix (#11795) Roles.getTextboxRole().setAriaControlsProperty(text.getElement(), Id.of(calendar.getElement())); Roles.getButtonRole().setAriaControlsProperty(calendarToggle.getElement(), Id.of(calendar.getElement())); calendar.setSubmitListener(new SubmitListener() { @Override public void onSubmit() { // Update internal value and send valuechange event if immediate updateValue(calendar.getDate()); // Update text field (a must when not immediate). buildDate(true); closeCalendarPanel(); } @Override public void onCancel() { closeCalendarPanel(); } }); popup = new VOverlay(true, false, true); popup.setOwner(this); FlowPanel wrapper = new FlowPanel(); selectedDate = new Label(); selectedDate.setStyleName(getStylePrimaryName() + "-selecteddate"); AriaHelper.setVisibleForAssistiveDevicesOnly(selectedDate.getElement(), true); Roles.getTextboxRole().setAriaLiveProperty(selectedDate.getElement(), LiveValue.ASSERTIVE); Roles.getTextboxRole().setAriaAtomicProperty(selectedDate.getElement(), true); wrapper.add(selectedDate); wrapper.add(calendar); popup.setWidget(wrapper); popup.addCloseHandler(this); DOM.setElementProperty(calendar.getElement(), "id", "PID_VAADIN_POPUPCAL"); sinkEvents(Event.ONKEYDOWN); updateStyleNames(); }
From source file:com.vaadin.client.ui.VWindow.java
License:Apache License
protected void constructDOM() { setStyleName(CLASSNAME);/* w w w . j ava 2 s . c om*/ topTabStop = DOM.createDiv(); DOM.setElementAttribute(topTabStop, "tabindex", "0"); header = DOM.createDiv(); DOM.setElementProperty(header, "className", CLASSNAME + "-outerheader"); headerText = DOM.createDiv(); DOM.setElementProperty(headerText, "className", CLASSNAME + "-header"); contents = DOM.createDiv(); DOM.setElementProperty(contents, "className", CLASSNAME + "-contents"); footer = DOM.createDiv(); DOM.setElementProperty(footer, "className", CLASSNAME + "-footer"); resizeBox = DOM.createDiv(); DOM.setElementProperty(resizeBox, "className", CLASSNAME + "-resizebox"); closeBox = DOM.createDiv(); maximizeRestoreBox = DOM.createDiv(); DOM.setElementProperty(maximizeRestoreBox, "className", CLASSNAME + "-maximizebox"); DOM.setElementAttribute(maximizeRestoreBox, "tabindex", "0"); DOM.setElementProperty(closeBox, "className", CLASSNAME + "-closebox"); DOM.setElementAttribute(closeBox, "tabindex", "0"); DOM.appendChild(footer, resizeBox); bottomTabStop = DOM.createDiv(); DOM.setElementAttribute(bottomTabStop, "tabindex", "0"); wrapper = DOM.createDiv(); DOM.setElementProperty(wrapper, "className", CLASSNAME + "-wrap"); DOM.appendChild(wrapper, topTabStop); DOM.appendChild(wrapper, header); DOM.appendChild(header, maximizeRestoreBox); DOM.appendChild(header, closeBox); DOM.appendChild(header, headerText); DOM.appendChild(wrapper, contents); DOM.appendChild(wrapper, footer); DOM.appendChild(wrapper, bottomTabStop); DOM.appendChild(super.getContainerElement(), wrapper); sinkEvents(Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.TOUCHEVENTS | Event.ONCLICK | Event.ONLOSECAPTURE); setWidget(contentPanel); // Make the closebox accessible for assistive devices Roles.getButtonRole().set(closeBox); Roles.getButtonRole().setAriaLabelProperty(closeBox, "close button"); // Make the maximizebox accessible for assistive devices Roles.getButtonRole().set(maximizeRestoreBox); Roles.getButtonRole().setAriaLabelProperty(maximizeRestoreBox, "maximize button"); // Provide the title to assistive devices AriaHelper.ensureHasId(headerText); Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(headerText)); // Handlers to Prevent tab to leave the window // and backspace to cause browser navigation topEventBlocker = new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (nativeEvent.getEventTarget().cast() == topTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && nativeEvent.getShiftKey()) { nativeEvent.preventDefault(); } if (nativeEvent.getEventTarget().cast() == topTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) { nativeEvent.preventDefault(); } } }; bottomEventBlocker = new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (nativeEvent.getEventTarget().cast() == bottomTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && !nativeEvent.getShiftKey()) { nativeEvent.preventDefault(); } if (nativeEvent.getEventTarget().cast() == bottomTabStop && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) { nativeEvent.preventDefault(); } } }; }