如何将Clickhandler添加到cellTable单元格(或行)

时间:2011-05-31 07:50:01

标签: gwt handler gwt-2.2-celltable

我想在我的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 个答案:

答案 0 :(得分:17)

单元格必须声明它们处理的事件,然后可以将浏览器事件传递给单元格。

    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 :(得分:1)