0

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

谢谢!

4

2 回答 2

0

我不知道怎么拖延。另一种方式,注册 DisposeListener 以检查用户选择 ok 或 cancel。如果结果不好,我放弃更改。

就我而言,我绑定了从休眠中获取的模型。当'ok'时保持休眠状态,按下取消时刷新模型(从数据库重新读取数据)。

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

于 2010-08-16T05:28:30.067 回答
0

您必须设置UpdateValueStrategyofPOLICY_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()

于 2014-02-05T12:08:06.803 回答