Значение метки по умолчанию для элемента управления org.eclipse.swt.widgets.Text; предотвратить привязку данных от постоянного значения - PullRequest
0 голосов
/ 26 сентября 2011

Hy,

предположим, что элемент управления org.eclipse.swt.widgets.Text подключен через привязку данных к модели Person. Текст представляет собой фамилию человека.

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

Если в модели нет значения для фамилии, я хочу, чтобы текстовый элемент управления содержал метку подсказки, s.a. «Укажите фамилию», которая не должна сохраняться!

Я мог бы создать это поведение, добавив modifyListener к textcontrol, который устанавливает текст, если длина setText равна 0, однако я не могу запретить привязке данных тогда сохранять «Вставить фамилию»!

Я попытался расширить Text (для переопределения getText), что недопустимо, и для переноса Text в «LabeledText» требуется изменить DataBinding!

Кто-нибудь знает решение для этого?

Thx

Ответы [ 2 ]

2 голосов
/ 16 декабря 2012

org.eclipse.swt.widgets.Text.setMessage () - это метод, точно выполняющий запрошенную задачу.

1 голос
/ 26 сентября 2011

Я думаю, что довольно сложно симулировать такое поведение со стандартными виджетами SWT.Так что, вероятно, вам нужно создать собственный виджет с симуляцией проверки внутри.Ваш валидатор должен вернуть вам статус валидации, который впоследствии можно будет использовать.

...