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

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

Introduction

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

Prototype

public static DocumentRole getDocumentRole() 

Source Link

Usage

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);
}