Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по binding в swing / 9 сообщений из 9, страница 1 из 1
01.04.2014, 12:05
    #38601722
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
Есть класс сущность, который также используется как бин.(буквально пара полей)
Поле ввода jFormattedTextField связано(параметр text) с полем из сущности.
В базу все вводиться и сохраняется нормально.
1) Вопрос в том, чтобы при нажатии на кнопку вернуть значение в jFormattedTextField из базы.
Я повесил на action кнопки
Код: java
1.
 xxxBean = new xxxBeanJpaControl().findByID(x);


(xxxBean это экземпляр бина в форме который используется для привязки.)
И думал, что дальше binding мне сам вставит полученные значения в привязанные поля. Но ничего не происходит ;(
Хотя значения из базы возвращаются.
2) Что делаю не так?
...
Рейтинг: 0 / 0
01.04.2014, 12:13
    #38601731
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
Код биндинга покажите. Вероятно нужно вызвать событие propertyChanged, чтобы сказать биндингу что новые данные появились.
...
Рейтинг: 0 / 0
01.04.2014, 12:34
    #38601760
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
Код: java
1.
2.
3.
4.
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UdateStrategy.READ_WRITE, xxxBean,org.jdesktop.beansbinding.ELProperty.create("${art}"),
jFormattedTextField1, org.jdesktop.beansbinding.BeanProperty.create("test"), "");
bindingGroup.addBinding(binding); 
...
Рейтинг: 0 / 0
01.04.2014, 12:52
    #38601789
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
olegeos,

Ну, вот, даже если просто логику включить и подумать.
Мы прибиндили один объект к UI форме. А потом вычитали другой объект из БД.
Как об этом биндинг узнает? Никак.

Код биндинга генереный? Ибо нафиг там ELProperty и пустая строка в конце, мне не понять.

Варианта два.
1) Не знаю будет ли работать. Но можно сохранить ссылку на Binding и вызвать у него setSourceObject
http://doc.formdev.com/beansbinding/org/jdesktop/beansbinding/Binding.html#setSourceObject(SS)

2) Таки почитать про MVVM паттерн, который как раз создан для биндинга. Мы у себя к GUI классу всегда заводим ViewModel класс, который внутри содержит ссылки на сущности, а так же некоторую логику, относящуюся только к GUI.
Весь биндинг привязан к ViewModel, а не к Model. Тогда, если надо обновить Model (xxxBean) просто вызываете
viewModelInstance.setBean(xxxBean);
У ViewModel, соотвественно должен поддерживать PropertyChange, либо рукописный, либо сгенерить можно через всяки прокси хаки.
...
Рейтинг: 0 / 0
01.04.2014, 12:59
    #38601798
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
Ещё меня часто посещает мысль что на Model вообще нельзя биндить. Все поля UI должны быть забинжены на свойства ViewModel.
Это приводит к некоторому оверхеду в коде, но зато, сэкономит много кривого кода, когда нужно перехватывать определенные события изменения состояния и принимать решения, разрешать новое состояние в модели или нет.
С другой стороны если всю Model делать строго по JavaBean спецификациям, может и не нужно сильно заморачиваться. К тому же у вас, похоже, 2х звенка. Проблемы с сервером нет.
...
Рейтинг: 0 / 0
01.04.2014, 13:18
    #38601819
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
Так вот не понимаю, "прибиндили" к xxBean(этот экземпляр определен в начале один раз) через контроллер получили xxxBean = new xxxBeanJpaControl().findByID(x);
findByID как раз и возвращает такой же экземпляр но с заполненными полями.
Пока это тестовая маленькая программка так что лишний класс не нужен, модель соответствует, но на всякий случай проверю может все-таки в этом проблема.
Код генерированный.
Даже если взять и вызвать в xxBean сет метод и записать туда что-нибудь на форме это не отразиться.
...
Рейтинг: 0 / 0
01.04.2014, 13:23
    #38601825
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
olegeosfindByID как раз и возвращает такой же экземпляр но с заполненными полями.

А какая разница такой же он или нет. Этот другой экземпляр. Binding про него ничего не знает.
...
Рейтинг: 0 / 0
01.04.2014, 13:31
    #38601840
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
что делать??
понятно что он другой, а как же ссылка на него...
...
Рейтинг: 0 / 0
01.04.2014, 13:37
    #38601847
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по binding в swing
olegeosчто делать??
Вроде написал рецепты 15815508
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по binding в swing / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]