Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8111

.pdf
Скачиваний:
0
Добавлен:
23.11.2023
Размер:
1.38 Mб
Скачать

В этой лабораторной вы расширите Среду разработки (Workbench) с помощью меню CodeRally. Меню должно дублировать функциональность кнопок панели инструментов CodeRally. Другими словами, вы добавите один пункт меню верхнего уровня с пятью различными подпунктами, которые могут быть использованы для запуска игры в локальном (private) и открытом (public) режимах, для отладки в локальном и открытом режимах и для отсылки кода. Когда вы закончите лабораторную, вы должны будете иметь возможность использовать элементы управления игры или с панели инструментов, или из меню.

Существует два разных подхода для выполнения этой лабораторной:

1.изменение существующего плагина coderally, который потребует изменения файла манифеста;

2.создание нового плагина, который для управления игрой будет повторно использовать код из существующего плагина coderally.

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

Шаг 1: Создайте новый проект

Создайте проект CodeRallyExtension в Среде разработки Eclipse. В свойствах проекта добавьте JAR файлы org.eclipse.jface_3.1.0.jar, org.eclipse.swt_3.1.0.jar, org.eclipse.core.runtime_3.1.0.jar, org.eclipse.ui.workbench_3.1.0.jar, org.eclipse.swt.win32.win32.x86_3.1.0.jarandlaunchPlugin.jar в путь сборки проекта (buildpath). Также скопируйте каталог \icons\ из исходного плагина в проект.

Когда вы создаете проект, который содержит плагин в качестве обычного Java проекта, его выходной каталог (outputfolder) должен быть CodeRallyExtension\bin таким образом, что код для запуска перспективы может быть найден в запущенной Среде разработки во время тестирования плагина (вы сделаете это на последующих шагах). Выходной каталог может быть изменен из окна свойств проекта. Если вы создаете проект как проект плагина по-умолчанию (defaultplug-inproject), то будет существовать выходной каталог по-умолчанию, и нет необходимости его изменять.

Шаг 2: Определите файл манифеста плагина

Определите новый файл манифеста для плагина (META-INF/MANIFEST.MF и plugin.xml) в новом проекте. Файл plugin.xml будет содержать сведения о том, какие расширения меню должны быть добавлены и что должно быть выполнено, когда происходит выбор пунктов меню во время выполнения. Manifest.mfсодержитследующуюинформацию:

Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Code Rally Extension

Bundle-SymbolicName: org.eclipse.plugins.labs.coderally; singleton:=true Bundle-Version: 1.0.0

Bundle-Vendor: Espirity Bundle-Localization: plugin Require-Bundle: com.ibm.coderally, org.eclipse.ui.workbench, org.eclipse.swt, org.eclipse.jface,

org.eclipse.ui Eclipse-AutoStart: true

Plugin.xml содержит:

точки расширения. Должно существовать только одно расширение для набора действий (actionsset), которое требует атрибуты idи label. Также определите атрибут visible, который будет отображать, должен ли плагин быть виден изначально и устанавливать атрибут в значение false. Набор действий должен определять одно меню верхнего уровня с пятью пунктами. У меню должны быть определены атрибуты id, label и separator. Пункты меню могут быть просто определены внутри меню как групповые маркеры (groupmarkers), например:

<menu id="org.eclipse.plugins.labs.coderally.actions.menu" label="Code Rally" path="additions">

<separator name="coderally" /> <groupMarker name="runPrivateTrack" /> <groupMarker name="debugPrivateTrack" /> <groupMarker name="runPublicTrack" /> <groupMarker name="debugPublicTrack" /> <groupMarker name="submitCode" />

</menu>

После определения меню (с пунктами меню, т.е. групповыми маркерами), вы должны будете определить действия для пунктов меню. Другими словами, вы должны определить какие действия и соответствующие классы должны быть выполнены после того, как выбран каждый пункт меню. Определите

org.eclipse.plugins.labs.coderally.actions.TestActionкак класс, делегирующий

действия (actiondelegateclass). Вы определите детали класса на следующем шаге. В новом файле манифеста плагина действия определены, как показано ниже:

<action

id="org.eclipse.plugins.labs.coderally.actions.runprivate"

menubarPath="org.eclipse.plugins.labs.coderally.actions.menu/runPrivateTrack" label="Run The Private Track"

icon="icons/run.gif"

class="org.eclipse.plugins.labs.coderally.actions.TestAction">

</action>

В этом примере атрибут menubarPath указывает на пункт меню (групповой маркер), определенный в элементе меню, а атрибуты icon и class, взятые из исходного файла манифеста CodeRally представляют пиктограмму, которая появляется в меню и класс, выполняемый после на щелчка на пункте меню.

Чтобы найти документацию по ActionSets, введите “platformextensionpoints” в справке Eclipse.

Это поможет вам получить список точек расширения с их параметрами.

Действия позже ссылаются на классы, которые определены в файле launchPlugin.jar плагина coderally. Убедитесь, что JAR файл добавлен в путь сборки проекта.

Шаг 3: Определите класс, делегирующий действия (actiondelegateclass)

Создайте пакет org.eclipse.plugins.labs.coderally.actions и определите в нем класс TestAction. Этот класс является классом, делегирующим действия (actiondelegateclass) для действий, определенных в манифесте на предыдущем шаге. Поведение класса actiondelegate определено в методе run(IAction), который выполняется, когда происходит действие. В нашем случае метод запустится, когда будет нажат пункт меню. Метод должен выглядеть следующим образом:

publicvoidrun(IActionaction)

{

Display display = Display.getDefault(); Shell shell = new Shell (display);

MessageDialog.openInformation(

shell,

"Test",

"Test Message");

}

Шаг 4: Измените манифест плагина

Учитывая, что код класса, делегирующего действия (actiondelegateclass), использует код из файла launchPlugin.jar, который является частью плагина coderally, вам следует сделать этот плагин требуемым для нового плагина, так, чтобы JAR файл мог быть найден, когда плагин запустится. Чтобы сделать этот JAR файл видимым для других плагинов, вам надо изменить его файл plugin.xml для исходного плагина coderallyplug-in, включив код:

<runtime>

<library name="launchPlugin.jar"> <export name="*"/>

</library>

</runtime>

Добавьтеблоки<groupMarker>и<action>длядругихопцийменю, которыессылаютсянадругиедействияпанелиинструментовплагинаcoderally. Вместо определения новых делегирующих действия классов для каждого действия меню, вы можете просто заново использовать классы действий, используемые действиями панели инструментов плагина coderally. Чтобы сделать это, вы можете открыть файл манифеста плагина из исходного плагина coderally и обратиться к действиям, использованным в этом файле. Например, файл манифеста может содержать код, похожий на следующий:

<menu

<groupMarker

name="debugPrivateTrack">

</groupMarker>

</menu>

<action

id="org.eclipse.plugins.labs.coderally.actions.debugprivate"

menubarPath="org.eclipse.plugins.labs.coderally.actions.menu/debugPrivateTrack" label="Debug The Private Track"

icon="icons/debug.gif"

class="com.ibm.jgfw.plugin.TestDebugAction">

</action>

Шаг 5: Протестируйте плагин

Как только плагин будет создан, щелкните на меню Run -> Run As -> Eclipse Application. Откроется новый экземпляр окна Среды разработки, содержащий плагины. Вы можете также выбрать Run ->Run…

и ввести свойства для вашей конфигурации выполнения.

Атрибут visible для набора действий может быть установлен в false, и плагин не будет видимым в момент запуска среды. ВыберитеменюWindow -> Customize Perspective…и сделайте плагин доступным.

В окне Среды разработки появится меню верхнего уровня CodeRally со своими опциями.

Чтобы протестировать работу опций меню плагина, вам надо импортировать проект CodeRally в запускаемую Среду разработки (runtimeWorkbench). Скопируйте проект из каталога \workspace\ в каталог \runtime-workspace\.

Когда проект окажется там, выберите File ->Import… и затем опцию

ExistingProjectintoWorkspaceoption из запускаемой Среды разработки

(runtimeWorkbench) и импортируйте проект CodeRally. Щелчок на пункте меню протестирует код плагина.

Шаг 6: Установите и запустите плагин

Создайте файл build.properties со следующим содержанием:

source.. = src/ output.. = bin/

bin.includes = plugin.xml,\ META-INF/,\

.,\

icons/

Экспортируйтепроект, используяопциюDeployable plug-ins and fragments. Определите в мастере расположение файла архива.

Чтобы запустить новый плагин, распакуйте архивный zip файл в каталог плагинов Eclipse и запустите Eclipse. Ваш плагин должен работать, так же как и при тестировании в запускаемом Рабочем пространстве (RuntimeWorkspace).

Список использованной литературы

1.Грекул В. И., Денищенко Г. Н., Коровкина Н. Л. Проектирование информационных систем: учебное пособие. М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2008.

2.Шелухин, О. И.Моделирование информационных систем: Учебное пособие. М.: Горячая линия - Телеком, 2012.

3.Гамма Эрик, Бек Кент. Расширения Eclipse: принципы, шаблоны и подключаемые модули: пер. с англ. М.: КУДИЦ-ОБРАЗ, 2005.

Сафонов Константин Анатольевич

РАЗРАБОТКА В СРЕДЕ OPEN SOURCE

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Разработка в среде OpenSource»

по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Федеральное государственное бюджетное образовательное учреждение высшего образования «Нижегородский государственный архитектурно-строительный университет»

603950, Нижний Новгород, ул. Ильинская, 65. http://www.nngasu.ru, srec@nngasu.ru

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]