1
我的編輯器由幾個文本框,複選框等組成。在它的小部件觸發的ValueChangeEvents編輯器本身上監聽的正確方法是什麼?如何聆聽由GWT編輯器<?>上的小部件觸發的ValueChangedEvents?
我試圖理解Developer's Guide - Editors,但無濟於事。
我的編輯器由幾個文本框,複選框等組成。在它的小部件觸發的ValueChangeEvents編輯器本身上監聽的正確方法是什麼?如何聆聽由GWT編輯器<?>上的小部件觸發的ValueChangedEvents?
我試圖理解Developer's Guide - Editors,但無濟於事。
(從G +後擴展討論)
的一點想法,你可能會考慮:
實例編輯遊客尋找HasValueChangeHandlers
:
driver.accept(new EditorVisitor(){
@Override
public <T> void endVisit(EditorContext<T> ctx) {
Editor<T> ed = ctx.getEditor();
if (ed instanceof HasValueChangeHandlers) {
@SuppressWarnings("unchecked")
HasValueChangeHandlers<T> hasHandlers = (HasValueChangeHandlers<T>) ed;
hasHandlers.addValueChangeHandler(new ValueChangeHandler<T>() {
@Override
public void onValueChange(ValueChangeEvent<T> event) {
// TODO update button
// consider comparing event.getValue() with ctx.getFromModel()
// though that requires seeing which editors have changes...
}
});
}
}
});
實例輪詢更改:
Timer t = new Timer(){
@Override
public void run() {
boolean hasChanges = driver.isDirty();
// TODO update button with the hasChanges value
}
};
t.schedule(500);
// Don't forget to cancel() this when done, both on save and cancel!