Eclipse DataBinding:延迟模型更新,直到对话框确认

时间:2010-08-06 20:01:11

标签: eclipse data-binding jface

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

谢谢!

2 个答案:

答案 0 :(得分:0)

我不知道如何延迟。另一种方法是,注册DisposeListener以检查用户选择ok或取消。如果结果不合适,我会放弃更改。

就我而言,我将从hibernate获取的模型绑定。当'ok'时,休眠是否仍然存在,按下取消时刷新模型(从数据库重新读取数据)。

但是,我希望该功能也可以延迟或撤消更改。

答案 1 :(得分:0)

您必须为绑定设置UpdateValueStrategy POLICY_CONVERTPOLICY_ON_REQUEST以“延迟”模型更新:

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

来更新DataBindingContext.updateTargets()中的所有绑定