Я легко могу понять, почему вы запутались ... действительно, есть много способов сделать это. Вы даже не указали привязку данных, которая предоставляет вам еще один способ заполнения и декорирования рассматриваемой таблицы.
Чтобы подвести итог использования различных API:
- SWT предоставляет основные виджеты и элементы управления. Часто они имеют довольно нерегулярный низкоуровневый интерфейс - особенно по сравнению с Swing - но вам нужно получить доступ к элементам управления SWT, чтобы выложить их (упражнение, которое само по себе может быть сложным). Также многие из слушателей находятся на контроле.
- JFace предоставляет набор средств просмотра поверх соответствующих структурированных элементов управления SWT - например,
TableViewer
поверх Table
. Эти средства просмотра обеспечивают высокоуровневый интерфейс для функциональности базового элемента управления, например с моделями, поставщиками этикеток, сортировкой, фильтрацией и многим другим. (Зрителей можно легко сравнить с аналогами Swing ...)
- Eclipse Forms предоставляет (относительно) простой способ создания представлений, диалогов и т. Д., Похожих на веб-страницы. Примерами этого являются различные редакторы PDE.
- Привязка данных предоставляет (несколько сложный) способ привязки элементов управления (включая таблицы) к структуре данных (на основе Bean, EMF или POJO).
Итак ... вам нужно решить, использовать ли фасет модели JFace и Data Binding, но остальные API часто объединяются в одном представлении или диалоге.
NewClassWizardPage
и NewTypeWizardPage
оба являются особенно сложными примерами волшебников - не основывайте свою собственную работу на них!
Для вашего конкретного случая - насколько я понимаю - я бы использовал простой JFace TableViewer
для хранения списка интерфейсов ... (Я использую TableViewer
вместо ListViewer
, так как более поздний не может иметь изображение как часть поставщика меток.) Кнопки «Добавить» и «Удалить» будут манипулировать моделью средства просмотра, а затем обновлять средство просмотра. Вам не нужны Eclipse Forms, поскольку мастера обычно не похожи на веб-страницы. Привязка данных также является излишним, учитывая очень и очень простые данные для мастера.
Обратите внимание, что функция мастера выполняется только после отображения всех страниц мастера и нажатия кнопки «Готово».