Eclipse DataBinding: задержка обновления модели до подтверждения диалога - PullRequest
0 голосов
/ 07 августа 2010

У меня есть TitleAreaDialog с кнопками по умолчанию, где я использую привязку данных для синхронизации модели и виджетов. Как отложить обновление модели до тех пор, пока пользователь не нажмет кнопку «ОК»?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 февраля 2014

Вы должны установить UpdateValueStrategy из POLICY_CONVERT или POLICY_ON_REQUEST для привязки, чтобы «задерживать» обновления модели:

DataBindingContext dbc = new DataBindingContext();
final Binding binding = dbc.bindValue(target, model, 
    new UpdateValueStrategy(UpdateValueStrategy.POLICY_CONVERT), null);

Затем вы можете обновить цель с помощью кнопки ОК следующим образом:

Button btnOK = mToolkit.createButton(parent, "OK", SWT.NONE);
btnOK.addSelectionListener(new SelectionAdapter()
{
    @Override
    public void widgetSelected(SelectionEvent e)
    {
        binding.updateModelToTarget();
    }
});

Или вы можете обновить все привязки в DataBindingContext, позвонив по номеру DataBindingContext.updateTargets()

0 голосов
/ 16 августа 2010

Я не знаю, как отложить.Другим способом, чтобы зарегистрировать DisposeListener для проверки пользователя, выберите ok или отмена.Если результат не в порядке, я отказываюсь от изменений.

В моем случае я связал модель, извлеченную из спящего режима.Сохранять спящий режим, когда все в порядке, обновлять модель (перечитывать данные из базы данных), когда нажата кнопка отмены.

Однако я хочу, чтобы функция также задерживала или отменяла изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...