|
|
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
Решил в своём проекте сделать отдельную тулзу на javafx. Читаю мануалы и всякие туториалы и не могу понять вот какую вещь: если у меня уже есть некая объектная модель, которую мне нужно редактировать и сохранять в БД, то мне нужно создать для каждого своего класса обёртку с пропертями для биндинга, и потом как-то эту химеру превращать в свой оригинальный класс? Или же в таком случае всё по старинке? навводили в форму данных, по кнопке сграбили из всех полей в соответствующие поля объекта и сохранили в БД? Тогда получаю проблему с отображением всяких ListView и TableView. Хочется сделать всё по уму [spoiler] youtube ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:57 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
DDiverесли у меня уже есть некая объектная модель, которую мне нужно редактировать и сохранять в БД, то мне нужно создать для каждого своего класса обёртку с пропертями для биндинга, и потом как-то эту химеру превращать в свой оригинальный класс? Да. Это называется Model-View-ViewModel (MVVM). Model - ваша существующая модель. View - это JavaFX контролы. ViewModel это "обёртка" с биндингами. На простом проекте это, конечно, раздражает. Но на крупных проетах будет видна разница, так как ViewModel может быть и в структуре адаптирована для View, тем самым разрывая сильную связь между View и Model. DDiverИли же в таком случае всё по старинке? навводили в форму данных, по кнопке сграбили из всех полей в соответствующие поля объекта и сохранили в БД? Тогда получаю проблему с отображением всяких ListView и TableView. Не-не-не. Не вариант. DDiverЧто-то вроде такого придётся пилить? К сожалению, да. У меня получилось вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:10 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, может ещё чутка поможете? а то эти биндинги с пропетями уже повредили рассудок. допустим есть класс Код: java 1. 2. 3. 4. для переменной s всё понятно, используем в обёртке StringProperty. а как поступить с листом? Код: java 1. 2. 3. или Код: java 1. 2. 3. элементы списка так же будут использоваться в GUI (изменяться, добавляться, удаляться) 1 - Если всё оборачивать, то для получения самого верхнего объекта(MyClassA), придется пробегать по всей коллекции и получать getModel() у каждого такого врапера(MyClassBWrapper) и засовывать полученные объекты в коллекцию оригинального класса. 2 - Если же хранить исходные объекты, то ,во-первых, получается каша из классов и ,во-вторых, нужно в самом контроллере будет создавать обёртки, перед передачей выбранного объекта на редактирование в другое окно. Склоняюсь к первому варианту. Тогда View будет получать уже готовые обёртки от сервиса, как-то с ними работать, и возвращать обратно сервису, который уже развернет всё обратно. Только вот что-то лишней писанины ну просто до … получается. Пока тока один геморрой, и никакого профита :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 16:49 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
чо-то какой-то пушной зверёк вырисовывается. вот что приблизительно получается: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. Т.к. объекты подгружаются хибером, то просто очистить коллекцию и добавить всё из ObservableList'а не получиться. Единственный способ до которого я дошёл, синхронизировать состояние коллекции объекта(модели) с listProperty через листенер. Простая пограмулька с простой логикой, превращается в какого-то Франкинштейна. И что самое печальное, не понятно, в верном ли направление все эти бултыхания. В интернетах все примеры, аля, ХеллоуВорлд. ВИ простейший: - Пользователь получает список объектов. - Выбирает нужный и жмёт пимпу редактировать - Открывается окно со списком свойств самого объекта и списком объектов в его коллекции. - Пользователь может выбрать объект из этой коллекции и также открыть окно его редактирования. Кто-то же наверняка уже делал подобного рода интерфейсы, как вы это реализовывали? need HELP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 17:01 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
DDiver, может я что не понимаю, может можно было бы лист, который получаешь от хибера обернуть в ObservableListWrapper? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 17:10 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
danatrielDDiver, может я что не понимаю, может можно было бы лист, который получаешь от хибера обернуть в ObservableListWrapper? видел этот класс, но почему-то подумал что это не то что мне нужно :( спасибо, добрый человек. одной головной болью меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 17:20 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
DDiver, честно сказать, спасибо не мне, а человеку-базе знаний Blazkowicz, потому что я задавал аналогичные вопросы ему:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 17:28 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
Т.к. объекты подгружаются хибером, то просто очистить коллекцию и добавить всё из ObservableList'а не получиться. Единственный способ до которого я дошёл, синхронизировать состояние коллекции объекта(модели) с listProperty через листенер. Простая пограмулька с простой логикой, превращается в какого-то Франкинштейна. И что самое печальное, не понятно, в верном ли направление все эти бултыхания. В интернетах все примеры, аля, ХеллоуВорлд. ВИ простейший: - Пользователь получает список объектов. - Выбирает нужный и жмёт пимпу редактировать - Открывается окно со списком свойств самого объекта и списком объектов в его коллекции. - Пользователь может выбрать объект из этой коллекции и также открыть окно его редактирования. Кто-то же наверняка уже делал подобного рода интерфейсы, как вы это реализовывали? need HELP не лучше пользователь выбирает с каким объектом работать нажимает редактировать и редактирует его. если ему вложенные объекты надо редактировать так не проще ли сразу перейти к этим объектам. в контексте webinterface то там проще каждый вложенный объект это сслылка на страницу редактирования свойст этого объекта. сслыка генерируется динамически. в контексте javafx то как вариант можно разбить на панели каждая из которых работает с определенным объектом. тогда если вложенные объекты нужно искать в связке с родителем то просто нужно добавить фильтр по родителю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 20:14 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
[quot lleming ВИ простейший: - Пользователь получает список объектов. - Выбирает нужный и жмёт пимпу редактировать - Открывается окно со списком свойств самого объекта и списком объектов в его коллекции. - Пользователь может выбрать объект из этой коллекции и также открыть окно его редактирования. Кто-то же наверняка уже делал подобного рода интерфейсы, как вы это реализовывали? need HELP[/quot] И Вы это всё собираетесь делать на сыром и абсолютно недоделанном JavaFX? Где понятие DataBinding присутствует только в головах создателей этого чуда? Не пробовали Delphi использовать? Или хотя бы DotNet? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 16:01 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
DDiverчо-то какой-то пушной зверёк вырисовывается. ... Ага. особенно прикольно это наблюдать после того, как сбиндишь грид и TextField, который так красиво меняет свое значение ровно до изменения циферки в TableView. А потом - всё. Красивость, Observable, Bindings вообще перестают волновать. Потому что рисовали ltutythfns. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 16:09 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
BlazkowiczDDiverесли у меня уже есть некая объектная модель, которую мне нужно редактировать и сохранять в БД, то мне нужно создать для каждого своего класса обёртку с пропертями для биндинга, и потом как-то эту химеру превращать в свой оригинальный класс? Да. Это называется Model-View-ViewModel (MVVM). Model - ваша существующая модель. View - это JavaFX контролы. ViewModel это "обёртка" с биндингами. На простом проекте это, конечно, раздражает. Но на крупных проетах будет видна разница, так как ViewModel может быть и в структуре адаптирована для View, тем самым разрывая сильную связь между View и Model. DDiverИли же в таком случае всё по старинке? навводили в форму данных, по кнопке сграбили из всех полей в соответствующие поля объекта и сохранили в БД? Тогда получаю проблему с отображением всяких ListView и TableView. Не-не-не. Не вариант. DDiverЧто-то вроде такого придётся пилить? К сожалению, да. У меня получилось вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. Прошу прощения у автора топика (если он, конечно, видит), но у меня вопрос непосредственно к уважаемому Blazkowicz. Интересен Ваш вариант построения решени. Так как только разбираюсь, хочу спросить - в Вашем коде Вы ушли от ViewModel? Понимаю, что прошло определенное время, просто нужно разобраться с подходом) Спасибо заранее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 16:59 |
|
||
|
подскажите по javafx
|
|||
|---|---|---|---|
|
#18+
NDAlekseyТак как только разбираюсь, хочу спросить - в Вашем коде Вы ушли от ViewModel? Понимаю, что прошло определенное время, просто нужно разобраться с подходом) Спасибо заранее) Нет, не ушел. Я привел пример из своего проекта. Да, код местами туповатый. Но на крупном ERP проекте выгода от MVVM будет более очевидна. А c дефолтными методами в Java 8, можно ещё больше логики шарить между клиентом и сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 12:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38840912&tid=2125033]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 439ms |

| 0 / 0 |
