List of usage examples for com.google.gwt.aria.client Roles getPresentationRole
public static PresentationRole getPresentationRole()
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); }