私のエディタは複数の TextBoxes、CheckBoxes などで構成されています。ウィジェットによってトリガーされた ValueChangeEvents をエディタ自体でリッスンする適切な方法は何ですか?
Developer's Guide - Editorsを理解しようとしていますが、役に立ちません。
私のエディタは複数の TextBoxes、CheckBoxes などで構成されています。ウィジェットによってトリガーされた ValueChangeEvents をエディタ自体でリッスンする適切な方法は何ですか?
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!