How to remove a row from the Cell Table

后端 未结 3 1061
臣服心动
臣服心动 2020-12-18 08:35

At first I used the Grid. After creating a new version of the GWT, I want to replace the Grid on the CellTable.

3条回答
  •  感动是毒
    2020-12-18 09:25

    Check out the javadoc for details. My example is like the one you'll find there (just a little extended):

    public void onModuleLoad() {
        final CellTable table = new CellTable();
    
        TextColumn firstColumn = new TextColumn() {
    
            @Override
            public String getValue(Row object) {
                return object.firstColumn;
            }
        };
        table.addColumn(firstColumn, "header one");
    
        TextColumn secondColumn = new TextColumn() {
    
            @Override
            public String getValue(Row object) {
                return object.secondColumn;
            }
        };
        table.addColumn(secondColumn, "header two");
    
        TextColumn thirdColumn = new TextColumn() {
    
            @Override
            public String getValue(Row object) {
                return object.thirdColumn;
            }
        };
        table.addColumn(thirdColumn, "header three");
    
        table.setRowCount(getList().size());
        final ListDataProvider dataProvider = new ListDataProvider(getList());
        dataProvider.addDataDisplay(table);
    
        final SingleSelectionModel selectionModel = new SingleSelectionModel();
        table.setSelectionModel(selectionModel);
    
        Button btn = new Button("delete entry");
        btn.addClickHandler(new ClickHandler() {
    
            @Override
            public void onClick(ClickEvent event) {
                Row selected = selectionModel.getSelectedObject();
                if (selected != null) {
                    dataProvider.getList().remove(selected);
                }
            }
        });
    
        RootPanel.get().add(table);
        RootPanel.get().add(btn);
    
    }
    
    private class Row {
    
        private String firstColumn;
        private String secondColumn;
        private String thirdColumn;
    
        public Row(String firstColumn, String secondColumn, String thirdColumn) {
            this.firstColumn = firstColumn;
            this.secondColumn = secondColumn;
            this.thirdColumn = thirdColumn;
        }
    
    }
    
    private LinkedList getList() {
        LinkedList list = new LinkedList();
        list.add(new Row("first", "entry", "foo"));
        list.add(new Row("second", "entry", "foo"));
        list.add(new Row("third", "entry", "foo"));
        list.add(new Row("fourth", "entry", "foo"));
        return list;
    }
    

提交回复
热议问题