T.M. SoftStudio

feci quod potui, faciant meliora potentes

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

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

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

Использование Snippets

Элемент Snippets модели приложения позволяет создавать дочерние элементы типа MWindow, MTrimmedWindow, MPerspectiveStack, MPerspective, MPartSashContainer, MPartStack, MPart, MInputPart, MArea, MTrimBar, которые затем можно использовать в методе cloneSnippet() сервиса EModelService для добавления элементов модели приложения программным способом.

Для использования элемента Snippets модели Е4-приложения во вкладке Form редактора файла Application.e4xmi модели приложения нажмем правой кнопкой мышки на узле Application | Snippets и командой Add child | Part добавим элемент Part-части.

В поле Id укажем идентификатор элемента, в поле Label свойств элемента Part введем заголовок части, в поле Class URI кнопкой Find добавим класс части, например, bundleclass://E4RCP/E4RCP.parts.SamplePart.

Нажмем правой кнопкой мышки на узле Application | Windows | Trimmed Window | Main Menu и командой Add child | Menu добавим меню Create Part.

Нажмем правой кнопкой мышки на узле нового меню и командой Add child | DirectMenuItem добавим элемент меню.

В свойствах элемента DirectMenuItem нажмем на ссылку Class URI и создадим обработчик элемента меню со следующим кодом:

import org.eclipse.e4.core.di.annotations.Execute;

import org.eclipse.e4.ui.model.application.MApplication;

import org.eclipse.e4.ui.model.application.ui.basic.MPart;

import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;

import org.eclipse.e4.ui.model.application.ui.basic.MWindow;

import org.eclipse.e4.ui.workbench.modeling.EModelService;

import org.eclipse.e4.ui.workbench.modeling.EPartService;

import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;

public class CreateHandler {

@Execute

public void execute(EModelService service, EPartService partService, MApplication application, MWindow window) {

MPart part=(MPart) service.cloneSnippet(application, "e4rcp.part.1", window);

MPartStack stack=(MPartStack)service.find("e4rcp.partstack.0", application);

stack.getChildren().add(part);

partService.showPart(part, PartState.ACTIVATE);

}}

Теперь при выборе элемента меню, на основе элемента <snippets> с указанным идентификатором, сервис EModelService создаст объект MPart, представляющий Part-часть, которая будет добавлена в существующий стек частей.


Создание Eclipse 4 RCP-приложения. Использование общих элементов