Как добавить таблицу JFace в мастер новых проектов Eclipse RCP - PullRequest
0 голосов
/ 28 марта 2012

У меня есть мастер с двумя страницами: pageone, расширяющий WizardNewProjectCreationPage, и pagetwo, расширяющий WizardPage.Я хочу, чтобы пользователь мог сначала создать проект, а затем добавить файлы в проект на второй странице.

Для последней я хочу использовать SWT Table (?), Как при выбореинтерфейс в мастере классов Java в Eclipse IDE (см. рисунок здесь ).Также рядом с ней кнопка «Добавить».

Как этого добиться?Нужно ли для этого использовать Eclipse Forms API?Или просто добавить таблицу SWT?Я использовал Plug-In Spy, но исходный код, указанный в NewClassWizardPage и NewTypeWizardPage, кажется, очень специфичен для этого примера, и я не могу понять его.

Я также посмотрелв учебнике Vogella для таблицы JFace, но я не могу разобраться с этим.

Просто некоторые основные шаги были бы хороши, или, может быть, кто-то делал это раньше?

1 Ответ

2 голосов
/ 01 апреля 2012

Я легко могу понять, почему вы запутались ... действительно, есть много способов сделать это. Вы даже не указали привязку данных, которая предоставляет вам еще один способ заполнения и декорирования рассматриваемой таблицы.

Чтобы подвести итог использования различных 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, поскольку мастера обычно не похожи на веб-страницы. Привязка данных также является излишним, учитывая очень и очень простые данные для мастера.

Обратите внимание, что функция мастера выполняется только после отображения всех страниц мастера и нажатия кнопки «Готово».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...