您的位置:首页 > 其它

windows 2008 R2 Server无法远程桌面登陆

2015-07-31 18:01 495 查看
事件拦截器是Dataset与被绑定对象的纽带,通过事件拦截器实现数据绑定
public interface DatasetInterceptor {
public boolean doBeforeIntercept(Dataset dataset, String action, Object[] params);

public void onIntercept(Dataset dataset, String action, Object[] params);

public void doAfterIntercept(Dataset dataset, String action, Object[] params, int resultCode);
}


一个简单的数据绑定TextField,当Dataset发生ACTION_MOVE(当前记录行变动)事件时动态修改绑定字段内容,如下:
public class DatasetText extends TextField implements DatasetFormField {
private Dataset dataset;
private DatasetField field;

private DatasetInterceptor interceptor;

public DatasetText(Dataset dataset, DatasetField field) {
this.dataset = dataset;
this.field = field;
this.init();
this.bind();
}

public DatasetText(DatasetField field) {
this(null, field);
}

private void init() {
setFieldLabel(field.getTitle());
setName(field.getName());
setWidth(field.getEditWidth());
if(dataset != null) {

this.addListener(new TextFieldListenerAdapter(){

@Override
public void onBlur(Field field) {
dataset.set(field.getName(), DatasetText.this.getText());
}

@Override
public void onFocus(Field field) {
DatasetText.this.selectText();
}

});
}
}

@Override
public void bind() {
if(this.dataset == null) return;
if(this.interceptor == null)
this.interceptor = new DatasetInterceptorFormAdapter(Constants.ACTION_MOVE){
@Override
public void doAction(Dataset dataset, Object params) {
Record rec = dataset.getRecordAtCursor();
if(rec != null)
DatasetText.this.setValue(rec.getAsString(field.getName()));
}
};
this.dataset.addInterceptor(this.interceptor);
Record rec = dataset.getRecordAtCursor();
if(rec != null)
this.setValue(rec.getAsString(field.getName()));
}

@Override
public void unbind() {
if(this.dataset == null) return;
this.dataset.removeInterceptor(this.interceptor);
}

@Override
public Dataset getDataset() {
return this.dataset;
}

@Override
public DatasetField getField() {
return this.field;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: