У кого-нибудь есть рабочие примеры ActionCells, работающие в CompositeCell? - PullRequest
1 голос
/ 29 июня 2011

Я попытался следовать примеру http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTree и добавил две ActionCell внутри CompositeCell, но безуспешно.OnBrowserEvent () ActionCell не запускается.

1 Ответ

2 голосов
/ 13 ноября 2011

Этот простой пример работает для меня. Поскольку вы не предоставили никакого кода или дополнительных объяснений того, чего именно вы пытаетесь достичь, я понятия не имею, мой пример поможет или нет.

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...