了解 Eclipse 中的 JFace 数据绑定,第 2 部分: 绑定的基础知识
2009-12-14 00:00:00 来源:WEB开发网让我们来看看 TextObservableValue 类及其父类,如清单 6 所示,可以看到 getter 和 setter 方法最终都调用了适配文本小部件的方法。getter 和 setter 可以轻松地映射为 getText() 和 setText() 方法。此外,更新侦听程序将把焦点更改适配为一般更改事件。它将检查在创建 TextObservableValue 时指定的更新策略,并将本机文本小部件事件适配为一般的 IObservableValue 事件。
清单 6. TextObservableValue 的 get/set 方法public final Object getValue() {
...
return doGetValue();
}
public void setValue(Object value) {
Object currentValue = doGetValue();
ValueDiff diff = Diffs.createValueDiff(currentValue, value);
...
doSetValue(value);
fireValueChange(diff);
}
public void doSetValue(final Object value) {
try {
updating = true;
bufferedValue = (String) value;
text.setText(value == null ? "" : value.toString()); //$NON-NLS-1$
} finally {
updating = false;
}
}
public Object doGetValue() {
return text.getText();
}
private Listener updateListener = new Listener() {
public void handleEvent(Event event) {
if (!updating) {
String oldValue = bufferedValue;
String newValue = text.getText();
// If we are updating on \
focus lost then when we fire the change
// event change the buffered value
if (updatePolicy == SWT.FocusOut) {
bufferedValue = text.getText();
if (!newValue.equals(oldValue)) {
fireValueChange\
(Diffs.createValueDiff(oldValue,
newValue));
}
} else {
fireValueChange\
(Diffs.createValueDiff(oldValue, text
.getText()));
}
}
}
};
- ››Eclipse 3.7反编译插件的安装
- ››eclipse CDT NDK环境搭建步骤
- ››Eclipse 如何自定义java class注释
- ››eclipse.ini内存设置
- ››Eclipse+PyDev离线配置Python开发环境
- ››Eclipse下jQuery文件报错解决方案
- ››Eclipse快捷键与使用技巧
- ››Eclipse 常用快捷键 常用技巧My Eclipse常用快捷键...
- ››Eclipse快捷键二
- ››Eclipse快捷键一
- ››Eclipse+SVN+Google Code配置过程
- ››eclipse中开发android程序时,打开layout配置文件自...
更多精彩
赞助商链接