Example usage for com.google.gwt.aria.client SelectedValue TRUE

List of usage examples for com.google.gwt.aria.client SelectedValue TRUE

Introduction

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

Prototype

SelectedValue TRUE

To view the source code for com.google.gwt.aria.client SelectedValue TRUE.

Click Source Link

Usage

From source file:com.example.test.client.VMultiSelectCalendarWidget.java

License:Apache License

/**
 * Sets the selection highlight to a given day in the current view
 * //w  w w .  j  a  v a2  s. c  om
 * @param date
 *            A Date representing the day of month to be selected. Must be one of the days currently visible.
 * 
 */
private void toggleDate(Date date) {
    DayWidget dayToSelect = new DayWidget(date);
    for (DayWidget day : getDayWidgets()) {
        if (day.equals(dayToSelect)) {
            if (selectedDays.contains(day)) {
                day.removeStyleDependentName(CN_SELECTED);
                Roles.getGridcellRole().removeAriaSelectedState(day.getElement());
                selectedDays.remove(day);
            } else {
                day.addStyleDependentName(CN_SELECTED);
                Roles.getGridcellRole().setAriaSelectedState(day.getElement(), SelectedValue.TRUE);
                selectedDays.add(day);
            }
        }
    }
}

From source file:com.example.test.client.VMultiSelectCalendarWidget.java

License:Apache License

/**
 * Builds the day and time selectors of the calendar.
 *//*  ww w. j  av a2 s . co m*/
private void buildCalendarBody() {

    final int weekColumn = 0;
    final int firstWeekdayColumn = 1;
    final int headerRow = 0;

    setWidget(1, 0, daysTable);
    setCellPadding(0);
    setCellSpacing(0);
    getFlexCellFormatter().setColSpan(1, 0, 5);
    getFlexCellFormatter().setStyleName(1, 0, STYLE_PRIMARY + "-calendarpanel-body");

    daysTable.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-week");
    daysTable.setHTML(headerRow, weekColumn, "<strong></strong>");
    // Hide the week column if week numbers are not to be displayed.
    daysTable.getFlexCellFormatter().setVisible(headerRow, weekColumn, isShowISOWeekNumbers());

    daysTable.getRowFormatter().setStyleName(headerRow, STYLE_PRIMARY + "-calendarpanel-weekdays");

    if (isShowISOWeekNumbers()) {
        daysTable.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-first");
        daysTable.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "");
        daysTable.getRowFormatter().addStyleName(headerRow, STYLE_PRIMARY + "-calendarpanel-weeknumbers");
    } else {
        daysTable.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "");
        daysTable.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "v-first");
    }

    daysTable.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn + 6, "v-last");

    // Print weekday names
    final int firstDay = getDateTimeService().getFirstDayOfWeek();
    for (int i = 0; i < 7; i++) {
        int day = i + firstDay;
        if (day > 6) {
            day = 0;
        }
        daysTable.setHTML(headerRow, firstWeekdayColumn + i,
                "<strong>" + getDateTimeService().getShortDay(day) + "</strong>");

        Roles.getColumnheaderRole()
                .set(daysTable.getCellFormatter().getElement(headerRow, firstWeekdayColumn + i));
    }

    // Zero out hours, minutes, seconds, and milliseconds to compare dates
    // without time part
    final Date tmp = new Date();
    final Date today = new Date(tmp.getYear(), tmp.getMonth(), tmp.getDate());

    //final Date selectedDate = value == null ? null : new Date(value.getYear(), value.getMonth(), value.getDate());

    final int startWeekDay = getDateTimeService().getStartWeekDay(displayedMonth);
    final Date dateToAdd = (Date) displayedMonth.clone();
    // Start from the first day of the week that at least partially belongs
    // to the current month
    dateToAdd.setDate(1 - startWeekDay);

    // No month has more than 6 weeks so 6 is a safe maximum for rows.
    for (int weekOfMonth = 1; weekOfMonth < 7; weekOfMonth++) {
        for (int dayOfWeek = 0; dayOfWeek < 7; dayOfWeek++) {

            // Actually write the day of month
            Date dayDate = (Date) dateToAdd.clone();
            DayWidget day = new DayWidget(dayDate);

            day.setStyleName(STYLE_PRIMARY + "-calendarpanel-day");

            if (!isDateInsideRange(dayDate, Resolution.DAY)) {
                day.addStyleDependentName(CN_OUTSIDE_RANGE);
            }

            //if (dateToAdd.equals(selectedDate)) {
            if (selectedDates.contains(dateToAdd)) {
                day.addStyleDependentName(CN_SELECTED);
                Roles.getGridcellRole().setAriaSelectedState(day.getElement(), SelectedValue.TRUE);
                selectedDays.add(day);
            }
            if (dateToAdd.equals(today)) {
                day.addStyleDependentName(CN_TODAY);
            }
            if (focusedDay != null && dateToAdd.equals(focusedDay.getDate())) {
                focusedDay = day;
                if (hasFocus) {
                    day.addStyleDependentName(CN_FOCUSED);
                }
            }
            if (dateToAdd.getMonth() != displayedMonth.getMonth()) {
                day.addStyleDependentName(CN_OFFMONTH);
            }

            daysTable.setWidget(weekOfMonth, firstWeekdayColumn + dayOfWeek, day);
            Roles.getGridcellRole()
                    .set(daysTable.getCellFormatter().getElement(weekOfMonth, firstWeekdayColumn + dayOfWeek));

            // ISO week numbers if requested
            daysTable.getCellFormatter().setVisible(weekOfMonth, weekColumn, isShowISOWeekNumbers());

            if (isShowISOWeekNumbers()) {
                final String baseCssClass = STYLE_PRIMARY + "-calendarpanel-weeknumber";
                String weekCssClass = baseCssClass;

                int weekNumber = DateTimeService.getISOWeekNumber(dateToAdd);

                daysTable.setHTML(weekOfMonth, 0,
                        "<span class=\"" + weekCssClass + "\"" + ">" + weekNumber + "</span>");
            }
            dateToAdd.setDate(dateToAdd.getDate() + 1);
        }
    }
}

From source file:com.vaadin.client.ui.SuperTreeWidget.java

License:Apache License

/**
 * Sets the node currently in focus//  ww  w .  j  a v a  2s  .  c  o m
 *
 * @param node
 *            The node to focus or null to remove the focus completely
 * @param scrollIntoView
 *            Scroll the node into view
 */
public void setFocusedNode(TreeNode node, boolean scrollIntoView) {
    // Unfocus previously focused node
    if (focusedNode != null) {
        focusedNode.setFocused(false);

        Roles.getTreeRole().removeAriaActivedescendantProperty(focusedNode.getElement());
    }

    if (node != null) {
        node.setFocused(true);
        Roles.getTreeitemRole().setAriaSelectedState(node.getElement(), SelectedValue.TRUE);

        /*
         * FIXME: This code needs to be changed when the keyboard navigation
         * doesn't immediately trigger a selection change anymore.
         * 
         * Right now this function is called before and after the Tree is
         * rebuilt when up/down arrow keys are pressed. This leads to the
         * problem, that the newly selected item is announced too often with
         * a screen reader.
         * 
         * Behaviour is different when using the Tree with and without
         * screen reader.
         */
        if (node.key.equals(lastNodeKey)) {
            Roles.getTreeRole().setAriaActivedescendantProperty(getFocusElement(), Id.of(node.getElement()));
        } else {
            lastNodeKey = node.key;
        }
    }

    focusedNode = node;

    if (node != null && scrollIntoView) {
        /*
         * Delay scrolling the focused node into view if we are still
         * rendering. #5396
         */
        if (!rendering) {
            node.scrollIntoView();
        } else {
            Scheduler.get().scheduleDeferred(new Command() {
                @Override
                public void execute() {
                    focusedNode.scrollIntoView();
                }
            });
        }
    }
}

From source file:com.vaadin.client.ui.VAbstractCalendarPanel.java

License:Apache License

/**
 * Sets the selection highlight to a given day in the current view
 *
 * @param date/*from w w w  . jav a2  s. c o m*/
 *            A Date representing the day of month to be selected. Must be
 *            one of the days currently visible.
 *
 */
private void selectDate(Date date) {
    if (selectedDay != null) {
        selectedDay.removeStyleDependentName(CN_SELECTED);
        Roles.getGridcellRole().removeAriaSelectedState(selectedDay.getElement());
    }

    int rowCount = days.getRowCount();
    for (int i = 0; i < rowCount; i++) {
        int cellCount = days.getCellCount(i);
        for (int j = 0; j < cellCount; j++) {
            Widget widget = days.getWidget(i, j);
            if (widget != null && widget instanceof VAbstractCalendarPanel.Day) {
                Day curday = (Day) widget;
                if (curday.getDate().equals(date)) {
                    curday.addStyleDependentName(CN_SELECTED);
                    selectedDay = curday;
                    Roles.getGridcellRole().setAriaSelectedState(selectedDay.getElement(), SelectedValue.TRUE);
                    return;
                }
            }
        }
    }
}

From source file:com.vaadin.client.ui.VAbstractCalendarPanel.java

License:Apache License

/**
 * Builds the day and time selectors of the calendar.
 *///w  ww . j  a v a  2  s. c o  m
private void buildCalendarBody() {

    final int weekColumn = 0;
    final int firstWeekdayColumn = 1;
    final int headerRow = 0;

    setWidget(1, 0, days);
    setCellPadding(0);
    setCellSpacing(0);
    getFlexCellFormatter().setColSpan(1, 0, 5);
    getFlexCellFormatter().setStyleName(1, 0, getDateField().getStylePrimaryName() + "-calendarpanel-body");

    days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-week");
    days.setHTML(headerRow, weekColumn, "<strong></strong>");
    // Hide the week column if week numbers are not to be displayed.
    days.getFlexCellFormatter().setVisible(headerRow, weekColumn, isShowISOWeekNumbers());

    days.getRowFormatter().setStyleName(headerRow,
            getDateField().getStylePrimaryName() + "-calendarpanel-weekdays");

    if (isShowISOWeekNumbers()) {
        days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-first");
        days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "");
        days.getRowFormatter().addStyleName(headerRow,
                getDateField().getStylePrimaryName() + "-calendarpanel-weeknumbers");
    } else {
        days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "");
        days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "v-first");
    }

    days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn + 6, "v-last");

    // Print weekday names
    final int firstDay = getDateTimeService().getFirstDayOfWeek();
    for (int i = 0; i < 7; i++) {
        int day = i + firstDay;
        if (day > 6) {
            day = 0;
        }
        if (isBelowMonth(getResolution())) {
            days.setHTML(headerRow, firstWeekdayColumn + i,
                    "<strong>" + getDateTimeService().getShortDay(day) + "</strong>");
        } else {
            days.setHTML(headerRow, firstWeekdayColumn + i, "");
        }

        Roles.getColumnheaderRole().set(days.getCellFormatter().getElement(headerRow, firstWeekdayColumn + i));
    }

    // Zero out hours, minutes, seconds, and milliseconds to compare dates
    // without time part
    final Date tmp = new Date();
    final Date today = new Date(tmp.getYear(), tmp.getMonth(), tmp.getDate());

    final Date selectedDate = value == null ? null
            : new Date(value.getYear(), value.getMonth(), value.getDate());

    final int startWeekDay = getDateTimeService().getStartWeekDay(displayedMonth);
    final Date curr = (Date) displayedMonth.clone();
    // Start from the first day of the week that at least partially belongs
    // to the current month
    curr.setDate(1 - startWeekDay);

    // No month has more than 6 weeks so 6 is a safe maximum for rows.
    for (int weekOfMonth = 1; weekOfMonth < 7; weekOfMonth++) {
        for (int dayOfWeek = 0; dayOfWeek < 7; dayOfWeek++) {

            // Actually write the day of month
            Date dayDate = (Date) curr.clone();
            Day day = new Day(dayDate);

            day.setStyleName(getDateField().getStylePrimaryName() + "-calendarpanel-day");

            if (!isDateInsideRange(dayDate, getResolution(this::isDay))) {
                day.addStyleDependentName(CN_OUTSIDE_RANGE);
            }

            if (curr.equals(selectedDate)) {
                day.addStyleDependentName(CN_SELECTED);
                Roles.getGridcellRole().setAriaSelectedState(day.getElement(), SelectedValue.TRUE);
                selectedDay = day;
            }
            if (curr.equals(today)) {
                day.addStyleDependentName(CN_TODAY);
            }
            if (curr.equals(focusedDate)) {
                focusedDay = day;
                if (hasFocus) {
                    day.addStyleDependentName(CN_FOCUSED);
                }
            }
            if (curr.getMonth() != displayedMonth.getMonth()) {
                day.addStyleDependentName(CN_OFFMONTH);
            }

            days.setWidget(weekOfMonth, firstWeekdayColumn + dayOfWeek, day);
            Roles.getGridcellRole()
                    .set(days.getCellFormatter().getElement(weekOfMonth, firstWeekdayColumn + dayOfWeek));

            // ISO week numbers if requested
            days.getCellFormatter().setVisible(weekOfMonth, weekColumn, isShowISOWeekNumbers());

            if (isShowISOWeekNumbers()) {
                final String baseCssClass = getDateField().getStylePrimaryName() + "-calendarpanel-weeknumber";
                String weekCssClass = baseCssClass;

                int weekNumber = DateTimeService.getISOWeekNumber(curr);

                days.setHTML(weekOfMonth, 0,
                        "<span class=\"" + weekCssClass + "\"" + ">" + weekNumber + "</span>");
            }
            curr.setDate(curr.getDate() + 1);
        }
    }
}

From source file:com.vaadin.client.ui.VCalendarPanel.java

License:Apache License

/**
 * Sets the selection highlight to a given day in the current view
 * // w  w w.jav a 2s.c  om
 * @param date
 *            A Date representing the day of month to be selected. Must be
 *            one of the days currently visible.
 * 
 */
private void selectDate(Date date) {
    if (selectedDay != null) {
        selectedDay.removeStyleDependentName(CN_SELECTED);
        Roles.getGridcellRole().removeAriaSelectedState(selectedDay.getElement());
    }

    int rowCount = days.getRowCount();
    for (int i = 0; i < rowCount; i++) {
        int cellCount = days.getCellCount(i);
        for (int j = 0; j < cellCount; j++) {
            Widget widget = days.getWidget(i, j);
            if (widget != null && widget instanceof Day) {
                Day curday = (Day) widget;
                if (curday.getDate().equals(date)) {
                    curday.addStyleDependentName(CN_SELECTED);
                    selectedDay = curday;
                    Roles.getGridcellRole().setAriaSelectedState(selectedDay.getElement(), SelectedValue.TRUE);
                    return;
                }
            }
        }
    }
}

From source file:com.vaadin.client.ui.VCalendarPanel.java

License:Apache License

/**
 * Builds the day and time selectors of the calendar.
 *///from w w w .j av  a  2 s .c  o m
private void buildCalendarBody() {

    final int weekColumn = 0;
    final int firstWeekdayColumn = 1;
    final int headerRow = 0;

    setWidget(1, 0, days);
    setCellPadding(0);
    setCellSpacing(0);
    getFlexCellFormatter().setColSpan(1, 0, 5);
    getFlexCellFormatter().setStyleName(1, 0, parent.getStylePrimaryName() + "-calendarpanel-body");

    days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-week");
    days.setHTML(headerRow, weekColumn, "<strong></strong>");
    // Hide the week column if week numbers are not to be displayed.
    days.getFlexCellFormatter().setVisible(headerRow, weekColumn, isShowISOWeekNumbers());

    days.getRowFormatter().setStyleName(headerRow, parent.getStylePrimaryName() + "-calendarpanel-weekdays");

    if (isShowISOWeekNumbers()) {
        days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "v-first");
        days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "");
        days.getRowFormatter().addStyleName(headerRow,
                parent.getStylePrimaryName() + "-calendarpanel-weeknumbers");
    } else {
        days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "");
        days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn, "v-first");
    }

    days.getFlexCellFormatter().setStyleName(headerRow, firstWeekdayColumn + 6, "v-last");

    // Print weekday names
    final int firstDay = getDateTimeService().getFirstDayOfWeek();
    for (int i = 0; i < 7; i++) {
        int day = i + firstDay;
        if (day > 6) {
            day = 0;
        }
        if (getResolution().getCalendarField() > Resolution.MONTH.getCalendarField()) {
            days.setHTML(headerRow, firstWeekdayColumn + i,
                    "<strong>" + getDateTimeService().getShortDay(day) + "</strong>");
        } else {
            days.setHTML(headerRow, firstWeekdayColumn + i, "");
        }

        Roles.getColumnheaderRole().set(days.getCellFormatter().getElement(headerRow, firstWeekdayColumn + i));
    }

    // Zero out hours, minutes, seconds, and milliseconds to compare dates
    // without time part
    final Date tmp = new Date();
    final Date today = new Date(tmp.getYear(), tmp.getMonth(), tmp.getDate());

    final Date selectedDate = value == null ? null
            : new Date(value.getYear(), value.getMonth(), value.getDate());

    final int startWeekDay = getDateTimeService().getStartWeekDay(displayedMonth);
    final Date curr = (Date) displayedMonth.clone();
    // Start from the first day of the week that at least partially belongs
    // to the current month
    curr.setDate(1 - startWeekDay);

    // No month has more than 6 weeks so 6 is a safe maximum for rows.
    for (int weekOfMonth = 1; weekOfMonth < 7; weekOfMonth++) {
        for (int dayOfWeek = 0; dayOfWeek < 7; dayOfWeek++) {

            // Actually write the day of month
            Date dayDate = (Date) curr.clone();
            Day day = new Day(dayDate);

            day.setStyleName(parent.getStylePrimaryName() + "-calendarpanel-day");

            if (!isDateInsideRange(dayDate, Resolution.DAY)) {
                day.addStyleDependentName(CN_OUTSIDE_RANGE);
            }

            if (curr.equals(selectedDate)) {
                day.addStyleDependentName(CN_SELECTED);
                Roles.getGridcellRole().setAriaSelectedState(day.getElement(), SelectedValue.TRUE);
                selectedDay = day;
            }
            if (curr.equals(today)) {
                day.addStyleDependentName(CN_TODAY);
            }
            if (curr.equals(focusedDate)) {
                focusedDay = day;
                if (hasFocus) {
                    day.addStyleDependentName(CN_FOCUSED);
                }
            }
            if (curr.getMonth() != displayedMonth.getMonth()) {
                day.addStyleDependentName(CN_OFFMONTH);
            }

            days.setWidget(weekOfMonth, firstWeekdayColumn + dayOfWeek, day);
            Roles.getGridcellRole()
                    .set(days.getCellFormatter().getElement(weekOfMonth, firstWeekdayColumn + dayOfWeek));

            // ISO week numbers if requested
            days.getCellFormatter().setVisible(weekOfMonth, weekColumn, isShowISOWeekNumbers());

            if (isShowISOWeekNumbers()) {
                final String baseCssClass = parent.getStylePrimaryName() + "-calendarpanel-weeknumber";
                String weekCssClass = baseCssClass;

                int weekNumber = DateTimeService.getISOWeekNumber(curr);

                days.setHTML(weekOfMonth, 0,
                        "<span class=\"" + weekCssClass + "\"" + ">" + weekNumber + "</span>");
            }
            curr.setDate(curr.getDate() + 1);
        }
    }
}

From source file:com.vaadin.v7.client.ui.VTree.java

License:Apache License

/**
 * Sets the node currently in focus/*from ww  w . j  a v  a2s. c  om*/
 *
 * @param node
 *            The node to focus or null to remove the focus completely
 * @param scrollIntoView
 *            Scroll the node into view
 */
public void setFocusedNode(TreeNode node, boolean scrollIntoView) {
    // Unfocus previously focused node
    if (focusedNode != null) {
        focusedNode.setFocused(false);

        Roles.getTreeRole().removeAriaActivedescendantProperty(focusedNode.getElement());
    }

    if (node != null) {
        node.setFocused(true);
        Roles.getTreeitemRole().setAriaSelectedState(node.getElement(), SelectedValue.TRUE);

        /*
         * FIXME: This code needs to be changed when the keyboard navigation
         * doesn't immediately trigger a selection change anymore.
         *
         * Right now this function is called before and after the Tree is
         * rebuilt when up/down arrow keys are pressed. This leads to the
         * problem, that the newly selected item is announced too often with
         * a screen reader.
         *
         * Behaviour is different when using the Tree with and without
         * screen reader.
         */
        if (node.key.equals(lastNodeKey)) {
            Roles.getTreeRole().setAriaActivedescendantProperty(getFocusElement(), Id.of(node.getElement()));
        } else {
            lastNodeKey = node.key;
        }
    }

    focusedNode = node;

    if (node != null && scrollIntoView) {
        /*
         * Delay scrolling the focused node into view if we are still
         * rendering. #5396
         */
        if (!rendering) {
            node.scrollIntoView();
        } else {
            Scheduler.get().scheduleDeferred(new Command() {
                @Override
                public void execute() {
                    focusedNode.scrollIntoView();
                }
            });
        }
    }
}

From source file:gov.wa.wsdot.mobile.client.activities.borderwait.BorderWaitViewGwtImpl.java

License:Open Source License

private void accessibilityShowNorth() {
    Roles.getMainRole().setAriaHiddenState(northPanel.getElement(), false);
    Roles.getMainRole().setAriaHiddenState(southPanel.getElement(), true);

    Roles.getTabRole().setAriaSelectedState(northTab.getElement(), SelectedValue.TRUE);
    Roles.getTabRole().setAriaSelectedState(southTab.getElement(), SelectedValue.FALSE);
}

From source file:gov.wa.wsdot.mobile.client.activities.borderwait.BorderWaitViewGwtImpl.java

License:Open Source License

private void accessibilityShowSouth() {
    Roles.getMainRole().setAriaHiddenState(northPanel.getElement(), true);
    Roles.getMainRole().setAriaHiddenState(southPanel.getElement(), false);

    Roles.getTabRole().setAriaSelectedState(northTab.getElement(), SelectedValue.FALSE);
    Roles.getTabRole().setAriaSelectedState(southTab.getElement(), SelectedValue.TRUE);
}