Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / обновление списка элементов в Table(SWT) / 5 сообщений из 5, страница 1 из 1
18.06.2007, 18:17:02
    #34602787
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновление списка элементов в Table(SWT)
Знаю что с данной конкретной ситуацией может никто и не сталкивался, так что любая помощь (предложения, мысли и т.д.) очень помогут. Есть в STW виртуал Table с Checkbox'ами. Есть у него листенер который апдейтит записи в этой Table (единственный способ загнать данные в SWT Table. Если не прав поправьте).
Далее. Я хочу добавить в уже существующий список item'ов которые содержатся в dependenceList еще пару (из newCustomDependenceis ) и сделать их checked.
делаю так:
Код: plaintext
1.
2.
3.
4.
5.
 int  startIndex = dependenceList.size();
dependenceList.addAll(newCustomDependenceis);
 int  stopIndex = dependenceList.size()- 1 ;
dependenceTable.setItemCount(dependenceList.size());

Toolbox.setTableItemsSelection(dependenceTable, startIndex, stopIndex, true);

Соответственно setTableItemsSelection есть статический метод:

Код: plaintext
1.
2.
3.
4.
5.
  
 static   public   void  setTableItemsSelection(Table table,  int  startIndex,  int  stopIndex,  boolean  checked) {
     for  ( int  i = startIndex; i<=stopIndex; i++) {
      table.getItem(i).setChecked(checked);
    }
}

А в Listener (SWT.SetData...) у меня данные грузятся из dependenceList :

Код: plaintext
1.
2.
3.
4.
5.
6.
   dependenceTable.addListener(SWT.SetData,  new  Listener() {
         public   void  handleEvent(Event event) {
          TableItem item = (TableItem)event.item;
           int  tableIndex = dependenceTable.indexOf(item);
          item.setText(dependenceList.get(tableIndex));
        }
      });

Теперь проблема. Если я НЕ вызываю функцию setTableItemsSelection после того как в список добавил новые элементы - все ок. Элементы добавляются, отображаются но не являются выбранными (checked). Если я её вызываю, то происходит следующее: элементы добавляются в список, затем вызывается функция setTableItemsSelection которая пытается установить элементы в checked, но на самом деле элементы еще не были подгружены этим самым SWT лисенером и в итоге - косяк.
То есть получается, что мне надо. Добавить элементы в список dependenceList . Каким-то образом заставить сработать лисенер Table для обновления данным из списка и затем уже сделать часть элементов checked. Как этого добиться? Может есть другой способ?

Буду очень благодарен за помощь.
...
Рейтинг: 0 / 0
19.06.2007, 10:46:50
    #34603874
Nevolin Alexandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновление списка элементов в Table(SWT)
А реализация должна быть на чистом SWT? Может JFace прикрутить? Там есть удобный TableViewer.
...
Рейтинг: 0 / 0
19.06.2007, 12:10:33
    #34604286
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновление списка элементов в Table(SWT)
Nevolin AlexandrА реализация должна быть на чистом SWT? Может JFace прикрутить? Там есть удобный TableViewer.

можно с JFace. Сейчас посмотрю про TableViewer. Спасибо.
...
Рейтинг: 0 / 0
19.06.2007, 13:48:31
    #34604759
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновление списка элементов в Table(SWT)
bemtaill Nevolin AlexandrА реализация должна быть на чистом SWT? Может JFace прикрутить? Там есть удобный TableViewer.

можно с JFace. Сейчас посмотрю про TableViewer. Спасибо.

Мозг кипит. Не смог найти толковой документации по использование TableViewer, поэтому есть вопросы на которые хотелось бы получить ответы.

1. setContentProvider(new IContentProvider(){...}); - служит для того чтобы определить откуда брать данные для отображения? И как мне быть если я просто хочу перегнать данные из List в таблицу? Я так понимаю нужно создать массив элементов Object elements[].

2. dependenceTableViewer.setLabelProvider(new ITableLabelProvider() {...}); - используется для определения как именно отображать данные. getColumnText на самом деле getColumnData по смыслу. Так?

3. Что такое setInput?

Подводя итог : какова основная идея отображения элементов из List в TableViewer?
...
Рейтинг: 0 / 0
20.06.2007, 12:03:54
    #34607228
Nevolin Alexandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновление списка элементов в Table(SWT)
Куча примеров
Еще у них вроде недавно датабиндинг появился, хотя я сам не пробовал.
JFace_Data_Binding
Ну и пример для TableViewer пример
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / обновление списка элементов в Table(SWT) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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