List of usage examples for com.google.gwt.aria.client AutocompleteValue NONE
AutocompleteValue NONE
To view the source code for com.google.gwt.aria.client AutocompleteValue NONE.
Click Source Link
From source file:org.unitime.timetable.gwt.client.aria.AriaSuggestBox.java
License:Apache License
public AriaSuggestBox(AriaTextBox box, SuggestOracle oracle) { iOracle = oracle;/*from w ww . j a va 2s. c om*/ iText = box; iText.setStyleName("gwt-SuggestBox"); initWidget(iText); addEventsToTextBox(); iSuggestionMenu = new SuggestionMenu(); iPopupScroll = new ScrollPanel(iSuggestionMenu); iPopupScroll.addStyleName("scroll"); iSuggestionPopup = new PopupPanel(true, false); iSuggestionPopup.setPreviewingAllNativeEvents(true); iSuggestionPopup.setStyleName("unitime-SuggestBoxPopup"); iSuggestionPopup.setWidget(iPopupScroll); iSuggestionPopup.addAutoHidePartner(getElement()); iSuggestionCallback = new SuggestionCallback() { @Override public void onSuggestionSelected(Suggestion suggestion) { if (!suggestion.getReplacementString().isEmpty()) { setStatus(ARIA.suggestionSelected(status(suggestion))); } iCurrentText = suggestion.getReplacementString(); setText(suggestion.getReplacementString()); hideSuggestionList(); fireSuggestionEvent(suggestion); } }; iOracleCallback = new SuggestOracle.Callback() { @Override public void onSuggestionsReady(Request request, Response response) { if (response.getSuggestions() == null || response.getSuggestions().isEmpty()) { if (iSuggestionPopup.isShowing()) iSuggestionPopup.hide(); } else { iSuggestionMenu.clearItems(); SuggestOracle.Suggestion first = null; for (SuggestOracle.Suggestion suggestion : response.getSuggestions()) { iSuggestionMenu.addItem(new SuggestionMenuItem(suggestion)); if (first == null) first = suggestion; } iSuggestionMenu.selectItem(0); ToolBox.setMinWidth(iSuggestionMenu.getElement().getStyle(), (iText.getElement().getClientWidth() - 4) + "px"); iSuggestionPopup.showRelativeTo(iText); iSuggestionMenu.scrollToView(); if (response.getSuggestions().size() == 1) { if (first.getReplacementString().isEmpty()) setStatus(status(first)); else setStatus(ARIA.showingOneSuggestion(status(first))); } else { setStatus(ARIA.showingMultipleSuggestions(response.getSuggestions().size(), request.getQuery(), status(first))); } } } }; Roles.getTextboxRole().setAriaAutocompleteProperty(iText.getElement(), AutocompleteValue.NONE); iSuggestionPopup.getElement().setAttribute("id", DOM.createUniqueId()); Roles.getTextboxRole().setAriaOwnsProperty(iText.getElement(), Id.of(iSuggestionPopup.getElement())); }
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/*from www . j ava2 s . c om*/ 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); }
From source file:org.unitime.timetable.gwt.client.widgets.IntervalSelector.java
License:Apache License
public IntervalSelector(boolean allowMultiSelection) { iAllowMultiSelection = allowMultiSelection; iPanel = new P("unitime-IntervalSelector"); P row = new P("row"); iPanel.add(row);/*from w w w. j a v a 2s .c om*/ iPrev = new Button("«"); iPrev.setEnabled(false); iPrev.addMouseDownHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { Interval prev = (getValue() == null ? null : previous(getValue())); if (prev != null) setValue(prev, true); } }); iNext = new Button("»"); iNext.setEnabled(false); iNext.addMouseDownHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { Interval next = (getValue() == null ? null : next(getValue())); if (next != null) setValue(next, true); } }); iFilter = new AriaTextBox(); iFilter.addStyleName("selection"); iFilter.addKeyDownHandler(new KeyDownHandler() { @Override public void onKeyDown(KeyDownEvent event) { if (isSuggestionsShowing()) { switch (event.getNativeEvent().getKeyCode()) { case KeyCodes.KEY_DOWN: iPopupMenu.selectItem(iPopupMenu.getSelectedItemIndex() + 1); setStatus(ARIA.onSuggestion(iPopupMenu.getSelectedItemIndex() + 1, iPopupMenu.getNumItems(), iPopupMenu.getSelectedInterval().toAriaString())); break; case KeyCodes.KEY_UP: if (iPopupMenu.getSelectedItemIndex() == -1) { iPopupMenu.selectItem(iPopupMenu.getNumItems() - 1); } else { iPopupMenu.selectItem(iPopupMenu.getSelectedItemIndex() - 1); } setStatus(ARIA.onSuggestion(iPopupMenu.getSelectedItemIndex() + 1, iPopupMenu.getNumItems(), iPopupMenu.getSelectedInterval().toAriaString())); break; case KeyCodes.KEY_TAB: case KeyCodes.KEY_ENTER: iPopupMenu.executeSelected(); 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) { if (selectASuggestion()) { if (!isSuggestionsShowing()) showSuggestions(); else setStatus(ARIA.onSuggestion(iPopupMenu.getSelectedItemIndex() + 1, iPopupMenu.getNumItems(), iPopupMenu.getSelectedInterval().toAriaString())); } } }); iFilter.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { if (iValues != null) { if (isAllowMultiSelection() && event.getValue().equals(getReplaceString(new Interval()))) { setValue(new Interval()); } else { Interval value = null; iterator: for (int i = 0; i < iValues.size(); i++) { if (event.getValue().equals(getReplaceString(new Interval(iValues.get(i))))) { value = new Interval(iValues.get(i)); break iterator; } if (isAllowMultiSelection()) { for (int j = i + 1; j < iValues.size(); j++) { if (event.getValue().equals( getReplaceString(new Interval(iValues.get(i), iValues.get(j))))) { value = new Interval(iValues.get(i), iValues.get(j)); break iterator; } } } } setValue(value); } } } }); iFilter.addFocusHandler(new FocusHandler() { @Override public void onFocus(FocusEvent event) { showSuggestions(); } }); iPopupMenu = new Menu(); iPopupScroll = new ScrollPanel(iPopupMenu); iPopupScroll.addStyleName("scroll"); iPopup = new PopupPanel(true, false); iPopup.setPreviewingAllNativeEvents(true); iPopup.setStyleName("unitime-IntervalSelectorPopup"); iPopup.setWidget(iPopupScroll); row.add(iPrev); row.add(iFilter); row.add(iNext); iWidget = new UniTimeWidget<AbsolutePanel>(iPanel); initWidget(iWidget); Roles.getTextboxRole().setAriaAutocompleteProperty(iFilter.getElement(), AutocompleteValue.NONE); iPopup.getElement().setAttribute("id", DOM.createUniqueId()); Roles.getTextboxRole().setAriaOwnsProperty(iFilter.getElement(), Id.of(iPopup.getElement())); }