List of usage examples for com.google.gwt.aria.client Roles getDocumentRole
public static DocumentRole getDocumentRole()
From source file:org.unitime.timetable.gwt.client.widgets.CourseRequestBox.java
License:Apache License
public void addOperation(FilterOperation operation, boolean beforeFinder) { operation.addStyleName("button-image"); if (beforeFinder) iFilter.add(operation);//from ww w . j a v a 2 s .c o m else iFilter.insert(operation, iFilter.getWidgetIndex(iFilter.iFilterFinder)); Roles.getDocumentRole().setAriaHiddenState(operation.getElement(), true); }
From source file:org.unitime.timetable.gwt.client.widgets.FilterBox.java
License:Apache License
public FilterBox() { setStyleName("unitime-FilterBox"); final Timer blur = new Timer() { @Override/* w ww. j a v a2s .c o m*/ public void run() { if (!iFocus) { removeStyleName("unitime-FilterBoxFocus"); if (isFilterPopupShowing()) hideFilterPopup(); } } }; iFocusHandler = new FocusHandler() { @Override public void onFocus(FocusEvent event) { if (event.getSource() != null && event.getSource() instanceof Focusable) iLastFocusedWidget = (Focusable) event.getSource(); iFocus = true; addStyleName("unitime-FilterBoxFocus"); if (iShowSuggestionsOnFocus) refreshSuggestions(); } }; iBlurHandler = new BlurHandler() { @Override public void onBlur(BlurEvent event) { iFocus = false; iLastFocusedWidget = null; blur.schedule(100); } }; iFilter = new AriaTextBox(); iFilter.setStyleName("filter"); iFilter.addKeyDownHandler(new KeyDownHandler() { @Override public void onKeyDown(KeyDownEvent event) { if (isFilterPopupShowing()) { hideFilterPopup(); } if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_BACKSPACE && iFilter.getText().isEmpty()) { if (getWidgetCount() > 4) { remove(getWidgetCount() - 5); resizeFilterIfNeeded(); setAriaLabel(toAriaString()); ValueChangeEvent.fire(FilterBox.this, getValue()); setStatus(getAriaLabel()); } } if (isSuggestionsShowing()) { switch (event.getNativeEvent().getKeyCode()) { case KeyCodes.KEY_DOWN: iSuggestionMenu.selectItem(iSuggestionMenu.getSelectedItemIndex() + 1); setStatus(ARIA.onSuggestion(iSuggestionMenu.getSelectedItemIndex() + 1, iSuggestionMenu.getNumItems(), iSuggestionMenu.getSelectedSuggestion().toAriaString(FilterBox.this))); break; case KeyCodes.KEY_UP: if (iSuggestionMenu.getSelectedItemIndex() == -1) { iSuggestionMenu.selectItem(iSuggestionMenu.getNumItems() - 1); } else { iSuggestionMenu.selectItem(iSuggestionMenu.getSelectedItemIndex() - 1); } setStatus(ARIA.onSuggestion(iSuggestionMenu.getSelectedItemIndex() + 1, iSuggestionMenu.getNumItems(), iSuggestionMenu.getSelectedSuggestion().toAriaString(FilterBox.this))); break; case KeyCodes.KEY_ENTER: iSuggestionMenu.executeSelected(); hideSuggestions(); break; case KeyCodes.KEY_TAB: hideSuggestions(); break; case KeyCodes.KEY_ESCAPE: hideSuggestions(); break; } switch (event.getNativeEvent().getKeyCode()) { case KeyCodes.KEY_DOWN: case KeyCodes.KEY_UP: case KeyCodes.KEY_ENTER: case KeyCodes.KEY_ESCAPE: event.preventDefault(); event.stopPropagation(); } } else { if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN && (event.getNativeEvent().getAltKey() || iFilter.getCursorPos() == iFilter.getText().length())) { showSuggestions(); event.preventDefault(); event.stopPropagation(); } } } }); iFilter.addKeyUpHandler(new KeyUpHandler() { @Override public void onKeyUp(KeyUpEvent event) { refreshSuggestions(); } }); iFilter.addFocusHandler(iFocusHandler); iFilter.addBlurHandler(iBlurHandler); add(iFilter); iFilter.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { setAriaLabel(toAriaString()); ValueChangeEvent.fire(FilterBox.this, getValue()); } }); iFilterClear = new Image(RESOURCES.filter_clear()); iFilterClear.setAltText(MESSAGES.altClearFilter()); iFilterClear.setTitle(MESSAGES.altClearFilter()); iFilterClear.setStyleName("button-image"); add(iFilterClear); iFilterClear.setVisible(false); Roles.getDocumentRole().setAriaHiddenState(iFilterClear.getElement(), true); iFilter.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { if (iFilterClear.isVisible() && getValue().isEmpty()) { resizeFilterIfNeeded(); } else if (!iFilterClear.isVisible() && !getValue().isEmpty()) { resizeFilterIfNeeded(); } } }); iFilterOpen = new Image(RESOURCES.filter_open()); iFilterOpen.setAltText(MESSAGES.altOpenFilter()); iFilterOpen.setTitle(MESSAGES.altOpenFilter()); iFilterOpen.addStyleName("button-image"); add(iFilterOpen); Roles.getDocumentRole().setAriaHiddenState(iFilterOpen.getElement(), true); iFilterClose = new Image(RESOURCES.filter_close()); iFilterClose.setAltText(MESSAGES.altCloseFilter()); iFilterClose.setTitle(MESSAGES.altCloseFilter()); iFilterClose.addStyleName("button-image"); add(iFilterClose); iFilterClose.setVisible(false); Roles.getDocumentRole().setAriaHiddenState(iFilterClose.getElement(), true); iFilterPopup = new PopupPanelKeepFocus(); iFilterPopup.setStyleName("unitime-FilterBoxPopup"); iFilterPopup.setAutoHideEnabled(false); iSuggestionMenu = new SuggestionMenu(); iSuggestionsPopup = new PopupPanelKeepFocus(); iSuggestionsPopup.setWidget(iSuggestionMenu); iSuggestionsPopup.setStyleName("unitime-FilterBoxPopup"); sinkEvents(Event.ONMOUSEDOWN); iSuggestionsPopup.getElement().setAttribute("id", DOM.createUniqueId()); Roles.getTextboxRole().setAriaOwnsProperty(iFilter.getElement(), Id.of(iSuggestionsPopup.getElement())); Roles.getTextboxRole().setAriaAutocompleteProperty(iFilter.getElement(), AutocompleteValue.NONE); }