Привязка списка SWT к списку ArrayList - PullRequest
1 голос
/ 26 мая 2011

Я пытаюсь привязать ArrayList объектов к виджету Java SWT List.Вот что у меня есть:

    DataBindingContext bindingContext = new DataBindingContext();
    //
    myModel= new WritableList(buses, MyObject.class); 
    IObservableList listWidgetObs = SWTObservables.observeItems(listWidget);
    bindingContext.bindList(listWidgetObs , myModel, null, null);
    //
    return bindingContext;

Но почему-то это не похоже на работу.Я пытался в течение долгого времени, но все еще безуспешно.Это моя первая попытка связывания данных в Java.Как связать ArrayList в качестве поставщика данных виджета «Список SWT» и затем связать его со значением вызова метода getName () в классе MyObject?

Спасибо!

1 Ответ

2 голосов
/ 21 июня 2011

Из вашего примера выглядит, что список моделей (myModel) содержит объекты типа MyObject.Но это неправильно, так как список содержимого SWT List должен быть строкой.

У вас есть (как минимум) три варианта:

  • объекты в списке должны бытьтипа String, поэтому вы должны конвертировать объекты при создании наблюдаемого списка, или
  • вы должны предоставить UpdateListStrategy in bindingList(...) или
  • , которые вы связываете с ListViewer с LabelProvider

Выбор зависит от того, могут ли объекты myModel динамически изменяться.

Обычно я выбираю второй вариант, когда это возможно, так как я стараюсь не смешиватьи привязка данных, и JFace, если это действительно очень необходимо.Альтернатива может иногда получать довольно некрасивые цепочки уведомлений / прослушивателей ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...