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

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

Introduction

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

Prototype

public static ColumnheaderRole getColumnheaderRole() 

Source Link

Usage

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

License:Apache License

/**
 * Builds the day and time selectors of the calendar.
 *///from www.ja 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, 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.VAbstractCalendarPanel.java

License:Apache License

/**
 * Builds the day and time selectors of the calendar.
 *///from  w  ww.jav  a  2s.  co  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

/**
 * Builds the day and time selectors of the calendar.
 *//*from ww  w.j  ava2  s. co  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:org.unitime.timetable.gwt.client.widgets.UniTimeTable.java

License:Apache License

public void setRow(int row, T data, List<? extends Widget> widgets) {
    SmartTableRow<T> oldRow = getSmartRow(row);
    if (oldRow != null && oldRow.getData() != null) {
        DataChangedEvent<T> event = new DataChangedEvent<T>(oldRow.getData(), row);
        for (DataChangedListener<T> listener : iDataChangedListeners)
            listener.onDataRemoved(event);
    }//w w w . j  a  v a 2s .com
    SmartTableRow smartRow = new SmartTableRow(data);
    int col = 0, x = 0;
    for (Widget widget : widgets) {
        SmartTableCell cell = new SmartTableCell(smartRow, widget);
        int colspan = 1;
        if (widget instanceof HasColSpan) {
            colspan = ((HasColSpan) widget).getColSpan();
            getFlexCellFormatter().setColSpan(row, col, colspan);
        }
        if (widget instanceof HasStyleName && ((HasStyleName) widget).getStyleName() != null)
            getFlexCellFormatter().setStyleName(row, col, ((HasStyleName) widget).getStyleName());
        if (widget instanceof HasAdditionalStyleNames) {
            List<String> styleNames = ((HasAdditionalStyleNames) widget).getAdditionalStyleNames();
            if (styleNames != null)
                for (String styleName : styleNames)
                    getFlexCellFormatter().addStyleName(row, col, styleName);
        }
        if (widget instanceof HasCellAlignment)
            getFlexCellFormatter().setHorizontalAlignment(row, col,
                    ((HasCellAlignment) widget).getCellAlignment());
        if (widget instanceof HasVerticalCellAlignment)
            getFlexCellFormatter().setVerticalAlignment(row, col,
                    ((HasVerticalCellAlignment) widget).getVerticalCellAlignment());
        if (widget instanceof HasColumn)
            ((HasColumn) widget).setColumn(col);
        setWidget(row, col, cell);
        if (widget instanceof UniTimeTableHeader) {
            Roles.getColumnheaderRole().set(getCellFormatter().getElement(row, col));
        } else {
            Roles.getGridcellRole().set(getCellFormatter().getElement(row, col));
        }
        x += colspan;
        if (row > 0) {
            if (colspan == 1) {
                getCellFormatter().setVisible(row, col, isColumnVisible(x - 1));
            } else {
                int span = 0;
                for (int h = x - colspan; h < x; h++)
                    if (isColumnVisible(h))
                        span++;
                getCellFormatter().setVisible(row, col, span > 0);
                getFlexCellFormatter().setColSpan(row, col, Math.max(1, span));
            }
        }
        col++;
    }
    Roles.getRowRole().set(getRowFormatter().getElement(row));
    if (data != null) {
        DataChangedEvent<T> event = new DataChangedEvent<T>(data, row);
        for (DataChangedListener<T> listener : iDataChangedListeners)
            listener.onDataInserted(event);
    }
}

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

License:Apache License

public void setHeader(Row... header) {
    iHeader = header;//from   w w  w.  j av a  2 s .  c  om
    for (int i = 0; i < header.length; i++) {
        for (int j = 0; j < header[i].getNrCells(); j++) {
            Cell cell = header[i].getCell(j);
            if (cell.getWidget() == null) {
                iTable.setHTML(i, j,
                        (cell.getValue() == null || cell.getValue().isEmpty() ? "&nbsp;" : cell.getValue()));
                if (cell.getAriaLabel() != null && !cell.getAriaLabel().isEmpty())
                    Roles.getGridcellRole().setAriaLabelProperty(iTable.getCellFormatter().getElement(i, j),
                            cell.getAriaLabel());
            } else
                iTable.setWidget(i, j, cell.getWidget());
            iTable.getFlexCellFormatter().setWordWrap(i, j, cell.getWordWrap());
            iTable.getFlexCellFormatter().setStyleName(i, j,
                    (cell.getStyleName() == null ? "unitime-TableHeader" : cell.getStyleName()));
            iTable.getFlexCellFormatter().setWidth(i, j,
                    (cell.getWidth() == null ? (100 / header.length) + "%" : cell.getWidth()));
            iTable.getFlexCellFormatter().setColSpan(i, j, cell.getColSpan());
            iTable.getFlexCellFormatter().setVerticalAlignment(i, j, cell.getVerticalAlignment());
            iTable.getFlexCellFormatter().setHorizontalAlignment(i, j, cell.getHorizontalAlignment());
            iTable.getFlexCellFormatter().getElement(i, j).setTitle(cell.getTitle());
            Roles.getColumnheaderRole().set(iTable.getCellFormatter().getElement(i, j));
        }
        Roles.getRowRole().set(iTable.getRowFormatter().getElement(i));

        if (header[i].getAriaLabel() != null && !header[i].getAriaLabel().isEmpty()) {
            iTable.setWidget(i, header[i].getNrCells(), new AriaHiddenLabel(header[i].getAriaLabel()));
        } else {
            iTable.setHTML(i, header[i].getNrCells(), "");
        }
        Roles.getRowheaderRole().set(iTable.getCellFormatter().getElement(i, header[i].getNrCells()));
        iTable.getFlexCellFormatter().setStyleName(i, header[i].getNrCells(), "unitime-TableHeader");
        iTable.getFlexCellFormatter().addStyleName(i, header[i].getNrCells(), "rowheader");
    }
}