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

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

Introduction

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

Prototype

public Column(Cell<C> cell) 

Source Link

Document

Construct a new Column with a given Cell .

Usage

From source file:org.jboss.as.console.client.teiid.runtime.VDBView.java

License:Open Source License

Widget mainPageAsWidget() {
    ListHandler<VDB> sortHandler = new ListHandler<VDB>(this.vdbProvider.getList());

    final ToolStrip toolStrip = new ToolStrip();
    toolStrip.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_refresh(), new ClickHandler() {
        @Override//from   w  w w.  j  a  v a2s  .  co  m
        public void onClick(ClickEvent event) {
            presenter.refresh(false);
        }
    }));

    DefaultCellTable<VDB> table = new DefaultCellTable<VDB>(5, new ProvidesKey<VDB>() {
        @Override
        public Object getKey(VDB item) {
            return item.getName() + "_" + item.getVersion();
        }
    });

    table.addColumnSortHandler(sortHandler);

    TextColumn<VDB> nameColumn = new TextColumn<VDB>() {
        @Override
        public String getValue(VDB record) {
            return record.getName();
        }
    };
    nameColumn.setSortable(true);
    sortHandler.setComparator(nameColumn, new Comparator<VDB>() {
        @Override
        public int compare(VDB o1, VDB o2) {
            return o1.getName().compareTo(o2.getName());
        }
    });

    Column<VDB, Number> versionColumn = new Column<VDB, Number>(new NumberCell()) {
        @Override
        public Number getValue(VDB vdb) {
            return vdb.getVersion();
        }
    };
    versionColumn.setSortable(true);
    sortHandler.setComparator(versionColumn, new Comparator<VDB>() {
        @Override
        public int compare(VDB o1, VDB o2) {
            return o1.getVersion().compareTo(o2.getVersion());
        }
    });

    TextColumn<VDB> dynamicColumn = new TextColumn<VDB>() {
        @Override
        public String getValue(VDB record) {
            return String.valueOf(record.isDynamic());
        }
    };
    dynamicColumn.setSortable(true);
    sortHandler.setComparator(dynamicColumn, new Comparator<VDB>() {
        @Override
        public int compare(VDB o1, VDB o2) {
            return o1.isDynamic().compareTo(o2.isDynamic());
        }
    });

    TextColumn<VDB> statusColumn = new TextColumn<VDB>() {
        @Override
        public String getValue(VDB record) {
            return String.valueOf(record.getStatus());
        }
    };
    statusColumn.setSortable(true);
    sortHandler.setComparator(statusColumn, new Comparator<VDB>() {
        @Override
        public int compare(VDB o1, VDB o2) {
            return o1.getStatus().compareTo(o2.getStatus());
        }
    });

    Column<VDB, ImageResource> validColumn = new Column<VDB, ImageResource>(new ImageResourceCell()) {
        @Override
        public ImageResource getValue(VDB vdb) {
            ImageResource res = null;
            if (vdb.isValid()) {
                res = Icons.INSTANCE.status_good();
            } else {
                res = TeiidIcons.INSTANCE.status_not_ok();
            }
            return res;
        }
    };
    validColumn.setSortable(true);
    sortHandler.setComparator(validColumn, new Comparator<VDB>() {
        @Override
        public int compare(VDB o1, VDB o2) {
            return o1.isValid().compareTo(o2.isValid());
        }
    });

    Column<VDB, String> reloadBtn = new Column<VDB, String>(new ButtonCell()) {
        @Override
        public String getValue(VDB record) {
            return "Reload";
        }
    };
    reloadBtn.setFieldUpdater(new FieldUpdater<VDB, String>() {
        @Override
        public void update(int index, VDB vdb, String value) {
            reloadVDB(vdb);
        }
    });

    table.addColumn(nameColumn, "Name");
    table.addColumn(versionColumn, "Version");
    table.addColumn(dynamicColumn, "Dynamic");
    table.addColumn(statusColumn, "Status");
    table.addColumn(validColumn, "Valid");
    table.addColumn(reloadBtn, "Reload");

    // sets initial sorting
    table.getColumnSortList().push(nameColumn);

    this.vdbTable = table;
    this.vdbProvider.addDataDisplay(table);

    this.vdbRequestsTab = new VDBRequestsTab(presenter);
    this.vdbModelsTab = new VDBModelsTab(this.presenter);
    this.vdbModelsTab.setDataModelFactory(factory);

    this.vdbSessionsTab = new VDBSessionsTab(presenter);
    this.vdbCachingTab = new VDBCachingTab(presenter);

    // Page layout
    MultipleToOneLayout layout = new MultipleToOneLayout().setPlain(true).setTitle("VDB Panel")
            .setDescription(new SafeHtmlBuilder().appendHtmlConstant("").toSafeHtml())
            .setHeadline("Deployed Virtual Databases").setTopLevelTools(toolStrip)
            .setMaster("Deployed VDBS", table)
            .addDetail("Summary", new VDBSummaryTab(this.presenter).getPanel(table))
            .addDetail("Models", this.vdbModelsTab.getPanel(table))
            .addDetail("Overrides", new VDBTranslatorsTab(this.presenter).getPanel(table))
            .addDetail("Caching", this.vdbCachingTab.getPanel(table))
            .addDetail("Data Roles", new VDBDataRolesTab(this.presenter).getPanel(table))
            .addDetail("Requests", this.vdbRequestsTab.getPanel(table))
            .addDetail("Sessions", this.vdbSessionsTab.getPanel(table));
    return layout.build();
}

From source file:org.jboss.as.console.client.v3.deployment.wizard.AssignContentDialog.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    VerticalPanel root = new VerticalPanel();
    root.setStyleName("window-content");

    errorMessages = new HTML();
    errorMessages.setVisible(false);// www .  j a va2  s.c om
    errorMessages.setStyleName("error-panel");
    intro = new Label();
    intro.getElement().getStyle().setMarginBottom(10, PX);

    root.add(new HTML("<h3>" + Console.CONSTANTS.assignContent() + "</h3>"));
    root.add(errorMessages);
    root.add(intro);

    // provider, selection model
    ProvidesKey<String> keyProvider = item -> item;
    dataProvider = new ListDataProvider<>(keyProvider);
    selectionModel = new MultiSelectionModel<>(keyProvider);

    // table
    table = new DefaultCellTable<>(5, keyProvider);
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<String>() {
                @Override
                public SelectAction translateSelectionEvent(CellPreviewEvent<String> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        String serverGroup = event.getValue();
                        boolean selected = selectionModel.isSelected(serverGroup);
                        return selected ? SelectAction.DESELECT : SelectAction.SELECT;
                    }
                    return action;
                }
            }));
    dataProvider.addDataDisplay(table);
    root.add(table);

    // columns
    Column<String, Boolean> checkColumn = new Column<String, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(String serverGroup) {
            return selectionModel.isSelected(serverGroup);
        }
    };
    TextColumn<String> nameColumn = new TextColumn<String>() {
        @Override
        public String getValue(String serverGroup) {
            return serverGroup;
        }
    };
    table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    table.setColumnWidth(checkColumn, 40, PX);
    table.addColumn(nameColumn, "Server Group");

    // pager
    DefaultPager pager = new DefaultPager();
    pager.setWidth("auto");
    pager.setDisplay(table);
    root.add(pager);

    // enable assignments?
    Form<Object> form = new Form<>(Object.class); // form is just used for layout reasons
    CheckBoxItem enable = new CheckBoxItem("enable",
            Console.CONSTANTS.enableAssignmentOnSelectedServerGroups());
    form.setFields(enable);
    root.add(form.asWidget());

    return new TrappedFocusPanel(new WindowContentBuilder(root,
            new DialogueOptions(Console.CONSTANTS.common_label_assign(), event -> {
                Set<String> selectedSet = selectionModel.getSelectedSet();
                if (selectedSet.isEmpty()) {
                    errorMessages.setText(Console.CONSTANTS.pleaseSelectServerGroup());
                    errorMessages.setVisible(true);
                } else {
                    close();
                    presenter.assignContent(content, selectedSet, enable.getValue(), unmanaged);
                }
            }, Console.CONSTANTS.common_label_cancel(), event -> close())).build());
}

From source file:org.jboss.as.console.client.v3.deployment.wizard.UnassignContentDialog.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    VerticalPanel root = new VerticalPanel();
    root.setStyleName("window-content");

    errorMessages = new HTML();
    errorMessages.setVisible(false);//w w w  .jav a  2s. com
    errorMessages.setStyleName("error-panel");
    intro = new Label();
    intro.getElement().getStyle().setMarginBottom(10, PX);

    root.add(new HTML("<h3>Unassign Content</h3>"));
    root.add(errorMessages);
    root.add(intro);

    // provider, selection model
    ProvidesKey<String> keyProvider = item -> item;
    dataProvider = new ListDataProvider<>(keyProvider);
    selectionModel = new MultiSelectionModel<>(keyProvider);

    // table
    table = new DefaultCellTable<>(5, keyProvider);
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<String>() {
                @Override
                public SelectAction translateSelectionEvent(CellPreviewEvent<String> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        String serverGroup = event.getValue();
                        boolean selected = selectionModel.isSelected(serverGroup);
                        return selected ? SelectAction.DESELECT : SelectAction.SELECT;
                    }
                    return action;
                }
            }));
    dataProvider.addDataDisplay(table);
    root.add(table);

    // columns
    Column<String, Boolean> checkColumn = new Column<String, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(String serverGroup) {
            return selectionModel.isSelected(serverGroup);
        }
    };
    TextColumn<String> nameColumn = new TextColumn<String>() {
        @Override
        public String getValue(String serverGroup) {
            return serverGroup;
        }
    };
    table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    table.setColumnWidth(checkColumn, 40, PX);
    table.addColumn(nameColumn, "Server Group");

    // pager
    DefaultPager pager = new DefaultPager();
    pager.setWidth("auto");
    pager.setDisplay(table);
    root.add(pager);

    return new TrappedFocusPanel(new WindowContentBuilder(root,
            new DialogueOptions(Console.CONSTANTS.common_label_unassign(), event -> {
                Set<String> selectedSet = selectionModel.getSelectedSet();
                if (selectedSet.isEmpty()) {
                    errorMessages.setText(Console.CONSTANTS.pleaseSelectServerGroup());
                    errorMessages.setVisible(true);
                } else {
                    close();
                    presenter.unassignContent(content, selectedSet);
                }
            }, Console.CONSTANTS.common_label_cancel(), event -> close())).build());
}

From source file:org.jboss.as.console.client.v3.widgets.PropertyEditor.java

License:Open Source License

@SuppressWarnings("unchecked")
public Widget asWidget() {
    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("fill-layout-width");

    // table//from  w  w w .j a  v a  2s .co m
    table = new DefaultCellTable<>(numRows, keyProvider);
    dataProvider = new ListDataProvider<>(keyProvider);
    dataProvider.addDataDisplay(table);
    final SingleSelectionModel<Property> selectionModel = new SingleSelectionModel<>(keyProvider);
    table.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(event -> {
        Property selection = selectionModel.getSelectedObject();
        if (selection == null) {
            propertyManager.onDeselect();
        } else {
            propertyManager.onSelect(selection);
        }
    });

    // columns
    Column<Property, String> keyColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property property) {
            return property.getName();
        }
    };
    keyColumn.setSortable(true);
    Column<Property, String> valueColumn;
    if (inlineEditing) {
        valueColumn = new Column<Property, String>(new DefaultEditTextCell()) {
            {
                setFieldUpdater((index, property, value) -> getPropertyValue(property).set(value));
            }

            @Override
            public String getValue(Property property) {
                return property.getValue().get(VALUE).asString();
            }
        };
    } else {
        valueColumn = new TextColumn<Property>() {
            @Override
            public String getValue(Property property) {
                return getPropertyValue(property).asString();
            }
        };
    }
    ColumnSortEvent.ListHandler<Property> sortHandler = new ColumnSortEvent.ListHandler<>(
            dataProvider.getList());
    sortHandler.setComparator(keyColumn, new Comparator<Property>() {
        @Override
        public int compare(Property o1, Property o2) {
            return o1.getName().toLowerCase().compareTo(o2.getName().toLowerCase());
        }
    });
    table.addColumn(keyColumn, Console.CONSTANTS.common_label_key());
    table.addColumn(valueColumn, Console.CONSTANTS.common_label_value());
    table.setColumnWidth(keyColumn, 40, Style.Unit.PCT);
    table.setColumnWidth(valueColumn, 60, Style.Unit.PCT);
    table.addColumnSortHandler(sortHandler);
    table.getColumnSortList().push(keyColumn);

    // tools
    if (!hideTools) {
        ToolStrip tools = new ToolStrip();
        addButton = new ToolButton(addLabel, event -> {
            addDialog.clearValues();
            propertyManager.openAddDialog(addDialog);
        });
        removeButton = new ToolButton(removeLabel, event -> {
            final Property selection = selectionModel.getSelectedObject();
            if (selection != null) {
                Feedback.confirm(Console.MESSAGES.removeProperty(),
                        Console.MESSAGES.removePropertyConfirm(selection.getName()),
                        new Feedback.ConfirmationHandler() {
                            @Override
                            public void onConfirmation(boolean isConfirmed) {
                                if (isConfirmed) {
                                    propertyManager.onRemove(selection);
                                }
                            }
                        });
            }
        });
        AddressTemplate effectiveAddress = operationAddress != null ? operationAddress
                : propertyManager.getAddress();
        if (effectiveAddress != null) {
            addButton.setOperationAddress(effectiveAddress.getTemplate(),
                    propertyManager.getAddOperationName());
            removeButton.setOperationAddress(effectiveAddress.getTemplate(),
                    propertyManager.getRemoveOperationName());
        }
        tools.addToolButtonRight(addButton);
        tools.addToolButtonRight(removeButton);
        panel.add(tools);
    }

    panel.add(table);
    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);
    panel.add(pager);
    return panel;
}

From source file:org.jboss.as.console.client.widgets.deprecated.ListEditor.java

License:Open Source License

public Widget asWidget() {
    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("fill-layout-width");

    listTable = new DefaultCellTable<T>(numRows);
    listTable.getElement().setAttribute("style", "margin-top:5px;");
    listProvider = new ListDataProvider<T>();
    listProvider.addDataDisplay(listTable);

    ToolStrip itemTools = new ToolStrip();

    addItem = new ToolButton(Console.CONSTANTS.common_label_add());

    addItem.addClickHandler(new ClickHandler() {
        @Override/*from  w  ww.jav  a2 s. co m*/
        public void onClick(ClickEvent event) {
            if (ListEditor.this.enabled)
                listManager.launchNewItemDialoge();
        }
    });
    addItem.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_add_listEditor());
    itemTools.addToolButtonRight(addItem);

    panel.add(itemTools);

    //       ColumnSortEvent.ListHandler<T> sortHandler =
    //               new ColumnSortEvent.ListHandler<T>(listProvider.getList());

    // Create columns
    Column<T, String> valueColumn = new Column<T, String>(new TextCell()) {

        @Override
        public String getValue(T object) {
            return object.toString();
        }

    };
    //      valueColumn.setSortable(true);

    Column<T, T> removeCol = new Column<T, T>(
            new TextLinkCell<T>(I18n.CONSTANTS.common_label_delete(), new ActionCell.Delegate<T>() {
                @Override
                public void execute(final T o) {
                    Feedback.confirm(Console.MESSAGES.deleteTitle(Console.CONSTANTS.common_label_item()),
                            Console.MESSAGES.deleteConfirm(Console.CONSTANTS.common_label_item()),
                            new Feedback.ConfirmationHandler() {
                                @Override
                                public void onConfirmation(boolean isConfirmed) {
                                    if (isConfirmed)
                                        listManager.onDeleteItem(o);
                                }
                            });

                }
            })) {
        @Override
        public T getValue(T item) {
            return item;
        }
    };

    // Add the columns.
    listTable.addColumn(valueColumn, this.headerLabel);

    listTable.addColumn(removeCol, Console.CONSTANTS.common_label_option());

    listTable.setColumnWidth(valueColumn, 30, Style.Unit.PCT);

    listTable.setColumnWidth(removeCol, 20, Style.Unit.PCT);

    //        listTable.addColumnSortHandler(sortHandler);
    listTable.getColumnSortList().push(valueColumn);

    if (helpText != null) {
        StaticHelpPanel helpPanel = new StaticHelpPanel(helpText);
        panel.add(helpPanel.asWidget());
    }

    panel.add(listTable);

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(listTable);

    panel.add(pager);

    return panel;
}

From source file:org.jboss.ballroom.client.widgets.forms.ListEditor.java

License:Open Source License

public Widget asWidget() {
    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("fill-layout-width");

    listTable = new DefaultCellTable<T>(numRows);
    listTable.getElement().setAttribute("style", "margin-top:5px;");
    listProvider = new ListDataProvider<T>();
    listProvider.addDataDisplay(listTable);

    ToolStrip itemTools = new ToolStrip();

    addItem = new ToolButton(Console.CONSTANTS.common_label_add());

    addItem.addClickHandler(new ClickHandler() {
        @Override/*w  ww.j  a  v a  2s  . c om*/
        public void onClick(ClickEvent event) {
            if (ListEditor.this.enabled)
                listManager.launchNewItemDialoge();
        }
    });
    addItem.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_add_listEditor());
    itemTools.addToolButtonRight(addItem);

    panel.add(itemTools);

    //       ColumnSortEvent.ListHandler<T> sortHandler =
    //               new ColumnSortEvent.ListHandler<T>(listProvider.getList());

    // Create columns
    Column<T, String> valueColumn = new Column<T, String>(new TextCell()) {

        @Override
        public String getValue(T object) {
            return object.toString();
        }

    };
    //      valueColumn.setSortable(true);

    Column<T, T> removeCol = new Column<T, T>(
            new ButtonCell<T>(I18n.CONSTANTS.common_label_remove(), new ActionCell.Delegate<T>() {
                @Override
                public void execute(final T o) {
                    Feedback.confirm(Console.MESSAGES.deleteTitle(Console.CONSTANTS.common_label_item()),
                            Console.MESSAGES.deleteConfirm(Console.CONSTANTS.common_label_item()),
                            new Feedback.ConfirmationHandler() {
                                @Override
                                public void onConfirmation(boolean isConfirmed) {
                                    if (isConfirmed)
                                        listManager.onDeleteItem(o);
                                }
                            });

                }
            })) {
        @Override
        public T getValue(T item) {
            return item;
        }
    };

    // Add the columns.
    listTable.addColumn(valueColumn, this.headerLabel);

    listTable.addColumn(removeCol, Console.CONSTANTS.common_label_option());

    listTable.setColumnWidth(valueColumn, 30, Style.Unit.PCT);

    listTable.setColumnWidth(removeCol, 20, Style.Unit.PCT);

    //        listTable.addColumnSortHandler(sortHandler);
    listTable.getColumnSortList().push(valueColumn);

    if (helpText != null) {
        StaticHelpPanel helpPanel = new StaticHelpPanel(helpText);
        panel.add(helpPanel.asWidget());
    }

    panel.add(listTable);

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(listTable);

    panel.add(pager);

    return panel;
}

From source file:org.jboss.ci.tracker.client.widgets.BuildList.java

License:Open Source License

private void initDatagrid() {

    TextColumn<BuildDto> nameColumn = new TextColumn<BuildDto>() {
        @Override/*from  ww  w . j  a v a 2 s.  co  m*/
        public String getValue(BuildDto object) {
            return object.getName();
        }
    };

    Column urlColumn = new Column<BuildDto, SafeHtml>(new SafeHtmlCell()) {

        @Override
        public SafeHtml getValue(BuildDto object) {
            SafeUri href = UriUtils.fromSafeConstant(object.getUrl());
            return cell.anchor(href, object.getUrl());
        }
    };

    dataGrid.setColumnWidth(nameColumn, 40, Style.Unit.PX);
    dataGrid.addColumn(nameColumn, "Name");

    dataGrid.setColumnWidth(urlColumn, 40, Style.Unit.PX);
    dataGrid.addColumn(urlColumn, "URL");

    selectionModel = new MultiSelectionModel<BuildDto>(keyProvider);

    dataGrid.addDomHandler(new DoubleClickHandler() {

        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            List<BuildDto> buildList = getSelectedBuilds();

            for (BuildDto buildDto : buildList) {
                buildListParamBuildListBridge.setBuildAndDisplayParamBuilds(buildDto);
            }
        }
    }, DoubleClickEvent.getType());

    dataGrid.setSelectionModel(selectionModel);
    updateDataGrid();
}

From source file:org.jboss.ci.tracker.client.widgets.CategorizationList.java

License:Open Source License

/**
 * Sets properties of name column of categorization data grid.
 *//*from  w  ww . ja v a  2s . c o  m*/
private void setCategorizationNameColumn() {
    Column<CategorizationDto, String> column = new Column<CategorizationDto, String>(
            new CustomWidgets.CustomCell()) {
        @Override
        public String getValue(CategorizationDto object) {
            return object.getName();
        }

        // TODO: Mark better the possibility to enter a new row
        // I think this could be the right direction but currently it's just a waste of time - not able to get it running right now
        //            @Override
        //            public void onBrowserEvent(Context context, com.google.gwt.dom.client.Element elem, CategorizationDto object, NativeEvent event) {
        //                if (event.getType().equals(DoubleClickEvent.getType().getName())) {
        //                    Window.alert(event.getString() + " | " + event.getType());
        //                }
        //            }
    };

    categorizationDataGrid.addColumn(column, "Group of parameterizations");

    column.setFieldUpdater(new FieldUpdater<CategorizationDto, String>() {
        @Override
        public void update(int index, final CategorizationDto categorization, String value) {
            if (!value.equals(categorization.getName())) {
                if (categorization.getId() == null && (categorization.getName().equals(LABEL_OF_NEW_ROW))) {
                    addNewCategorizationRow(categorizationDataProvider.getList());
                }

                categorization.setName(value);

                categorizationService.saveCategorization(categorization, new AsyncCallback<Integer>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        throw new RuntimeException("Can't update name of " + categorization, caught);
                    }

                    @Override
                    public void onSuccess(Integer result) {
                        categorization.setId(result);
                        updateCategorizationDataGrid();
                        updateCategoryDataGrid();
                    }
                });
            }
        }
    });
}

From source file:org.jboss.ci.tracker.client.widgets.CategorizationList.java

License:Open Source License

/**
 * Sets properties of column name of category data grid.
 *//*from   w  ww.ja v  a2 s .  com*/
private void setCategoryNameColumn() {
    Column<CategoryDto, String> column = new Column<CategoryDto, String>(new EditTextCell()) {
        @Override
        public String getValue(CategoryDto object) {
            return object.getName();
        }
    };

    categoryDataGrid.addColumn(column, "Parameterization");

    column.setFieldUpdater(new FieldUpdater<CategoryDto, String>() {
        @Override
        public void update(int index, final CategoryDto category, String value) {
            if (!value.equals(category.getName())) {
                if (category.getId() == null && (category.getName().equals(LABEL_OF_NEW_ROW)
                        || category.getRegex().equals(LABEL_OF_NEW_ROW))) {
                    addNewCategoryRow(categoryDataProvider.getList());
                }

                category.setName(value);

                categoryService.saveCategory(category, getSelectedCategorization(),
                        new AsyncCallback<Integer>() {

                            @Override
                            public void onFailure(Throwable caught) {
                                throw new RuntimeException("Can't update name of " + category, caught);
                            }

                            @Override
                            public void onSuccess(Integer result) {
                                category.setId(result);
                                updateCategoryDataGrid();
                            }
                        });
            }
        }
    });
}

From source file:org.jboss.ci.tracker.client.widgets.CategorizationList.java

License:Open Source License

/**
 * Sets properties of column regular expression of category data grid.
 */// ww  w.ja  v a  2 s. com
private void setCategoryRegexColumn() {
    Column<CategoryDto, String> column = new Column<CategoryDto, String>(new EditTextCell()) {
        @Override
        public String getValue(CategoryDto object) {
            return object.getRegex();
        }
    };

    categoryDataGrid.addColumn(column, "Regular expression");

    column.setFieldUpdater(new FieldUpdater<CategoryDto, String>() {
        @Override
        public void update(int index, final CategoryDto category, String value) {
            if (!value.equals(category.getRegex())) {
                category.setRegex(value);

                categoryService.saveCategory(category, getSelectedCategorization(),
                        new AsyncCallback<Integer>() {

                            @Override
                            public void onFailure(Throwable caught) {
                                throw new RuntimeException("Can't regex name of " + category, caught);
                            }

                            @Override
                            public void onSuccess(Integer result) {
                                category.setId(result);
                                updateCategoryDataGrid();
                            }
                        });
            }
        }
    });
}