本文介绍了有没有人有一个ActionCells在CompositeCell中工作的例子?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了以下示例,,并在CompositeCell内部添加了两个ActionCell,但没有运气。 ActionCell的onBrowserEvent()不会被触发。

I tried following the example, http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTree , and added two ActionCells inside of the CompositeCell with no luck. The ActionCell's onBrowserEvent() does not get triggered.

推荐答案

这个简单的例子适用于我。由于您没有提供任何代码或进一步解释您想要达到的目标,我不知道我的示例是否有帮助。

This simple example works for me. Since you didn't provide any code or further explanation on what exactly you're trying to achieve, I have no idea whether my example is of any help or not.

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;
    }
}

这篇关于有没有人有一个ActionCells在CompositeCell中工作的例子?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 08:13