Ответ 1
Вы могли бы назвать свой вопрос "Что добавляет JFace в SWT?".
Зрители из JFace, виджеты - из SWT.
В итоге JFace упрощает манипуляции с Widgets и вставляет его в графический интерфейс. JFace освобождает вас от всех трудностей манипулирования элементами виджета SWT, чтобы добавить поведение к статическим виджетам. SWT просто предоставляет слушателям, JFace использует этих слушателей, чтобы вы могли сосредоточиться на сопоставлении между моделью реального мира и его представлением SWT.
Посмотрите, что на конкретных примерах, которые вы указали.
-
Если вы создадите стандартный виджет SWT, вам придется описать содержимое дерева (установите один или несколько верхних элементов, привяжите некоторые TreeItems к каждому корню, возможно добавьте прослушиватель выбора), а затем выполните все его переходы. У этого дерева будет очень мало встроенной логики: просто свернуть/развернуть и выбрать слушателей. Период.
Это будет статическое дерево.
TreeViewer позволит вам вводить много разных видов поведения в это дерево: как оно заполняется, фильтруется, как обозначаются TreeItems.
Вы сделаете это, зарегистрировав классы, удовлетворяющие хорошо определенным интерфейсам (например, ILabelProvider позволит вам сопоставить метку TreeItem с именем файла в папке).
Без TreeViewer создание достойного гибкого дерева было бы тяжелой работой. Таким образом, это упрощает сопоставление базовой иерархической модели реального мира с представлением дерева SWT. -
То же самое верно для TableViewer. TableViewer позволяет добавлять в таблицу некоторые пользовательские действия. Как вы редактируете ячейку, например.
-
TreeViewerColumn. Давным-давно (до 3.3) в деревьях SWT не было столбцов. У деревьев не было столбиков Столбцы, но они не расширялись/не разваливались. Начиная с 3.3 вы можете добавлять столбцы в Дерево. Вы сделаете это лучше, добавив TreeViewerColumn в свой TreeViewer, а не просто добавив TreeColumn к дереву (что вам еще нужно сделать) по причинам, аналогичным приведенным выше, вы можете добавить поддержку для редактирования содержимого ячеек столбца и вы можете заполнить столбец (путем повторного написания поставщика меток).
-
TableViewerColumn. То же самое для TableViewers: добавляет управление версиями и контентом.
Для документа SWT/JFace, пожалуйста, посмотрите.
-
Зрители, принадлежащие JFace, не должны соответствовать SWT, чтобы идти вперед, найдите учебники JFace в Google, и вы найдете много примеров.
-
Книга Стива Норвевера (отец SWT) "SWT: набор стандартных виджета, том 1" (AFAIK еще нет второго тома).
-
"Eclipse: создание плагинов коммерческого качества" Эрика Клейберга и Дэн Рубе. Эрик теперь является вице-президентом Google и отцом WindowBuilder Pro
-
SWT-фрагменты также являются быстрым способом овладения SWT-объектами.
-
Другие хорошие книги включают
- "Окончательное руководство по SWT и JFace" Роба Уорнера и Роберта Харриса
- "Укомплектование SWT/JFAce в действии"