Example usage for com.google.gwt.user.cellview.client AbstractCellTable getColumnSortList

List of usage examples for com.google.gwt.user.cellview.client AbstractCellTable getColumnSortList

Introduction

In this page you can find the example usage for com.google.gwt.user.cellview.client AbstractCellTable getColumnSortList.

Prototype

public ColumnSortList getColumnSortList() 

Source Link

Document

Get the ColumnSortList that specifies which columns are sorted.

Usage

From source file:com.bearsoft.gwt.ui.widgets.grid.builders.ThemedHeaderOrFooterBuilder.java

@Override
protected boolean buildHeaderOrFooterImpl() {
    AbstractCellTable<T> table = getTable();
    boolean isFooter = isBuildingFooter();

    int columnCount = table.getColumnCount();
    if (columnCount > 0) {
        // Early exit if there aren't any headers or footers in the columns
        // to render.
        boolean hasHeadersOrFooters = false;
        for (int i = 0; i < columnCount; i++) {
            if (getHeader(i) != null) {
                hasHeadersOrFooters = true;
                break;
            }/*ww w .j  a va 2 s  . c o  m*/
        }
        if (hasHeadersOrFooters) {
            List<HeaderNode<T>> headersForest;
            if (headerNodes == null) {
                headersForest = new ArrayList<>();
                for (int curColumn = 0; curColumn < columnCount; curColumn++) {
                    Header<?> headerOrFooter = getHeader(curColumn);
                    HeaderNode<T> hn = new HeaderNode<T>();
                    hn.setHeader((Header<String>) headerOrFooter);
                    headersForest.add(hn);
                }
            } else {
                headersForest = headerNodes;
            }
            // Get information about the sorted columns.
            ColumnSortList sortList;
            if (sortListHolder != null) {
                sortList = sortListHolder.getSortList();
            } else {
                sortList = table.getColumnSortList();
            }
            Map<Column<T, ?>, ColumnSortList.ColumnSortInfo> sortedColumns = new HashMap<>();
            if (sortList != null) {
                for (int i = 0; i < sortList.size(); i++) {
                    ColumnSortList.ColumnSortInfo sInfo = sortList.get(i);
                    sortedColumns.put((Column<T, ?>) sInfo.getColumn(), sInfo);
                }
            }
            buildNodes(headersForest, sortedColumns);
            return true;
        } else {
            // No headers to render;
            return false;
        }
    } else {
        // Nothing to render;
        return false;
    }
}

From source file:com.github.gwtbootstrap.showcase.client.CellTables.java

License:Apache License

private void initTable(AbstractCellTable<Person> exampleTable, final SimplePager pager,
        final Pagination pagination) {
    exampleTable.setEmptyTableWidget(new Label("Please add data."));

    TextColumn<Person> idCol = new TextColumn<Person>() {

        @Override//from   ww w.ja va 2 s .  com
        public String getValue(Person object) {
            return String.valueOf(object.getId());
        }
    };

    idCol.setSortable(true);

    exampleTable.addColumn(idCol, "#");

    ListHandler<Person> idColHandler = new ListHandler<Person>(dataProvider.getList());

    idColHandler.setComparator(idCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getId().compareTo(o2.getId());
        }
    });

    exampleTable.addColumnSortHandler(idColHandler);

    exampleTable.getColumnSortList().push(idCol);

    TextColumn<Person> userNameCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getUserName();
        }
    };
    userNameCol.setSortable(true);
    exampleTable.addColumn(userNameCol, "User Name");

    ListHandler<Person> userNameColHandler = new ListHandler<Person>(dataProvider.getList());

    userNameColHandler.setComparator(userNameCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getUserName().compareTo(o2.getUserName());
        }
    });

    exampleTable.addColumnSortHandler(userNameColHandler);

    TextColumn<Person> ageCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getAge() != null ? String.valueOf(object.getAge()) : "";
        }
    };
    ageCol.setSortable(true);
    exampleTable.addColumn(ageCol, "Age");

    ListHandler<Person> ageColHandler = new ListHandler<Person>(dataProvider.getList());

    ageColHandler.setComparator(ageCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            if (o2.getAge() == null) {
                return 1;
            }

            if (o1.getAge() == null) {
                return -1;
            }
            return o1.getAge().compareTo(o2.getAge());
        }
    });

    exampleTable.addColumnSortHandler(ageColHandler);

    TextColumn<Person> birthDayCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            if (object.getBirthDay() != null) {
                return DateTimeFormat.getFormat("dd/MM/yyyy").format(object.getBirthDay());
            } else {
                return "";
            }
        }
    };

    exampleTable.addColumn(birthDayCol, "Birth Day");

    birthDayCol.setSortable(true);

    ListHandler<Person> birthDayColHandler = new ListHandler<Person>(dataProvider.getList());
    birthDayColHandler.setComparator(birthDayCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            if (o2.getBirthDay() == null) {
                return 1;
            }

            if (o1.getBirthDay() == null) {
                return -1;
            }

            return o1.getBirthDay().compareTo(o2.getBirthDay());
        }
    });

    exampleTable.addColumnSortHandler(birthDayColHandler);

    TextColumn<Person> favoriteCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getFavorite().getDisplayLabel();
        }
    };

    favoriteCol.setSortable(true);
    exampleTable.addColumn(favoriteCol, "Favorite");

    ListHandler<Person> favoriteColHandler = new ListHandler<Person>(dataProvider.getList());

    favoriteColHandler.setComparator(favoriteCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getFavorite().compareTo(o2.getFavorite());
        }
    });

    exampleTable.addColumnSortHandler(favoriteColHandler);

    exampleTable.addRangeChangeHandler(new RangeChangeEvent.Handler() {

        @Override
        public void onRangeChange(RangeChangeEvent event) {
            rebuildPager(pagination, pager);
        }
    });

    ButtonCell buttonCell = new ButtonCell(IconType.REMOVE, ButtonType.DANGER);

    final TooltipCellDecorator<String> decorator = new TooltipCellDecorator<String>(buttonCell);
    decorator.setText("delete row, if click");

    Column<Person, String> buttonCol = new Column<Person, String>(decorator) {

        @Override
        public String getValue(Person object) {
            return "delete";
        }
    };

    buttonCol.setFieldUpdater(new FieldUpdater<Person, String>() {

        @Override
        public void update(int index, Person object, String value) {
            dataProvider.getList().remove(object);
            dataProvider.flush();
            dataProvider.refresh();
            rebuildPager(pagination, pager);
            rebuildPager(dataGridPagination, dataGridPager);

        }
    });

    exampleTable.addColumn(buttonCol);

    final SingleSelectionModel<Person> selectionModel = new SingleSelectionModel<Person>();

    selectionModel.addSelectionChangeHandler(new Handler() {

        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            Person person = selectionModel.getSelectedObject();

            CellTables.this.driver.edit(person);
        }
    });

    exampleTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION);

    exampleTable.setSelectionModel(selectionModel);

    pager.setDisplay(exampleTable);

    pagination.clear();

    dataProvider.addDataDisplay(exampleTable);
}

From source file:com.github.gwtbootstrap.showcase.client.forms.CellTables.java

License:Apache License

private void initTable(AbstractCellTable<Person> exampleTable, final SimplePager pager,
        final Pagination pagination) {
    exampleTable.setEmptyTableWidget(new Label("Please add data."));

    TextColumn<Person> idCol = new TextColumn<Person>() {

        @Override/*from  ww w  . j ava 2  s.c o m*/
        public String getValue(Person object) {
            return String.valueOf(object.getId());
        }
    };

    idCol.setSortable(true);

    exampleTable.addColumn(idCol, "#");

    ListHandler<Person> idColHandler = new ListHandler<Person>(dataProvider.getList());

    idColHandler.setComparator(idCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getId().compareTo(o2.getId());
        }
    });

    exampleTable.addColumnSortHandler(idColHandler);

    exampleTable.getColumnSortList().push(idCol);

    TextColumn<Person> userNameCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getUserName();
        }
    };
    userNameCol.setSortable(true);
    exampleTable.addColumn(userNameCol, "User Name");

    ListHandler<Person> userNameColHandler = new ListHandler<Person>(dataProvider.getList());

    userNameColHandler.setComparator(userNameCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getUserName().compareTo(o2.getUserName());
        }
    });

    exampleTable.addColumnSortHandler(userNameColHandler);

    TextColumn<Person> ageCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getAge() != null ? String.valueOf(object.getAge()) : "";
        }
    };
    ageCol.setSortable(true);
    exampleTable.addColumn(ageCol, "Age");

    ListHandler<Person> ageColHandler = new ListHandler<Person>(dataProvider.getList());

    ageColHandler.setComparator(ageCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            if (o2.getAge() == null) {
                return 1;
            }

            if (o1.getAge() == null) {
                return -1;
            }
            return o1.getAge().compareTo(o2.getAge());
        }
    });

    exampleTable.addColumnSortHandler(ageColHandler);

    TextColumn<Person> birthDayCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            if (object.getBirthDay() != null) {
                return DateTimeFormat.getFormat("dd/MM/yyyy").format(object.getBirthDay());
            } else {
                return "";
            }
        }
    };

    exampleTable.addColumn(birthDayCol, "Birth Day");

    birthDayCol.setSortable(true);

    ListHandler<Person> birthDayColHandler = new ListHandler<Person>(dataProvider.getList());
    birthDayColHandler.setComparator(birthDayCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            if (o2.getBirthDay() == null) {
                return 1;
            }

            if (o1.getBirthDay() == null) {
                return -1;
            }

            return o1.getBirthDay().compareTo(o2.getBirthDay());
        }
    });

    exampleTable.addColumnSortHandler(birthDayColHandler);

    TextColumn<Person> favoriteCol = new TextColumn<Person>() {

        @Override
        public String getValue(Person object) {
            return object.getFavorite().getDisplayLabel();
        }
    };

    favoriteCol.setSortable(true);
    exampleTable.addColumn(favoriteCol, "Favorite");

    ListHandler<Person> favoriteColHandler = new ListHandler<Person>(dataProvider.getList());

    favoriteColHandler.setComparator(favoriteCol, new Comparator<Person>() {

        @Override
        public int compare(Person o1, Person o2) {
            return o1.getFavorite().compareTo(o2.getFavorite());
        }
    });

    exampleTable.addColumnSortHandler(favoriteColHandler);

    exampleTable.addRangeChangeHandler(new RangeChangeEvent.Handler() {

        @Override
        public void onRangeChange(RangeChangeEvent event) {
            rebuildPager(pagination, pager);
        }
    });

    pager.setDisplay(exampleTable);

    pagination.clear();

    dataProvider.addDataDisplay(exampleTable);
}

From source file:org.roda.wui.common.client.widgets.wcag.AccessibleHeaderOrFooterBuilder.java

@Override
protected boolean buildHeaderOrFooterImpl() {
    AbstractCellTable<T> table = getTable();
    boolean isFooter = isBuildingFooter();

    // Early exit if there aren't any columns to render.
    int columnCount = table.getColumnCount();
    if (columnCount == 0) {
        // Nothing to render
        return false;
    }// www  .  jav  a2  s .co  m

    // Early exit if there aren't any headers in the columns to render.
    boolean hasHeader = false;
    for (int i = 0; i < columnCount; i++) {
        if (getHeader(i) != null) {
            hasHeader = true;
            break;
        }
    }
    if (!hasHeader) {
        return false;
    }

    // Get information about the sorted column.
    ColumnSortList sortList = table.getColumnSortList();
    ColumnSortInfo sortedInfo = (sortList.size() == 0) ? null : sortList.get(0);
    Column<?, ?> sortedColumn = (sortedInfo == null) ? null : sortedInfo.getColumn();
    boolean isSortAscending = (sortedInfo == null) ? false : sortedInfo.isAscending();

    // Get the common style names.
    Style style = getTable().getResources().style();
    String className = isBuildingFooter() ? style.footer() : style.header();
    String sortableStyle = " " + style.sortableHeader();
    String sortedStyle = " "
            + (isSortAscending ? style.sortedHeaderAscending() : style.sortedHeaderDescending());

    // Setup the first column.
    Header<?> prevHeader = getHeader(0);
    Column<T, ?> column = getTable().getColumn(0);
    int prevColspan = 1;
    boolean isSortable = false;
    boolean isSorted = false;
    StringBuilder classesBuilder = new StringBuilder(className);
    classesBuilder.append(" " + (isFooter ? style.firstColumnFooter() : style.firstColumnHeader()));
    if (!isFooter && column.isSortable()) {
        isSortable = true;
        isSorted = (column == sortedColumn);
    }

    // Loop through all column headers.
    TableRowBuilder tr = startRow();
    int curColumn;
    for (curColumn = 1; curColumn < columnCount; curColumn++) {
        Header<?> header = getHeader(curColumn);

        if (header != prevHeader) {
            // The header has changed, so append the previous one.
            if (isSortable) {
                classesBuilder.append(sortableStyle);
            }
            if (isSorted) {
                classesBuilder.append(sortedStyle);
            }
            appendExtraStyles(prevHeader, classesBuilder);

            // Render the header.
            TableCellBuilder th = tr.startTH().colSpan(prevColspan).className(classesBuilder.toString());
            enableColumnHandlers(th, column);
            if (prevHeader != null) {
                // Build the header.
                Context context = new Context(0, curColumn - prevColspan, prevHeader.getKey());
                // Add div element with aria button role
                if (isSortable) {
                    // TODO: Figure out aria-label and translation of label text
                    th.attribute("role", "button");
                    th.tabIndex(-1);
                }
                updatedRenderSortableHeader(th, context, prevHeader, isSorted, isSortAscending);
            }
            th.endTH();

            // Reset the previous header.
            prevHeader = header;
            prevColspan = 1;
            classesBuilder = new StringBuilder(className);
            isSortable = false;
            isSorted = false;
        } else {
            // Increment the colspan if the headers == each other.
            prevColspan++;
        }

        // Update the sorted state.
        column = table.getColumn(curColumn);
        if (!isFooter && column.isSortable()) {
            isSortable = true;
            isSorted = (column == sortedColumn);
        }
    }

    // Append the last header.
    if (isSortable) {
        classesBuilder.append(sortableStyle);
    }
    if (isSorted) {
        classesBuilder.append(sortedStyle);
    }

    // The first and last columns could be the same column.
    classesBuilder.append(" ").append(isFooter ? style.lastColumnFooter() : style.lastColumnHeader());
    appendExtraStyles(prevHeader, classesBuilder);

    // Render the last header.
    TableCellBuilder th = tr.startTH().colSpan(prevColspan).className(classesBuilder.toString());
    enableColumnHandlers(th, column);
    if (prevHeader != null) {
        Context context = new Context(0, curColumn - prevColspan, prevHeader.getKey());
        updatedRenderSortableHeader(th, context, prevHeader, isSorted, isSortAscending);
    }
    th.endTH();

    // End the row.
    tr.endTR();

    return true;
}