0
我們的應用程序將顯示它有一個ImageResourceCell列CellTable:如何在CellTable(GWT 2.4)中爲ImageResourceCell創建PanelPopup?
Column<Alert, ImageResource> noteColumn = new Column<Alert, ImageResource>(new ImageResourceCell()) {
@Override
public ImageResource getValue(Alert alert) {
if (alert.getNote() != null && alert.getNote().length() > 0) {
return images.note();
} else {
return images.emptyNote();
}
}
};
dataTable.addColumn(noteColumn, "");
我們想,這樣當用戶在圖像上移動鼠標了一個PopupPanel顯示修改此列。 PopupPanel的內容應該專門用於列中的每一行。達到此目的的最佳方法是什麼?
我最初的嘗試(基於答案a somewhat-similar question)看起來是這樣,但這裏的問題是,我不能夠從每個警報獲得「音符」爲PopupPanel:
private class MyImageResourceCell extends ImageResourceCell {
@Override
public Set<String> getConsumedEvents() {
Set<String> consumedEvents = new HashSet<String>();
consumedEvents.add("mouseover");
consumedEvents.add("mouseout");
return consumedEvents;
}
@Override
public void onBrowserEvent(Context context,
Element parent,
ImageResource value,
NativeEvent event,
ValueUpdater<ImageResource> imageResourceValueUpdater) {
switch (DOM.eventGetType((Event) event)) {
case Event.ONMOUSEOVER:
// show panel
break;
case Event.ONMOUSEOUT:
// hide panel
break;
default:
break;
}
}
}
private void createAndAddNoteColumn() {
Column<Alert, ImageResource> noteColumn = new Column<Alert, ImageResource>(new MyImageCell()) {
@Override
public ImageResource getValue(Alert alert) {
if (alert.getNote() != null && alert.getNote().length() > 0) {
return images.note();
} else {
return images.emptyNote();
}
}
};
dataTable.addColumn(noteColumn, "");
}