Example usage for com.google.gwt.user.cellview.client Column setSortable

List of usage examples for com.google.gwt.user.cellview.client Column setSortable

Introduction

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

Prototype

public void setSortable(boolean sortable) 

Source Link

Document

Set whether or not the column can be sorted.

Usage

From source file:com.google.gwt.sample.showcase.client.content.cell.CwDataGrid.java

License:Apache License

/**
 * Add the columns to the table.//from w  w  w. j  av a 2 s. c om
 */
@ShowcaseSource
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        ListHandler<ContactInfo> sortHandler) {
    // Checkbox column. This table will uses a checkbox column for selection.
    // Alternatively, you can call dataGrid.setSelectionEnabled(true) to enable
    // mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    dataGrid.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    dataGrid.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    };
    firstNameColumn.setSortable(true);
    sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getFirstName().compareTo(o2.getFirstName());
        }
    });
    dataGrid.addColumn(firstNameColumn, constants.cwDataGridColumnFirstName());
    firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setFirstName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(firstNameColumn, 20, Unit.PCT);

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(lastNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getLastName().compareTo(o2.getLastName());
        }
    });
    dataGrid.addColumn(lastNameColumn, constants.cwDataGridColumnLastName());
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(lastNameColumn, 20, Unit.PCT);

    // Age.
    Column<ContactInfo, Number> ageColumn = new Column<ContactInfo, Number>(new NumberCell()) {
        @Override
        public Number getValue(ContactInfo object) {
            return object.getAge();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(ageColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getBirthday().compareTo(o2.getBirthday());
        }
    });
    Header<String> ageFooter = new Header<String>(new TextCell()) {
        @Override
        public String getValue() {
            List<ContactInfo> items = dataGrid.getVisibleItems();
            if (items.size() == 0) {
                return "";
            } else {
                int totalAge = 0;
                for (ContactInfo item : items) {
                    totalAge += item.getAge();
                }
                return "Avg: " + totalAge / items.size();
            }
        }
    };
    dataGrid.addColumn(ageColumn,
            new SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant(constants.cwDataGridColumnAge())), ageFooter);
    dataGrid.setColumnWidth(ageColumn, 7, Unit.EM);

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    dataGrid.addColumn(categoryColumn, constants.cwDataGridColumnCategory());
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });
    dataGrid.setColumnWidth(categoryColumn, 130, Unit.PX);

    // Address.
    Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>(new TextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    };
    addressColumn.setSortable(true);
    sortHandler.setComparator(addressColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getAddress().compareTo(o2.getAddress());
        }
    });
    dataGrid.addColumn(addressColumn, constants.cwDataGridColumnAddress());
    dataGrid.setColumnWidth(addressColumn, 60, Unit.PCT);
}

From source file:com.gwtmodel.table.view.table.PresentationTable.java

License:Apache License

@SuppressWarnings("unchecked")
private void createHeader() {
    if (model == null) {
        return;//from w w w .  j  a  v a  2s.  c  om
    }
    if (columnC) {
        return;
    }
    // 2015/05/01
    while (table.getColumnCount() > 0)
        table.removeColumn(0);
    VListHeaderContainer vo = model.getHeaderList();
    if (!CUtil.EmptyS(vo.getWidthDef())) {
        table.setWidth(vo.getWidthDef(), true);
    }
    List<VListHeaderDesc> li = vo.getVisHeList();
    int colNo = 0;
    for (VListHeaderDesc he : li) {
        boolean editable = he.isEditable();
        @SuppressWarnings("rawtypes")
        Header header = null;
        @SuppressWarnings("rawtypes")
        Column co = null;
        if (he.getgHeader() != null) {
            header = he.getgHeader().getHeader();
            co = he.getgHeader().getColumn();
            if (co == null) {
                co = new RawColumn(he.getFie());
            }
            // table.addColumn(co, header);
            // continue;
        }
        if (co == null) {
            FieldDataType fType = he.getFie().getType();
            if (he.getButtonAction() != null) {
                co = fa.constructActionButtonCell(he.getButtonAction(), he.getFie(), fType,
                        new AttachClass(he.getFie()));
            } else if (fType.isConvertableToString()) {
                if (editable) {
                    co = faEdit.constructEditTextCol(he);
                } else {
                    co = new TColumnString(he.getFie(), fType);
                }
            } else {
                switch (fType.getType()) {
                case LONG:
                case BIGDECIMAL:
                case INT:
                    if (editable) {
                        co = faEdit.constructNumberCol(he);
                    } else {
                        co = fa.constructNumberCol(he.getFie());
                    }
                    break;
                case DATE:
                    if (editable) {
                        co = faEdit.constructDateEditCol(he);
                    } else {
                        co = fa.constructDateEditCol(he.getFie());
                    }
                    break;
                case BOOLEAN:
                    if (editable) {
                        co = faEdit.contructBooleanCol(he.getFie(), !selectEnabled());
                    } else {
                        co = fa.contructBooleanCol(he.getFie());
                    }
                    break;
                default:
                    if (editable || he.isImageCol()) {
                        co = faEdit.constructEditTextCol(he);
                    } else {
                        co = fa.constructTextCol(he.getFie(), he);
                    }
                    break;
                }
            }
            co.setSortable(true);
            // align
            switch (AlignCol.getCo(he.getAlign(), he.getFie().getType())) {
            case LEFT:
                co.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
                break;
            case RIGHT:
                co.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
                break;
            case CENTER:
                co.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
                break;
            }
        }
        // col width
        String width = he.getColWidth();
        if (!CUtil.EmptyS(width)) {
            String[] pa = width.split(";");
            if (pa.length == 1) {
                table.setColumnWidth(co, pa[0]);
            } else {
                double wi;
                try {
                    wi = DecimalUtils.toDouble(pa[0]);
                } catch (NumberFormatException e) {
                    String info = LogT.getT().InproperWidthInColumn(he.getHeaderString(), pa[0]);
                    LogT.errorLogE(info, e);
                    return;
                }
                Style.Unit u;
                try {
                    u = Style.Unit.valueOf(pa[1]);
                } catch (IllegalArgumentException e) {
                    String info = LogT.getT().InproperColumnUnit(he.getHeaderString(), pa[1]);
                    LogT.errorLogE(info, e);
                    return;
                }
                table.setColumnWidth(co, wi, u);
            }
        }
        //
        if (header == null && (he.isHidden() || he.getHeaderString() == null)) {
            // Important: for some reason the assert violation cause
            // breaking without Exception throwing
            // So additional error alert is displayed to avoid confusion
            Utils.errAlert(he.getFie().getId(), LogT.getT().HeaderNull());
            assert !he.isHidden() && he.getHeaderString() != null : LogT.getT().cannotBeNull();
        }

        VFooterDesc footer = null;
        if (vo.getFoList() != null) {
            for (VFooterDesc fo : vo.getFoList()) {
                if (fo.getFie().eq(he.getFie())) {
                    footer = fo;
                    break;
                }
            }
        }

        if (header == null) {
            header = footFactory.constructHeader(he, editable);
        }
        if (he.getHeaderClass() != null)
            header.setHeaderStyleNames(he.getHeaderClass());
        if (footer != null) {
            table.addColumn(co, header, footFactory.constructFooter(footer));
        } else {
            // table.addColumn(co, he.getHeaderString());
            table.addColumn(co, header);
        }

        if (!async) {
            ListHandler<MutableInteger> columnSortHandler = new ListHandler<MutableInteger>(
                    dProvider.getList());
            columnSortHandler.setComparator(co, new CoComparator(he));
            table.addColumnSortHandler(columnSortHandler);
        } else {
            ColumnSortEvent.AsyncHandler sortHandler = new ColumnSortEvent.AsyncHandler(table);
            table.addColumnSortHandler(sortHandler);
        }
        // ColumnSortEvent.fire(myTable, myTable.getColumnSortList());
        // iMap.put(colNo, he);
        coV.addColDesc(colNo, he);
        colNo++;
    } // for
    columnC = true;
    setWrapCol();
    setSortCol();
}

From source file:com.jitlogic.zico.client.views.traces.TraceSearchPanel.java

License:Open Source License

private void createTraceGrid() {
    grid = new DataGrid<TraceInfo>(1024 * 1024, ZicoDataGridResources.INSTANCE, KEY_PROVIDER);
    selection = new SingleSelectionModel<TraceInfo>(KEY_PROVIDER);
    grid.setSelectionModel(selection);/*from ww w.  j ava 2  s  .c o m*/

    data = new ListDataProvider<TraceInfo>();
    data.addDataDisplay(grid);

    sortHandler = new ColumnSortEvent.ListHandler<TraceInfo>(data.getList());
    grid.addColumnSortHandler(sortHandler);

    Column<TraceInfo, TraceInfo> colExpander = new IdentityColumn<TraceInfo>(DETAIL_EXPANDER_CELL);
    grid.addColumn(colExpander, "#");
    grid.setColumnWidth(colExpander, 32, Style.Unit.PX);

    Column<TraceInfo, TraceInfo> colTraceClock = new IdentityColumn<TraceInfo>(TRACE_CLOCK_CELL);
    grid.addColumn(colTraceClock, new ResizableHeader<TraceInfo>("Clock", grid, colTraceClock));
    grid.setColumnWidth(colTraceClock, 140, Style.Unit.PX);

    colTraceClock.setSortable(true);
    sortHandler.setComparator(colTraceClock, new Comparator<TraceInfo>() {
        @Override
        public int compare(TraceInfo o1, TraceInfo o2) {
            return (int) (o1.getClock() - o2.getClock());
        }
    });

    Column<TraceInfo, TraceInfo> colTraceType = new IdentityColumn<TraceInfo>(TRACE_TYPE_CELL);
    grid.addColumn(colTraceType, new ResizableHeader<TraceInfo>("Type", grid, colTraceType));
    grid.setColumnWidth(colTraceType, 60, Style.Unit.PX);

    Column<TraceInfo, TraceInfo> colTraceDuration = new IdentityColumn<TraceInfo>(TRACE_DURATION_CELL);
    grid.addColumn(colTraceDuration, new ResizableHeader<TraceInfo>("Time", grid, colTraceDuration));
    grid.setColumnWidth(colTraceDuration, 64, Style.Unit.PX);
    colTraceDuration.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);

    colTraceDuration.setSortable(true);
    sortHandler.setComparator(colTraceDuration, new Comparator<TraceInfo>() {
        @Override
        public int compare(TraceInfo o1, TraceInfo o2) {
            return (int) ((o1.getExecutionTime() - o2.getExecutionTime()) / 1000000L);
        }
    });

    Column<TraceInfo, TraceInfo> colTraceCalls = new IdentityColumn<TraceInfo>(TRACE_CALLS_CELL);
    grid.addColumn(colTraceCalls, new ResizableHeader<TraceInfo>("Calls", grid, colTraceCalls));
    grid.setColumnWidth(colTraceCalls, 50, Style.Unit.PX);

    colTraceCalls.setSortable(true);
    sortHandler.setComparator(colTraceCalls, new Comparator<TraceInfo>() {
        @Override
        public int compare(TraceInfo o1, TraceInfo o2) {
            return (int) (o1.getCalls() - o2.getCalls());
        }
    });

    Column<TraceInfo, TraceInfo> colTraceErrors = new IdentityColumn<TraceInfo>(TRACE_ERRORS_CELL);
    grid.addColumn(colTraceErrors, new ResizableHeader<TraceInfo>("Errs", grid, colTraceErrors));
    grid.setColumnWidth(colTraceErrors, 50, Style.Unit.PX);

    colTraceErrors.setSortable(true);
    sortHandler.setComparator(colTraceErrors, new Comparator<TraceInfo>() {
        @Override
        public int compare(TraceInfo o1, TraceInfo o2) {
            return (int) (o1.getErrors() - o2.getErrors());
        }
    });

    Column<TraceInfo, TraceInfo> colTraceRecords = new IdentityColumn<TraceInfo>(TRACE_RECORDS_CELL);
    grid.addColumn(colTraceRecords, new ResizableHeader<TraceInfo>("Recs", grid, colTraceRecords));
    grid.setColumnWidth(colTraceRecords, 50, Style.Unit.PX);

    colTraceRecords.setSortable(true);
    sortHandler.setComparator(colTraceRecords, new Comparator<TraceInfo>() {
        @Override
        public int compare(TraceInfo o1, TraceInfo o2) {
            return (int) (o1.getRecords() - o2.getRecords());
        }
    });

    Column<TraceInfo, TraceInfo> colTraceDesc = new IdentityColumn<TraceInfo>(TRACE_NAME_CELL);
    grid.addColumn(colTraceDesc, "Description");
    grid.setColumnWidth(colTraceDesc, 100, Style.Unit.PCT);

    rowBuilder = new TraceSearchTableBuilder(grid, expandedDetails);
    grid.setTableBuilder(rowBuilder);

    grid.setSkipRowHoverStyleUpdate(true);
    grid.setSkipRowHoverFloatElementCheck(true);
    grid.setSkipRowHoverCheck(true);
    grid.setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.DISABLED);

    grid.addCellPreviewHandler(new CellPreviewEvent.Handler<TraceInfo>() {
        @Override
        public void onCellPreview(CellPreviewEvent<TraceInfo> event) {
            NativeEvent nev = event.getNativeEvent();
            String eventType = nev.getType();
            if ((BrowserEvents.KEYDOWN.equals(eventType) && nev.getKeyCode() == KeyCodes.KEY_ENTER)
                    || BrowserEvents.DBLCLICK.equals(nev.getType())) {
                selection.setSelected(event.getValue(), true);
                openDetailView();
            }
            if (BrowserEvents.CONTEXTMENU.equals(eventType)) {
                selection.setSelected(event.getValue(), true);
                if (selection.getSelectedObject() != null) {
                    contextMenu.setPopupPosition(event.getNativeEvent().getClientX(),
                            event.getNativeEvent().getClientY());
                    contextMenu.show();
                }
            }
        }
    });

    grid.addDomHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            event.preventDefault();
        }
    }, DoubleClickEvent.getType());
    grid.addDomHandler(new ContextMenuHandler() {
        @Override
        public void onContextMenu(ContextMenuEvent event) {
            event.preventDefault();
        }
    }, ContextMenuEvent.getType());
}

From source file:com.jitlogic.zico.client.views.traces.TraceStatsPanel.java

License:Open Source License

private void createTraceGrid() {
    grid = new DataGrid<TraceInfoStatsResult>(1024 * 1024, ZicoDataGridResources.INSTANCE, KEY_PROVIDER);
    selection = new SingleSelectionModel<TraceInfoStatsResult>(KEY_PROVIDER);
    grid.setSelectionModel(selection);/*ww  w .j a v a2 s .c  om*/

    data = new ListDataProvider<TraceInfoStatsResult>();
    data.addDataDisplay(grid);

    sortHandler = new ColumnSortEvent.ListHandler<TraceInfoStatsResult>(data.getList());
    grid.addColumnSortHandler(sortHandler);

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colTraceCalls = new IdentityColumn<TraceInfoStatsResult>(
            TRACE_CALLS_CELL);
    grid.addColumn(colTraceCalls, new ResizableHeader<TraceInfoStatsResult>("Calls", grid, colTraceCalls));
    grid.setColumnWidth(colTraceCalls, 50, Style.Unit.PX);

    colTraceCalls.setSortable(true);
    sortHandler.setComparator(colTraceCalls, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return o1.getCalls() - o2.getCalls();
        }
    });

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colTraceErrors = new IdentityColumn<TraceInfoStatsResult>(
            TRACE_ERRORS_CELL);
    grid.addColumn(colTraceErrors, new ResizableHeader<TraceInfoStatsResult>("Errors", grid, colTraceErrors));
    grid.setColumnWidth(colTraceErrors, 50, Style.Unit.PX);

    colTraceErrors.setSortable(true);
    sortHandler.setComparator(colTraceErrors, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return o1.getErrors() - o2.getErrors();
        }
    });

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colSumTime = new IdentityColumn<TraceInfoStatsResult>(
            TIME_SUM_CELL);
    grid.addColumn(colSumTime, new ResizableHeader<TraceInfoStatsResult>("Sum Time", grid, colSumTime));
    grid.setColumnWidth(colSumTime, 96, Style.Unit.PX);

    colSumTime.setSortable(true);
    sortHandler.setComparator(colSumTime, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return (int) ((o1.getSumTime() - o2.getSumTime()) / 1000000L);
        }
    });

    // avgTime

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colMinTime = new IdentityColumn<TraceInfoStatsResult>(
            TIME_MIN_CELL);
    grid.addColumn(colMinTime, new ResizableHeader<TraceInfoStatsResult>("Min Time", grid, colMinTime));
    grid.setColumnWidth(colMinTime, 96, Style.Unit.PX);

    colMinTime.setSortable(true);
    sortHandler.setComparator(colMinTime, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return (int) ((o1.getMinTime() - o2.getMinTime()) / 1000000L);
        }
    });

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colMaxTime = new IdentityColumn<TraceInfoStatsResult>(
            TIME_MAX_CELL);
    grid.addColumn(colMaxTime, new ResizableHeader<TraceInfoStatsResult>("Max Time", grid, colMaxTime));
    grid.setColumnWidth(colMaxTime, 96, Style.Unit.PX);

    colMaxTime.setSortable(true);
    sortHandler.setComparator(colMaxTime, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return (int) ((o1.getMaxTime() - o2.getMaxTime()) / 1000000L);
        }
    });

    Column<TraceInfoStatsResult, TraceInfoStatsResult> colAttr = new IdentityColumn<TraceInfoStatsResult>(
            ATTR_CELL);
    colAttr.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
    grid.addColumn(colAttr, new ResizableHeader<TraceInfoStatsResult>("Attr", grid, colAttr));
    grid.setColumnWidth(colAttr, 100, Style.Unit.PCT);

    colAttr.setSortable(true);
    sortHandler.setComparator(colAttr, new Comparator<TraceInfoStatsResult>() {
        @Override
        public int compare(TraceInfoStatsResult o1, TraceInfoStatsResult o2) {
            return o1.getAttr().compareTo(o2.getAttr());
        }
    });

    grid.addCellPreviewHandler(new CellPreviewEvent.Handler<TraceInfoStatsResult>() {
        @Override
        public void onCellPreview(CellPreviewEvent<TraceInfoStatsResult> event) {
            NativeEvent nev = event.getNativeEvent();
            String eventType = nev.getType();
            if ((BrowserEvents.KEYDOWN.equals(eventType) && nev.getKeyCode() == KeyCodes.KEY_ENTER)
                    || BrowserEvents.DBLCLICK.equals(nev.getType())) {
                selection.setSelected(event.getValue(), true);
                openSearchView();
            }
            if (BrowserEvents.CONTEXTMENU.equals(eventType)) {
                selection.setSelected(event.getValue(), true);
                if (selection.getSelectedObject() != null) {
                    contextMenu.setPopupPosition(event.getNativeEvent().getClientX(),
                            event.getNativeEvent().getClientY());
                    contextMenu.show();
                }
            }
        }
    });

    grid.addDomHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            event.preventDefault();
        }
    }, DoubleClickEvent.getType());
    grid.addDomHandler(new ContextMenuHandler() {
        @Override
        public void onContextMenu(ContextMenuEvent event) {
            event.preventDefault();
        }
    }, ContextMenuEvent.getType());
}

From source file:com.sensia.tools.client.swetools.editors.sensorml.panels.widgets.swe.dataarray.GenericTable.java

License:Open Source License

/**
 * Populates the table.//from  w  w  w .j  a va2  s  .  c o m
 *
 * @param headers the headers to display
 * @param values the values to set
 */
public void poupulateTable(final List<String> headers, final Object[][] values) {
    //clears/creates the list
    init();
    this.originalData = getPropertiesFromValues(values);

    if (table == null) {
        //creates the table object
        createTable();
    } else {
        //remove every columns
        int nbColumn = table.getColumnCount();
        for (int i = 0; i < nbColumn; i++) {
            table.removeColumn(i);
        }
    }

    int position = 0;
    //add every column based on header list
    for (final String colName : headers) {
        final int currentPosition = position;
        final Column<Property, String> column = new Column<Property, String>(new TextCell()) {

            @Override
            public String getValue(Property object) {
                return object.properties.get(currentPosition);
            }
        };
        column.setSortable(false);

        SafeHtmlHeader colHeader = new SafeHtmlHeader(new SafeHtml() {

            @Override
            public String asString() {
                return "<p style=\"text-align:center;\">" + colName + "</p>";
            }

        });
        colHeader.setHeaderStyleNames("data-table-header");

        table.addColumn(column, colHeader);
        position++;
    }

    //add extra column if editable
    if (isEditable) {
        SafeHtmlHeader removeRowLabelHeader = getRemoveRowLabelHeader();
        final Column<Property, String> removeColumn = new Column<Property, String>(new ButtonCell()) {
            @Override
            public String getValue(Property c) {
                return "x";
            }
        };

        removeColumn.setSortable(false);

        //updates when the user remove a row
        removeColumn.setFieldUpdater(new FieldUpdater<Property, String>() {

            @Override
            public void update(int index, Property object, String value) {
                List<Property> newOriginalData = new ArrayList<Property>();
                for (int i = 0; i < originalData.size(); i++) {
                    if (i != index) {
                        newOriginalData.add(originalData.get(i));
                    }
                }
                originalData = newOriginalData;

                table.setRowCount(originalData.size());
                table.setRowData(originalData);

                dataProvider.setList(originalData);
                dataProvider.refresh();

                deselect();
            }
        });

        table.addColumn(removeColumn, removeRowLabelHeader);
    }

    table.setRowCount(originalData.size());
    table.setRowData(originalData);

    dataProvider.setList(originalData);
    dataProvider.refresh();
}

From source file:com.spshop.admin.client.sample.CwCellTable.java

License:Apache License

/**
 * Add the columns to the table.//from w  w  w .  ja v  a  2s  .  c  om
 */
private void initTableColumns(final SelectionModel<ContactInfo> selectionModel,
        ListHandler<ContactInfo> sortHandler) {
    // Checkbox column. This table will uses a checkbox column for selection.
    // Alternatively, you can call cellTable.setSelectionEnabled(true) to enable
    // mouse selection.
    Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(ContactInfo object) {
            // Get the value from the selection model.
            return selectionModel.isSelected(object);
        }
    };
    cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    cellTable.setColumnWidth(checkColumn, 40, Unit.PX);

    // First name.
    Column<ContactInfo, String> firstNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getFirstName();
        }
    };
    firstNameColumn.setSortable(true);
    sortHandler.setComparator(firstNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getFirstName().compareTo(o2.getFirstName());
        }
    });
    cellTable.addColumn(firstNameColumn, constants.cwCellTableColumnFirstName());
    firstNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setFirstName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(firstNameColumn, 20, Unit.PCT);

    // Last name.
    Column<ContactInfo, String> lastNameColumn = new Column<ContactInfo, String>(new EditTextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getLastName();
        }
    };
    lastNameColumn.setSortable(true);
    sortHandler.setComparator(lastNameColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getLastName().compareTo(o2.getLastName());
        }
    });
    cellTable.addColumn(lastNameColumn, constants.cwCellTableColumnLastName());
    lastNameColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            // Called when the user changes the value.
            object.setLastName(value);
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(lastNameColumn, 20, Unit.PCT);

    // Category.
    final Category[] categories = ContactDatabase.get().queryCategories();
    List<String> categoryNames = new ArrayList<String>();
    for (Category category : categories) {
        categoryNames.add(category.getDisplayName());
    }
    SelectionCell categoryCell = new SelectionCell(categoryNames);
    Column<ContactInfo, String> categoryColumn = new Column<ContactInfo, String>(categoryCell) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getCategory().getDisplayName();
        }
    };
    cellTable.addColumn(categoryColumn, constants.cwCellTableColumnCategory());
    categoryColumn.setFieldUpdater(new FieldUpdater<ContactInfo, String>() {
        public void update(int index, ContactInfo object, String value) {
            for (Category category : categories) {
                if (category.getDisplayName().equals(value)) {
                    object.setCategory(category);
                }
            }
            ContactDatabase.get().refreshDisplays();
        }
    });
    cellTable.setColumnWidth(categoryColumn, 130, Unit.PX);

    // Address.
    Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>(new TextCell()) {
        @Override
        public String getValue(ContactInfo object) {
            return object.getAddress();
        }
    };
    addressColumn.setSortable(true);
    sortHandler.setComparator(addressColumn, new Comparator<ContactInfo>() {
        public int compare(ContactInfo o1, ContactInfo o2) {
            return o1.getAddress().compareTo(o2.getAddress());
        }
    });
    cellTable.addColumn(addressColumn, constants.cwCellTableColumnAddress());
    cellTable.setColumnWidth(addressColumn, 60, Unit.PCT);
}

From source file:com.stoyanr.todo.client.view.ItemsViewImpl.java

License:Open Source License

private Column<T, String> createIdColumn() {
    Column<T, String> col = new Column<T, String>(new TextCell()) {

        @Override// ww  w . j a v a 2 s . co  m
        public String getValue(T t) {
            return presenter.getId(t);
        }
    };
    col.setSortable(true);
    return col;
}

From source file:com.stoyanr.todo.client.view.ItemsViewImpl.java

License:Open Source License

private Column<T, String> createPriorityColumn(List<String> priorityNames) {
    Column<T, String> col = new Column<T, String>(new SelectionCell(priorityNames)) {

        @Override//from   ww w  .j a va 2 s. c  o m
        public String getValue(T t) {
            return presenter.getPriority(t);
        }
    };
    col.setFieldUpdater(new FieldUpdater<T, String>() {

        @Override
        public void update(int index, T t, String value) {
            presenter.updatePriority(t, value);
            dataProvider.refresh();
        }
    });
    col.setSortable(true);
    return col;
}

From source file:com.stoyanr.todo.client.view.ItemsViewImpl.java

License:Open Source License

private Column<T, String> createStatusColumn(List<String> statusNames) {
    Column<T, String> col = new Column<T, String>(new SelectionCell(statusNames)) {

        @Override//w  ww.  j  a  va2 s . c  o  m
        public String getValue(T t) {
            return presenter.getStatus(t);
        }
    };
    col.setFieldUpdater(new FieldUpdater<T, String>() {

        @Override
        public void update(int index, T t, String value) {
            presenter.updateStatus(t, value);
            dataProvider.refresh();
        }
    });
    col.setSortable(true);
    return col;
}

From source file:com.stoyanr.todo.client.view.ItemsViewImpl.java

License:Open Source License

private Column<T, String> createCreatedColumn() {
    Column<T, String> col = new Column<T, String>(new TextCell()) {

        @Override//ww w  . ja v a 2 s .  co  m
        public String getValue(T t) {
            return presenter.getCreated(t);
        }
    };
    col.setSortable(true);
    return col;
}