Eclipse数据绑定:延迟模型更新直到对话框确认

Eclipse数据绑定:延迟模型更新直到对话框确认,eclipse,data-binding,jface,Eclipse,Data Binding,Jface,我有一个带有默认按钮的TitlearReadialog,其中我使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮 谢谢 我不知道如何拖延。另一种方式是,要注册DisposeListener以检查用户,请选择ok或cancel。如果结果不好,我放弃更改 在我的例子中,我绑定了从hibernate获取的模型。当“确定”时是否保持休眠,当按下“取消”时是否刷新模型(从数据库重新读取数据) 但是,我也希望函数延迟或撤消更改。您必须设置POLICY\u CONVERT或POLICY

我有一个带有默认按钮的TitlearReadialog,其中我使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮


谢谢

我不知道如何拖延。另一种方式是,要注册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()