11

I would like to have a handler on a column of my cellTable.The column is an ImageResourceCell and I would that when I click on it, it delete the row Here is my code

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/>");

But I didn't know how to insert a handler as described Is it possible ??

any suggestions are welcome

Thanks.

4

3 回答 3

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。

于 2011-12-27T17:12:25.553 回答
2

你见过在 GWT 的 CellTable 中添加 clickHandler 到行吗??

于 2011-05-31T07:57:31.277 回答
0

CellTable 内置了对处理点击事件的支持。您可以添加一个 CellPreviewHandler,当单击一行时将调用它。它将接收事件中的许多项目,例如本机事件、单元格和数据行值。因为它不仅会触发点击事件,因此您需要检查是否触发了点击事件。只需测试通过的事件:

boolean isClick = "click".equals(event.getNativeEvent().getType())
于 2021-10-19T10:57:41.257 回答