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

В чем разница между следующим:

  • TreeViewer и дерево
  • TableViewer и Table
  • TreeViewerColumn и TreeColumn
  • TableViewerColumn и TableColumn

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

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

Ответы

Ответ 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 в действии"