T.M. SoftStudio

feci quod potui, faciant meliora potentes

Купить полную версию книги "Среда разработки Eclipse 4: Руководство разработчика"

  • Создание RCP-приложений

    Создание Eclipse 4 RCP-приложения

    Модель приложения

    XML-файл модели приложения Application.e4xmi содержит декларативное описание структуры приложения, которое считывается во время запуска приложения и на основе которого создается экземпляр приложения.

    Модель приложения платформы Eclipse 4 определяет следующие элементы:

    • Корневой элемент application:Application, определяющий три типа дочерних элементов advanced, basic и menu, а также имеющий атрибут bindingContexts, который определяет идентификатор контекста горячих клавиш UI-интерфейса. Тип advanced представляет объекты типа Perspective. Тип basic представляет объекты типа Window, Part и др. Тип menu представляет объекты типа Menu, ToolBar и др.

    • addons (Addons) – компоненты, добавляющие определенную функциональность приложению, такую как сервисы команд и обработчиков, сервисы Eclipse-контекста, сервисы горячих клавиш, поддержку Drag and drop. Объекты Addons создаются перед визуализацией модели приложения, но после активации сервиса событий. Это позволяет Addons-компонентам изменять UI-интерфейс при получении событий.

    • rootContext (Binding Contexts | Binding Context) – контексты горячих клавиш.

    • bindingTables (Binding Tables | Binding Table) – таблицы горячих клавиш контекста.

    • handlers (Handlers)обработчики команд.

    • commands (Commands) – команды.

    • basic:TrimmedWindow (Windows | Trimmed Window) – окно приложения с панелью инструментов.

    • basic:Window (Windows | Window) – окно приложения.

    • descriptors (Part Descriptors) – шаблон для создания Part-частей динамически.

    • menuContributions (Menu Contributions), toolBarContributions (Toolbar Contributions), trimContributions (Trim Contributions) – обеспечивают добавление меню и панелей инструментов.

    • snippets (Snippets) – обеспечивают предварительную настройку элементов модели, добавляемых программным способом во время выполнения приложения.

  • Редактор Eclipse 4 model editor плагина Eclipse 4 core tools обеспечивает визуальное редактирование XML-файла модели приложения Application.e4xmi (рис. 7.8).

    Рис. 7.8. Редактор файла Application.e4xmi модели приложения

    Модель приложения описывает структуру UI-интерфейса начиная с Window-окна и до уровня Part-частей, не определяя содержимое частей.

    Элементы модели Window и Trimmed Window определяют наличие окон приложения. Отличие элемента Trimmed Window от элемента Window состоит в возможности определения панелей инструментов окна (рис. 7.9).

    Рис. 7.9. Окно Trimmed Window

    Элемент Window-окна может содержать дочерние элементы:

    • mainMenu – определяет наличие меню окна. Элемент может содержать дочерние элементы menu:Menu, ui:CoreExpression, menu:HandledMenuItem, menu:DirectMenuItem, menu:MenuSeparator, menu:DynamicMenuContribution.

    • handlers – определяет обработчики.

    • windows – определяет наличие дочерних окон.

    • Дочерние Controls-элементы advanced:PerspectiveStack, basic:PartSashContainer, basic:PartStack, basic:Part, basic:InputPart, advanced:Area – определяют компоновку и наличие Part-частей UI-интерфейса.

    • sharedElements – определяет общие Part-части, используемые в различных перспективах, может содержать дочерние элементы basic:PartSashContainer, basic:PartStack, basic:Part, basic:InputPart, advanced:Area.

  • Элемент Trimmed Window окна может также содержать дочерний элемент trimBars, определяющий наличие панелей инструментов с помощью дочерних элементов menu:ToolBar и menu:ToolControl.

    Элемент menu:Menu определяет раскрывающееся меню, которое может содержать другое раскрывающееся меню menu:Menu, а также элементы:

    • menu:HandledMenuItem – элемент меню, связанный с командой, которая в свою очередь связана с соответствующим обработчиком.

    • menu:DirectMenuItem – элемент меню, напрямую связанный с обработчиком.

    • menu:MenuSeparator – разделитель элементов меню.

    • menu:DynamicMenuContribution – элемент меню, создаваемый во время выполнения приложения.

    • ui:CoreExpression – расширение точки org.eclipse.core.expressions.definitions, регулирующее видимость меню.

    Part-части модели приложения описывают View-представления и Editor-редакторы.

    Модель приложения определяет два вида Part-частей – basic:Part и basic:InputPart.

    Элемент InputPart является расширением элемента Part, представляющего редактор, с возможностью определения адреса Input URI, который указывает объект данных.

    Элемент Part-части может содержать дочерние элементы меню и обработчиков.

    Part-части можно напрямую добавлять в Window-окно, однако при этом не будут отображаться их заголовки и область окна будет разделена пропорционально числу добавленных частей (рис. 7.10).

    Рис. 7.10. Добавление Part-частей напрямую в Window-окно

    Поэтому для добавления Part-частей в Window-окно удобно использовать различные контейнеры.

    Контейнер PartStack обеспечивает отображение Part-частей в виде вкладок (рис. 7.11).

    Рис. 7.11. Использование контейнера PartStack

    Контейнер PartSashContainer обеспечивает компоновку контейнеров или частей вертикально или горизонтально (рис. 7.12).

    Рис. 7.12. Использование контейнера PartSashContainer

  • Контейнер PerspectiveStack используется для компоновки Perspective-перспектив в стэк. При этом каждая перспектива может содержать контейнеры частей и части.

    Контейнер Area используется для разделения области с заголовком вертикально или горизонтально (рис. 7.13).

    Рис. 7.13. Использование контейнера Area

    Part-часть может иметь контекстное меню, определяемое элементом menus с типом menu:PopupMenu, а также меню представления, определяемое элементом menus с тэгом ViewMenu.

    Элемент menu:ToolBar определяет панель инструментов, которая может содержать элементы:

    • menu:HandledToolItem – элемент, связанный с командой, которая в свою очередь связана с соответствующим обработчиком.

    • menu:DirectToolItem – элемент, напрямую связанный с обработчиком.

    • menu:ToolControl – элемент панели инструментов, представленный Widget-компонентом.

    • menu:ToolBarSeparator – разделитель.

    Для каждого элемента модели приложения вкладка Supplementary редактора Eclipse 4 model editor плагина Eclipse 4 core tools позволяет добавлять тэги, представленные дочерними элементами tags, а также переменные контекста и атрибуты Accessibility Phrase для пользователей с ограниченными возможностями.


Создание Eclipse 4 RCP-приложения. Добавление Addon-компонента