Example usage for com.google.gwt.gen2.table.client ScrollTable setColumnSortable

List of usage examples for com.google.gwt.gen2.table.client ScrollTable setColumnSortable

Introduction

In this page you can find the example usage for com.google.gwt.gen2.table.client ScrollTable setColumnSortable.

Prototype

public void setColumnSortable(int column, boolean sortable) 

Source Link

Document

Enable or disable sorting on a specific column.

Usage

From source file:edu.caltech.ipac.firefly.ui.table.TableOptions.java

private ScrollTable makeColsTable(final BasicPagingTable table) {

    final FixedWidthFlexTable header = new FixedWidthFlexTable();
    header.setHTML(0, 0, "Column");
    header.setWidget(0, 1, selectAllCheckBox);
    selectAllCheckBox.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent ev) {
            boolean hasSel = false;
            for (Map.Entry<ColDef, CheckBox> entry : checkBoxes.entrySet()) {
                if (entry.getValue().getValue()) {
                    hasSel = true;//  ww w  .  j  a v a  2s  .co m
                    break;
                }
            }

            if (selectAllCheckBox.getValue() && !hasSel) {
                for (Map.Entry<ColDef, CheckBox> entry : checkBoxes.entrySet()) {
                    entry.getValue().setValue(true);
                }
            } else {
                for (Map.Entry<ColDef, CheckBox> entry : checkBoxes.entrySet()) {
                    entry.getValue().setValue(false);
                }
                selectAllCheckBox.setValue(false);
            }
            applyChanges();
        }
    });

    //        final SortableGrid.ColumnSorter[] origSorter = new SortableGrid.ColumnSorter[1];
    @SuppressWarnings("deprecation")
    final FixedWidthGrid data = new FixedWidthGrid(0, 2);
    data.unsinkEvents(Event.ONMOUSEOVER);
    data.setSelectionEnabled(false);

    final ScrollTable view = new ScrollTable(data, header, new BasicTable.Images());
    FlexTable.FlexCellFormatter formatter = header.getFlexCellFormatter();
    formatter.setHorizontalAlignment(0, 1, HasHorizontalAlignment.ALIGN_CENTER);
    view.setMaximumColumnWidth(1, 35);
    view.setMinimumColumnWidth(1, 35);
    view.setColumnSortable(1, false);

    final DefaultTableDefinition<TableData.Row> tdef = (DefaultTableDefinition<TableData.Row>) table
            .getTableDefinition();
    int cRowIdx = 0;
    for (int i = 0; i < tdef.getColumnDefinitionCount(); i++) {
        final ColDef col = (ColDef) tdef.getColumnDefinition(i);
        if (!col.isImmutable()) {
            data.insertRow(cRowIdx);
            data.setHTML(cRowIdx, 0, col.getTitle());

            CheckBox cb = new CheckBox();
            cb.setValue(tdef.isColumnVisible(col));
            checkBoxes.put(col, cb);
            data.setWidget(cRowIdx, 1, cb);
            data.getCellFormatter().setAlignment(cRowIdx, 1, HasHorizontalAlignment.ALIGN_CENTER,
                    HasVerticalAlignment.ALIGN_MIDDLE);
            cRowIdx++;

            cb.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    applyChanges();
                }
            });
        }
    }

    return view;
}