#java #data-binding #swt #jface #windowbuilder
#java #привязка данных #swt #jface #windowbuilder
Вопрос:
Я пытаюсь привязать свой SWT UI к тестовой модели на Java. Привязка работает. Но значение в точности соответствует значению из модели. Итак, в случае, если модель является логическим значением и возвращает значение true, оно будет отображаться буквально как «true» в виджете пользовательского интерфейса, что не то, что я хочу показать своим пользователям. Есть ли способ, с помощью которого я могу проверить привязанное значение перед добавлением в виджет пользовательского интерфейса? Допустим, если модель возвращает true, я проверяю, было ли значение модели true, затем решаю отобразить на моей метке как «Это правильно», в противном случае «Нет, это неправильно», если false.
Аналогично, в случае, если у меня есть метка, и я хочу привязать ее к модели, которая возвращает значение кредитного баланса учетной записи, на моей метке может уже быть текст с надписью «Ваша учетная запись имеет», и я хотел бы просто добавить THE_BOUND_VALUE к метке и не перезаписывать все значение метки значением модели. Вот как я делаю свои привязки:
IObservableValue tableViewer_myTestObserveSingleSelection = ViewersObservables.observeSingleSelection(tableViewer_myTest);
IObservableList tableViewer_myTestDataContentObserveDetailList = BeansObservables.observeDetailList(tableViewer_myTestObserveSingleSelection, "DataContent", TestModelData.class);
tableViewer_DataContent.setInput(tableViewer_myTestDataContentObserveDetailList);
Эти коды генерируются из windowsbuilder pro в eclipse, но почему-то я не могу ничего использовать, чтобы изменить способ привязки значения к способу, которым я хочу отображать в своем пользовательском интерфейсе.
Спасибо за любую помощь.
Ответ №1:
Вы можете выполнять преобразование между типами с помощью конвертеров. Взгляните на этот пример.
Комментарии:
1. Спасибо за пример. Это действительно полезно. Я довольно новичок в конвертерах. Но когда я помещаю его в средство просмотра таблиц или компонент, который имеет отношения типа master-detail, и его детализация представлена в виде списка, я, похоже, не могу найти способ поместить в него преобразователи. Или я что-то упускаю? Есть ли еще примеры по этим вопросам UpdateStrategy? Когда я гуглю, я нахожу, что по этому поводу очень мало примеров.
2. @Xenon: Вы можете привязать средство просмотра таблиц с помощью ViewerSupport. Используйте поставщик меток для просмотра, чтобы установить, как на самом деле отображаются значения в вашей модели. Смотрите это: dev.eclipse.org/viewcvs/viewvc.cgi /…