0
我有DataGrid,其中一列包含圖像。我使用這段代碼來生成列。GWT ImageCell:在DataGrid或CellTable中動態更改圖像
Column<Job, String> expandHideColumn = new Column<Job, String>(
imageCell) {
@Override
public String getValue(Job object) {
return null;
}
@Override
public void render(Context context, Job Object, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<img src='images/expand.jpeg' style='cursor: pointer' />");
}
}
我想要的是點擊它必須改變的圖像。爲此,我加上了一個的ImageCell單擊處理這樣
ImageCell imageCell = new ImageCell() {
@Override
public Set<String> getConsumedEvents() {
Set<String> events = new HashSet<String>();
events.add("click");
return events;
}
};
在onBrowserEvent方法我寫這篇
@Override
public void onBrowserEvent(Context context, Element element,
Job job, NativeEvent event) {
if (element.getFirstChildElement().isOrHasChild(
Element.as(event.getEventTarget()))) {
if (element.getFirstChildElement().getPropertyString("src")
.matches("(.*)expand.jpeg")) {
element.getFirstChildElement().setPropertyString("src",
"images/collapse.jpeg");
} else {
element.getFirstChildElement().setPropertyString("src",
"images/expand.jpeg");
}
}
}
我不認爲這是對單擊事件改變圖像的好方法。有更好的解決方案嗎?