Eclipse数据绑定:延迟模型更新直到对话框确认
我有一个带有默认按钮的TitlearReadialog,其中我使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮Eclipse数据绑定:延迟模型更新直到对话框确认,eclipse,data-binding,jface,Eclipse,Data Binding,Jface,我有一个带有默认按钮的TitlearReadialog,其中我使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮 谢谢 我不知道如何拖延。另一种方式是,要注册DisposeListener以检查用户,请选择ok或cancel。如果结果不好,我放弃更改 在我的例子中,我绑定了从hibernate获取的模型。当“确定”时是否保持休眠,当按下“取消”时是否刷新模型(从数据库重新读取数据) 但是,我也希望函数延迟或撤消更改。您必须设置POLICY\u CONVERT或POLICY
谢谢 我不知道如何拖延。另一种方式是,要注册DisposeListener以检查用户,请选择ok或cancel。如果结果不好,我放弃更改 在我的例子中,我绑定了从hibernate获取的模型。当“确定”时是否保持休眠,当按下“取消”时是否刷新模型(从数据库重新读取数据)
但是,我也希望函数延迟或撤消更改。您必须设置
POLICY\u CONVERT
或POLICY\u ON\u REQUEST
的UpdateValueStrategy
,以便绑定“延迟”模型更新:
DataBindingContext dbc = new DataBindingContext();
final Binding binding = dbc.bindValue(target, model,
new UpdateValueStrategy(UpdateValueStrategy.POLICY_CONVERT), null);
然后您可以通过OK按钮更新目标,如下所示:
Button btnOK = mToolkit.createButton(parent, "OK", SWT.NONE);
btnOK.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
binding.updateModelToTarget();
}
});
或者,您可以通过调用DataBindingContext.updateTargets()