Что JFace добавляет к SWT? - PullRequest
       12

Что JFace добавляет к SWT?

15 голосов
/ 26 февраля 2011

Какая разница между следующим:

  1. TreeViewer & Tree
  2. TableViewer & Table
  3. TreeViewerColumn & TreeColumn
  4. TableViewerColumn & TableColumn

Когда использовать просмотрщик и обычный виджет?

PS: Было бы очень полезно, если бы вы могли помочь мне найти хороший ресурс для их понимания. Заранее спасибо!

1 Ответ

25 голосов
/ 26 февраля 2011

Вы могли бы озаглавить свой вопрос "Что JFace добавляет к SWT?".

Зрители из JFace, виджеты из SWT.

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

Давайте посмотрим на конкретные примеры, которые вы перечислили.

  1. Если вы создаете стандартный виджет SWT, вам нужно будет описать содержимое дерева (установить один или несколько верхних элементов, привязать несколько TreeItems к каждому корню, возможно, добавить прослушиватель выбора), а затем управлять всеми его переходы. В этом Дереве будет очень мало встроенной логики: просто сверните / разверните и выберите слушателей. Период.
    Это будет статическое дерево.
    TreeViewer позволит вам внедрить много разных видов поведения в это дерево: как оно заполнено, отфильтровано, как помечены элементы TreeItems.
    Вы сделаете это, зарегистрировав классы, удовлетворяющие хорошо заданным интерфейсам (например, ILabelProvider позволит вам сопоставить метку TreeItem с именем файла в папке).
    Без TreeViewer создание приличного адаптивного дерева было бы большой тяжелой работой. Таким образом, это упрощает сопоставление базовой иерархической модели реального мира с представлением дерева SWT.

  2. То же самое относится и к TableViewer. TableViewer позволяет вам добавить некоторые пользовательские поведения в вашу таблицу. Как вы редактируете ячейку например.

  3. TreeViewerColumn. Давным-давно (до 3.3) деревья SWT не имели столбцов. Деревья не имели столбцов. В таблицах были столбцы, но они не расширялись / не разрушались. Начиная с 3.3 вы можете добавлять столбцы в дерево. Вы делаете это лучше, добавляя TreeViewerColumn в TreeViewer, а не просто добавляя TreeColumn в Tree (что вам еще нужно сделать) по причинам, аналогичным приведенным выше, вы можете добавить поддержку редактирования содержимого ячеек столбца. и вы можете заполнить столбец (снова написав поставщик меток).

  4. TableViewerColumn. То же самое для TableViewers: добавлено управление версиями и контентом.

Для документации по SWT / JFace, пожалуйста, ознакомьтесь.

  1. Зрители, принадлежащие JFace, не относятся к SWT, чтобы продолжить, посмотрите учебники по JFace в Google, и вы найдете много примеров.

  2. Книга Стива Нортовера (отец SWT) "SWT: стандартный набор инструментов виджета, том 1" (AFAIK, второго тома еще нет).

  3. «Затмение: создание плагинов коммерческого качества» Эрика Клейберга и Дэна Рубе. Эрик теперь вице-президент Google и отец WindowBuilder Pro

  4. Фрагменты SWT также позволяют быстро освоить объекты SWT.

  5. Другие хорошие книги включают

    • «Полное руководство по SWT и JFace» Роба Уорнера и Роберта Харриса
    • "SWT / JFAce Мэннинга в действии"
...