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

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

Introduction

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

Prototype

public void addColumn(Column<T, ?> col) 

Source Link

Document

Adds a column to the end of the table.

Usage

From source file:org.uberfire.ext.plugin.client.editor.DynamicMenuEditorView.java

License:Apache License

private void initTable(final AbstractCellTable<DynamicMenuItem> dynamicMenuTable) {
    dynamicMenuTable.setEmptyTableWidget(new Label(CommonConstants.INSTANCE.MenusNoMenuItems()));

    //We need to inform the SelectionModel that the ButtonCell (i.e. Delete) column is excluded from selecting a row
    final DefaultSelectionEventManager<DynamicMenuItem> manager = DefaultSelectionEventManager
            .createBlacklistManager(4);// w  w  w. j  ava2 s  .c om
    dynamicMenuTable.setSelectionModel(selectionModel, manager);

    //Furthermore we cannot have a KeyboardSelectionPolicy with a ButtonCell and a SelectionModel
    dynamicMenuTable.setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.DISABLED);

    {
        final IconCell iCell = new IconCell(IconType.ARROW_UP);
        iCell.setTooltip(CommonConstants.INSTANCE.MenusMoveUpHint());

        final Column<DynamicMenuItem, String> iconColumn = new Column<DynamicMenuItem, String>(iCell) {
            public String getValue(DynamicMenuItem object) {
                return "";
            }
        };

        iconColumn.setFieldUpdater(new FieldUpdater<DynamicMenuItem, String>() {
            @Override
            public void update(final int index, final DynamicMenuItem object, final String value) {
                presenter.updateIndex(object, index, DynamicMenuEditorPresenter.UpdateIndexOperation.UP);
            }
        });

        dynamicMenuTable.addColumn(iconColumn);
        dynamicMenuTable.setColumnWidth(iconColumn, "25px");
    }

    {
        final IconCell iCell = new IconCell(IconType.ARROW_DOWN);
        iCell.setTooltip(CommonConstants.INSTANCE.MenusMoveDownHint());

        final Column<DynamicMenuItem, String> iconColumn = new Column<DynamicMenuItem, String>(iCell) {
            public String getValue(DynamicMenuItem object) {
                return "";
            }
        };

        iconColumn.setFieldUpdater(new FieldUpdater<DynamicMenuItem, String>() {
            @Override
            public void update(final int index, final DynamicMenuItem object, final String value) {
                presenter.updateIndex(object, index, DynamicMenuEditorPresenter.UpdateIndexOperation.DOWN);
            }
        });

        dynamicMenuTable.addColumn(iconColumn);
        dynamicMenuTable.setColumnWidth(iconColumn, "25px");
    }

    {
        final TextColumn<DynamicMenuItem> activityCol = new TextColumn<DynamicMenuItem>() {

            @Override
            public String getValue(DynamicMenuItem object) {
                return String.valueOf(object.getActivityId());
            }
        };

        dynamicMenuTable.addColumn(activityCol, CommonConstants.INSTANCE.MenusActivityID());
    }

    {
        final TextColumn<DynamicMenuItem> labelCol = new TextColumn<DynamicMenuItem>() {

            @Override
            public String getValue(DynamicMenuItem object) {
                return object.getMenuLabel();
            }
        };

        dynamicMenuTable.addColumn(labelCol, CommonConstants.INSTANCE.MenusLabel());
    }

    {
        final ButtonCell buttonCell = new ButtonCell(IconType.REMOVE, ButtonType.DANGER,
                ButtonSize.EXTRA_SMALL);

        final Column<DynamicMenuItem, String> buttonCol = new Column<DynamicMenuItem, String>(buttonCell) {
            @Override
            public String getValue(DynamicMenuItem object) {
                return CommonConstants.INSTANCE.MenusDelete();
            }
        };

        buttonCol.setFieldUpdater(new FieldUpdater<DynamicMenuItem, String>() {
            @Override
            public void update(final int index, final DynamicMenuItem object, final String value) {
                if (selectionModel.isSelected(object)) {
                    selectionModel.clear();
                }
                presenter.removeObject(object);
            }
        });

        dynamicMenuTable.addColumn(buttonCol);
        dynamicMenuTable.setColumnWidth(buttonCol, "80px");
    }

    selectionModel.addSelectionChangeHandler(new Handler() {

        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            //ListDataProvider raises this event with a null item when a item is removed
            if (selectionModel.getSelectedObject() == null) {
                editedItem = null;
                setMenuItem(new DynamicMenuItem());
            } else {
                editedItem = selectionModel.getSelectedObject();
                setMenuItem(new DynamicMenuItem(selectionModel.getSelectedObject().getActivityId(),
                        selectionModel.getSelectedObject().getMenuLabel()));
            }
        }
    });

    presenter.setDataDisplay(dynamicMenuTable);
}