Как добавить Clickhandler в ячейку cellTable (или строку) - PullRequest
11 голосов
/ 31 мая 2011

Я хотел бы иметь обработчик для столбца моего cellTable. Столбец является ImageResourceCell, и я хотел бы, чтобы, когда я щелкаю по нему, он удалял строку. Вот мой код

Column<MyObject, ImageResource> imageColumn = 
    new Column<MyObject, ImageResource>(newImageResourceCell()) {
        @Override
        public ImageResource  getValue(MyObject object) {
             return Bundle.Util.getInstance().deleteRegexButton();
        }
    }; 
cellTable.addColumn(imageColumn,SafeHtmlUtils.fromSafeConstant("<br/>");

НоЯ не знал, как вставить обработчик, как описано. Возможно ли это?

любые предложения приветствуются

Спасибо.

Ответы [ 2 ]

17 голосов
/ 27 декабря 2011

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

    ImageResourceCell myImgCell = new ImageResourceCell() {
        public Set<String> getConsumedEvents() {
            HashSet<String> events = new HashSet<String>();
            events.add("click");
            return events;
        }
    };

    Column<MyObject, ImageResource> imageColumn = new Column<MyObject, ImageResource>(myImgCell) {
        @Override
        public ImageResource getValue(MyObject dataObj) {
                    return Bundle.Util.getInstance().deleteRegexButton();
        }

        @Override
        public void onBrowserEvent(Context context, Element elem,
                MyObject object, NativeEvent event) {
            super.onBrowserEvent(context, elem, object, event); 
            if ("click".equals(event.getType())) {
                //call your click event handler here
            }
        }
    };

Дополнительная информация здесь: http://code.google.com/webtoolkit/doc/latest/DevGuideUiCustomCells.html

Примечание: это работает сGWT 2.4, не пробовал с GWT 2.2.

1 голос
/ 31 мая 2011
...