У меня есть простой JFrame с несколькими jtextfields внутри, свойство text каждого jtextfield связано с полем объекта через привязку данных (я использовал конструктор окон для настройки привязки), когда пользователь изменяет что-то в JTextField, изменения автоматически отражаются в свойстве связанного объекта, мне нужно, чтобы при нажатии пользователем кнопки JButton (кнопка «Отмена») все сделанные пользователем изменения игнорировались.
Поэтому я хочу, чтобы, когда пользователь начал редактировать поле, как транзакция, была запущена, и в зависимости от действия пользователя (кнопка «ОК» или «Отмена») транзакция была зафиксирована или откатана.
Возможно ли это с платформой Swing Data Binding? Как ?
Вот код, который инициализирует привязки данных:
/**
* Data bindings initialization
*/
protected void initDataBindings() {
//Title field
BeanProperty<Script, String> scriptBeanProperty = BeanProperty.create("description");
BeanProperty<JTextField, String> jTextFieldBeanProperty = BeanProperty.create("text");
AutoBinding<Script, String, JTextField, String> autoBinding = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, script, scriptBeanProperty, textFieldName, jTextFieldBeanProperty, "ScriptTitleBinding");
autoBinding.bind();
//Id field
BeanProperty<Script, Long> scriptBeanProperty_1 = BeanProperty.create("id");
BeanProperty<JLabel, String> jLabelBeanProperty = BeanProperty.create("text");
AutoBinding<Script, Long, JLabel, String> autoBinding_1 = Bindings.createAutoBinding(UpdateStrategy.READ, script, scriptBeanProperty_1, labelScriptNo, jLabelBeanProperty, "ScriptIdBinding");
autoBinding_1.bind();
}