Gwt 有人有在CompositeCell中工作的ActionCells的工作示例吗?

Gwt 有人有在CompositeCell中工作的ActionCells的工作示例吗?,gwt,Gwt,我尝试按照示例,在CompositeCell中添加了两个ActionCell,但没有成功。ActionCell的onBrowserEvent()不会被触发。这个简单的示例对我很有用。由于您没有提供任何代码或进一步解释您到底想要实现什么,我不知道我的示例是否有任何帮助 public void onModuleLoad() { CellTable<Person> table = new CellTable<Starter.Person>(); List<

我尝试按照示例,在CompositeCell中添加了两个ActionCell,但没有成功。ActionCell的onBrowserEvent()不会被触发。

这个简单的示例对我很有用。由于您没有提供任何代码或进一步解释您到底想要实现什么,我不知道我的示例是否有任何帮助

public void onModuleLoad() {
    CellTable<Person> table = new CellTable<Starter.Person>();

    List<HasCell<Person, ?>> cells = new LinkedList<HasCell<Person, ?>>();
    cells.add(new HasCellImpl("first name", new Delegate<Person>() {

        @Override
        public void execute(Person object) {
            Window.alert(object.getFirstName());
        }
    }));
    cells.add(new HasCellImpl("last name", new Delegate<Starter.Person>() {

        @Override
        public void execute(Person object) {
            Window.alert(object.getLastName());
        }
    }));

    CompositeCell<Person> cell = new CompositeCell<Person>(cells);
    table.addColumn(new TextColumn<Starter.Person>() {

        @Override
        public String getValue(Person object) {
            return object.getFirstName() + " " + object.getLastName();
        }
    }, "name");

    table.addColumn(new Column<Person, Person>(cell) {

        @Override
        public Person getValue(Person object) {
            return object;
        }
    }, "composite");

    LinkedList<Person> data = new LinkedList<Starter.Person>();
    data.add(new Person("Amy", "Reed"));
    data.add(new Person("Tim", "Gardner"));
    table.setRowData(data);

    RootPanel.get().add(table);
}

private class HasCellImpl implements HasCell<Person, Person> {
    private ActionCell<Person> fCell;

    public HasCellImpl(String text, Delegate<Person> delegate) {
        fCell = new ActionCell<Person>(text, delegate);
    }

    @Override
    public Cell<Person> getCell() {
        return fCell;
    }

    @Override
    public FieldUpdater<Person, Person> getFieldUpdater() {
        return null;
    }

    @Override
    public Person getValue(Person object) {
        return object;
    }
}

private class Person {
    private String fFirstName;
    private String fLastName;

    public Person(String first, String last) {
        fFirstName = first;
        fLastName = last;
    }

    public String getFirstName() {
        return fFirstName;
    }

    public String getLastName() {
        return fLastName;
    }
}
模块加载()上的公共void{
CellTable=新的CellTable();
列表单元格=新建LinkedList();
添加(新的HasCellImpl(“名字”,新的委托)(){
@凌驾
公共void执行(Person对象){
alert(object.getFirstName());
}
}));
添加(新的HasCellImpl(“姓氏”,新的委托(){
@凌驾
公共void执行(Person对象){
alert(object.getLastName());
}
}));
复合细胞=新的复合细胞(细胞);
table.addColumn(新的TextColumn(){
@凌驾
公共字符串getValue(Person对象){
返回object.getFirstName()+“”+object.getLastName();
}
}“姓名”);
表.addColumn(新列(单元格){
@凌驾
公共人物getValue(人物对象){
返回对象;
}
}“复合”);
LinkedList数据=新建LinkedList();
数据。添加(新人员(“艾米”、“里德”);
数据。添加(新人员(“蒂姆”、“加德纳”);
表.setRowData(数据);
RootPanel.get().add(表);
}
私有类HasCellImpl实现HasCell{
私人行动细胞;
public HasCellImpl(字符串文本,委托){
fCell=新的ActionCell(文本,委托);
}
@凌驾
公共单元getCell(){
返回fCell;
}
@凌驾
公共字段更新程序getFieldUpdater(){
返回null;
}
@凌驾
公共人物getValue(人物对象){
返回对象;
}
}
私人阶级人士{
私有字符串fFirstName;
私有字符串fLastName;
公众人物(先串,后串){
fFirstName=第一;
fLastName=最后一个;
}
公共字符串getFirstName(){
返回fFirstName;
}
公共字符串getLastName(){
返回fLastName;
}
}