2011-05-31 36 views
11

我想在我的cellTable的列上有一個處理程序。該列是一個ImageResourceCell,我會在點擊它時刪除行 這裏是我的代碼如何將Clickhandler添加到cellTable單元格(或行)

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

但我不知道怎麼描述 是否可以插入一個處理程序?

歡迎任何建議

謝謝。

回答

16

單元必須聲明它們處理的事件,然後可以將瀏覽器事件傳遞給單元。

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試試。

+0

哇,我肯定難住。感謝這個答案! – checketts 2012-08-27 20:15:41

相關問題