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

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

Introduction

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

Prototype

public static PresentationRole getPresentationRole() 

Source Link

Usage

From source file:org.unitime.timetable.gwt.client.widgets.CourseRequestBox.java

License:Apache License

public CourseRequestBox(boolean showCourses, SpecialRegistrationContext specreg) {
    super("unitime-CourseRequestBox");
    iShowCourses = showCourses;/*  w  w w . j  av a2  s .c  om*/
    iSpecReg = specreg;

    iFilter = new CourseRequestFilterBox(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            // if (isEnabled())
            openDialogAsync();
        }
    }) {
        @Override
        protected void applySuggestion(Suggestion suggestion) {
            if (suggestion instanceof CourseSuggestion) {
                CourseRequestBox.this.setValue(((CourseSuggestion) suggestion).getRequestedCourse());
            } else {
                super.applySuggestion(suggestion);
            }
        }
    };
    add(iFilter);

    iFilter.addFilter(new FilterBox.StaticSimpleFilter("method", MESSAGES.tagInstructionalMethod()));
    iFilter.addFilter(new FilterBox.StaticSimpleFilter("section", MESSAGES.tagSection()));

    iFilter.setSuggestionsProvider(new SuggestionsProvider() {
        @Override
        public void getSuggestions(List<Chip> chips, final String text,
                final AsyncCallback<Collection<Suggestion>> callback) {
            if (text.equals(getHint()))
                return;
            if (iLastCourse != null && iLastCourse.isCourse()
                    && text.startsWith(iLastCourse.getCourseName() + " ")
                    && iValidCourseNames.containsKey(iLastCourse.getCourseName().toLowerCase())) {
                final CourseAssignment course = iValidCourseNames
                        .get(iLastCourse.getCourseName().toLowerCase());
                final String query = text.substring(iLastCourse.getCourseName().length() + 1).trim();
                iSectionProvider.getData(course, new AsyncCallback<Collection<ClassAssignment>>() {
                    @Override
                    public void onFailure(Throwable caught) {
                        callback.onFailure(caught);
                    }

                    @Override
                    public void onSuccess(Collection<ClassAssignment> result) {
                        List<Suggestion> suggestions = new ArrayList<Suggestion>();
                        if (course.hasInstructionalMethods()) {
                            for (IdValue im : course.getInstructionalMethods()) {
                                if (im.getValue().toLowerCase().startsWith(query.toLowerCase())) {
                                    suggestions.add(new CourseSuggestion(course, im, false));
                                    if (iSpecReg == null || iSpecReg.isCanRequire())
                                        suggestions.add(new CourseSuggestion(course, im, true));
                                } else if ((im.getValue() + "!").equalsIgnoreCase(query)
                                        && (iSpecReg == null || iSpecReg.isCanRequire())) {
                                    suggestions.add(new CourseSuggestion(course, im, true));
                                }
                            }
                        }
                        for (ClassAssignment clazz : result) {
                            if (clazz.isCancelled()
                                    || (!clazz.isSaved() && !clazz.isAvailable() && !isSpecialRegistration()))
                                continue;
                            if (clazz.getSection().equalsIgnoreCase(query)
                                    || clazz.getSelection().getText().equalsIgnoreCase(query)) {
                                suggestions.add(new CourseSuggestion(course, clazz, false));
                                if (iSpecReg == null || iSpecReg.isCanRequire())
                                    suggestions.add(new CourseSuggestion(course, clazz, true));
                            } else if (((clazz.getSection() + "!").equalsIgnoreCase(query)
                                    || (clazz.getSelection().getText() + "!").equalsIgnoreCase(query))
                                    && (iSpecReg == null || iSpecReg.isCanRequire())) {
                                suggestions.add(new CourseSuggestion(course, clazz, true));
                            } else if (clazz.getSection().toLowerCase().startsWith(query.toLowerCase()) || clazz
                                    .getSelection().getText().toLowerCase().startsWith(query.toLowerCase())) {
                                suggestions.add(new CourseSuggestion(course, clazz, false));
                            } else if (clazz
                                    .getTimeString(CONSTANTS.shortDays(), CONSTANTS.useAmPm(),
                                            MESSAGES.arrangeHours())
                                    .toLowerCase().startsWith(query.toLowerCase()))
                                suggestions.add(new CourseSuggestion(course, clazz, false));
                            else if (clazz.hasInstructors())
                                for (String instructor : clazz.getInstructors())
                                    if (instructor.toLowerCase().startsWith(query.toLowerCase())) {
                                        suggestions.add(new CourseSuggestion(course, clazz, false));
                                        break;
                                    }
                        }
                        callback.onSuccess(suggestions);
                    }
                });
                return;
            }
            iDataProvider.getData(text, new AsyncCallback<Collection<CourseAssignment>>() {
                @Override
                public void onFailure(Throwable caught) {
                    iValidCourseNames.clear();
                    if (iFreeTimeParser != null) {
                        iFreeTimeParser.getData(text, new AsyncCallback<List<FreeTime>>() {
                            @Override
                            public void onFailure(Throwable e) {
                                callback.onFailure(e);
                            }

                            @Override
                            public void onSuccess(List<FreeTime> freeTimes) {
                                String ft = iFreeTimeParser.freeTimesToString(freeTimes);
                                List<Suggestion> suggestions = new ArrayList<Suggestion>();
                                Suggestion suggestion = new Suggestion(ft, ft, MESSAGES.hintFreeTimeRequest());
                                suggestions.add(suggestion);
                                callback.onSuccess(suggestions);
                            }
                        });
                    } else {
                        callback.onFailure(caught);
                    }
                }

                @Override
                public void onSuccess(Collection<CourseAssignment> result) {
                    iValidCourseNames.clear();
                    List<Suggestion> suggestions = new ArrayList<Suggestion>();
                    if (result != null)
                        for (CourseAssignment course : result) {
                            Suggestion suggestion = new CourseSuggestion(course);
                            suggestions.add(suggestion);
                            iValidCourseNames.put(suggestion.getReplacementString().toLowerCase(), course);
                            if (course.getClassAssignments() != null) {
                                for (ClassAssignment clazz : course.getClassAssignments())
                                    suggestions.add(new CourseSuggestion(course, clazz, false));
                            }
                            if (result.size() <= 5 && course.hasInstructionalMethodSelection()) {
                                for (IdValue im : course.getInstructionalMethods()) {
                                    suggestions.add(new CourseSuggestion(course, im, false));
                                }
                            }
                        }
                    callback.onSuccess(suggestions);
                }
            });
        }
    });

    iError = new HTML();
    iError.setStyleName("unitime-ErrorHint");
    iError.setVisible(false);
    Roles.getPresentationRole().setAriaHiddenState(iError.getElement(), true);
    add(iError);

    iFilter.getValueBox().addBlurHandler(new BlurHandler() {
        public void onBlur(BlurEvent event) {
            if (getText().isEmpty() && iError.isVisible())
                iError.setVisible(false);
        }
    });
    iFilter.getValueBox().addFocusHandler(new FocusHandler() {
        public void onFocus(FocusEvent event) {
            if (iError.isVisible() && !iError.getText().isEmpty())
                AriaStatus.getInstance().setText(iError.getText());
        }
    });
    iFilter.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            String value = iFilter.getText();
            if (iLastCourse == null || !iLastCourse.isCourse()
                    || !value.startsWith(iLastCourse.getCourseName())) {
                iFilter.removeAllChips();
            } else if (!value.equals(iLastCourse.getCourseName())) {
                iFilter.setText(iLastCourse.getCourseName());
            }
            iFilter.resizeFilterIfNeeded();
            CourseSelectionEvent.fire(CourseRequestBox.this, getValue());
        }
    });
    iFilter.addSelectionHandler(new SelectionHandler<FilterBox.Suggestion>() {
        @Override
        public void onSelection(SelectionEvent<Suggestion> event) {
            iLastCourse = getValue();
        }
    });
}

From source file:org.unitime.timetable.gwt.client.widgets.CourseSelectionSuggestBox.java

License:Apache License

public CourseSelectionSuggestBox(boolean showCourses, boolean showDefaultSuggestions) {
    iShowCourses = showCourses;/* ww  w.  j  a  v  a  2s  .  com*/
    iShowDefaultSuggestions = showDefaultSuggestions;

    SuggestOracle courseOfferingOracle = new SuggestOracle() {
        public void requestSuggestions(Request request, Callback callback) {
            if (request.getQuery().equals(iHint))
                return;
            iDataProvider.getData(request.getQuery(), new SuggestCallback(request, callback));
        }

        public void requestDefaultSuggestions(Request request, Callback callback) {
            if (iShowDefaultSuggestions)
                iDataProvider.getData("", new SuggestCallback(request, callback));
            else
                super.requestDefaultSuggestions(request, callback);

        }

        public boolean isDisplayStringHTML() {
            return true;
        }
    };

    iSuggest = new AriaSuggestBox(courseOfferingOracle);
    iSuggest.setStyleName("unitime-TextBoxHint");

    iFinderButton = new ImageButton(RESOURCES.search_picker(), RESOURCES.search_picker_Down(),
            RESOURCES.search_picker_Over(), RESOURCES.search_picker_Disabled());
    iFinderButton.setTabIndex(-1);

    iVPanel = new VerticalPanel();

    iHPanel = new HorizontalPanel();
    iHPanel.add(iSuggest);
    iHPanel.add(iFinderButton);
    iVPanel.add(iHPanel);

    iError = new Label();
    iError.setStyleName("unitime-ErrorHint");
    iError.setVisible(false);
    Roles.getPresentationRole().setAriaHiddenState(iError.getElement(), true);
    iVPanel.add(iError);

    iFinderButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (iSuggest.isEnabled()) {
                openDialogAsync();
            }
        }
    });

    iSuggest.addSelectionHandler(new SelectionHandler<Suggestion>() {
        public void onSelection(SelectionEvent<Suggestion> event) {
            String text = event.getSelectedItem().getReplacementString();
            iLastSuggestion = text;
            CourseSelectionEvent.fire(CourseSelectionSuggestBox.this, text, !text.isEmpty());
        }
    });
    iSuggest.getValueBox().addChangeHandler(new ChangeHandler() {
        public void onChange(ChangeEvent event) {
            boolean valid = false;
            String text = iSuggest.getText();
            if (text.equalsIgnoreCase(iLastSuggestion))
                valid = true;
            else
                for (String course : iValidCourseNames) {
                    if (course.equalsIgnoreCase(text)) {
                        valid = true;
                        break;
                    }
                }
            CourseSelectionEvent.fire(CourseSelectionSuggestBox.this, text, valid);
        }
    });
    iSuggest.getValueBox().addKeyDownHandler(new KeyDownHandler() {
        public void onKeyDown(KeyDownEvent event) {
            if (!iSuggest.isEnabled())
                return;
            if ((event.getNativeEvent().getKeyCode() == 'F' || event.getNativeEvent().getKeyCode() == 'f')
                    && (event.isControlKeyDown() || event.isAltKeyDown())) {
                iSuggest.hideSuggestionList();
                openDialogAsync();
            }
            if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
                iSuggest.hideSuggestionList();
            }
            if ((event.getNativeEvent().getKeyCode() == 'L' || event.getNativeEvent().getKeyCode() == 'l')
                    && (event.isControlKeyDown() || event.isAltKeyDown())) {
                iSuggest.showSuggestionList();
            }
        }
    });
    iSuggest.getValueBox().addBlurHandler(new BlurHandler() {
        public void onBlur(BlurEvent event) {
            if (iSuggest.getText().isEmpty()) {
                if (iError.isVisible())
                    iError.setVisible(false);
                if (!iHint.isEmpty()) {
                    iSuggest.setText(iHint);
                    iSuggest.setStyleName("unitime-TextBoxHint");
                }
            }
        }
    });
    iSuggest.getValueBox().addFocusHandler(new FocusHandler() {
        public void onFocus(FocusEvent event) {
            iSuggest.setStyleName("gwt-SuggestBox");
            if (!iHint.isEmpty() && iSuggest.getText().equals(iHint))
                iSuggest.setText("");
            if (!iError.getText().isEmpty())
                AriaStatus.getInstance().setText(iError.getText());
        }
    });

    initWidget(iVPanel);
}