Пример - утилита Readme
Введение
Пример утилиты Readme показывает, как следует определять точки расширения, которые будут
использоваться другими модулями. Также будет продемонстрировано создание расширений для ресурсов - пунктов контекстных
меню, мастеров ресурсов, редакторов файлов с определенным расширением (.readme),
пользовательских панелей и страниц настроек.
Запуск примера
Для того чтобы запустить пример, создайте файл с расширением .readme с помощью
мастера создания файлов или мастера создания примеров.
Для того чтобы отобразить дополнительную панель, которая входит в этот пример, выберите
Окно > Показать панель > Прочие и откройте раздел Readme. Для того чтобы просмотреть
действие панели, щелкните на значке readme в панели
Навигатор.
Создание файла readme
Создайте файл с расширением .readme. В меню Файл выберите пункт
Создать, а затем в субменю - пункт Другое... В мастере нажмите кнопку Простой, затем
выберите пункт Файл в списке слева. Нажмите кнопку Далее,
введите имя файла (убедитесь, что его расширение - .readme) и папку, в которой
должен содержаться этот файл.
Мастера создания примеров
В меню Файл выберите пункт Создать, а затем в субменю - Пример...
Выберите Мастера создания примеров. Выберите Файл Readme. Нажмите Далее. Выберите папку,
в которой должен содержаться файл. Введите имя файла с расширением
.readme. Нажмите кнопку Готово.
Действие расширения панели Readme
В панели Навигатор выберите файл с расширением .readme. Если такой файл отсутствует, создайте
его. В панели инструментов, входящей в панель Навигатор,
находится кнопка запуска расширения панели Readme.
Нажмите эту кнопку. Будет выведено сообщение о запуске действия панели.
Всплывающие меню
В панели Навигатор выберите файл с расширением .readme. Если такой файл
отсутствует, создайте его. Выберите файл, чтобы открыть всплывающее
меню. Обратите внимание на пункт Показать действие
Readme. Если вы выберете этот пункт, будет выведено сообщение о
запуске действия всплывающего меню.
Страница параметров
В меню окно выберите пункт Параметры. Выберите страницу Пример
Readme. Это пример страницы параметров.
Страница свойств
В панели Навигатор выберите файл с расширением .readme. Если такой файл
отсутствует, создайте его. Выберите файл, чтобы открыть всплывающее
меню, щелкните на пункте Свойства. Выберите страницу Утилита
Readme - это пример страницы свойств.
Редактор файлов Readme
Редактор файлов Readme - редактор файлов с расширением *.readme. по умолчанию.
Создайте файл с расширением .readme и откройте его двойным щелчком или через контекстное
меню - выберите Открыть с помощью, Редактор файлов
Readme. Обратите внимание на значок
редактора. Утилита readme по умолчанию использует этот
редактор для файлов *.readme.
Действия редактора Readme
Действия в приведенном примере применимы только к этому
редактору. Когда фокус ввода передан редактору, на панели инструментов находятся 4 дополнительные
кнопки - Запустить расширение редактора Readme, Действие 1 редактора Readme,
Действие 2 редактора Readme, действие 3 редактора Readme.
При передаче фокуса редактору также выводится выпадающее меню Readme.
. В нем содержатся ранее описанные действия: Запустить расширение редактора Readme, Действие 1
редактора Readme, Действие 2 редактора Readme, Действие 3 редактора Readme.
Панель разделов Readme
Для того чтобы отобразить панель разделов Readme, в меню Окно выберите
Панель, затем в субменю выберите Прочие... Раскройте пункт Readme и выберите
Разделы Readme. Будет выведен список разделов текущего файла
*.readme, выбранного в панели Навигатор. Структура файла *.readme также отображается в
панели Структура.
Файл с расширением .readme может быть разбит на пронумерованные
разделы. Например, если в редактор файлов
readme ввести следующий текст, утилита readme обнаружит
2 раздела. Для того чтобы увидеть механизм обнаружения разделов в действии,
введите в редакторе файлов readme какой-либо текст и сохраните его с помощью комбинации клавиш
CTRL-S или пункта меню Файл->Сохранить. Откройте панель разделов Readme Sections и
выберите файл .readme с помощью панели Навигатор.
Пример:
99.1 Первый раздел файла
Текст первого раздела
99.1.1 Подраздел
Текст подраздела
Перетаскивание мышью
В панели структуры выберите раздел и перетащите его в начало
текстового файла. Текст раздела будет вставлен в
файл.
Получение справки
Пример утилиты readme демонстрирует использование и реализацию контекстной справки tool example also demonstrates how to use and implement context
для всех прилагаемых расширений - панели, разнообразных действий и
страницы мастера. Для того чтобы получить контекстную справку по действию, остановите курсор над пунктом меню, но не выбирайте
его, и нажмите клавишу F1. Вы также можете получить
контекстную справку (F1) о панели разделов Readme и о мастерах создания примеров
(в окне создания мастера).
Дополнительные сведения
В примере утилиты Readme объявлена одна точка расширения и несколько
расширений. Расширения помогают глубоко понять функции рабочей среды,
так как в примере используются наиболее интересные из них. В пример включены следующие
расширения: панели, действия панелей, страницы параметров, свойств,
мастера, редакторы и действия редакторов, всплывающие меню,
наборы действий, справка с содержанием и возможность перетаскивания мышью.
В пример также включена точка расширения, объявленная в модуле.
Класс IReadmeFileParser требуется для всех модулей, которые используют расширение org.eclipse.ui.examples.readmetool.sectionParser,
определенное в примере. Класс DefaultSectionParser -
пример реализации IReadmeFileParser.
Класс ReadmeEditor, реализующий IEditorPart, определен как редактор файлов
с расширением .readme в файле plugin.xml с помощью точки расширения the org.eclipse.ui.editors. Класс ReadmeSectionsView, реализующий IViewPart, определен как
панель с помощью точки расширения org.eclipse.ui.views. Эта точка расширения
также определяет категорию, используемую для выбранных пунктов панели.
В примере определены два типа параметров: параметры рабочей среды и параметры
ресурсов. Параметры рабочей среды определены в классе
ReadmePreferencePage. Он реализует IWorkbenchPreferencePage, поэтому он добавляется к
диалогу Окно->Параметры. Класс
определен с помощью точки расширения org.eclipse.ui.preferencePages в файле
plugin.xml. Обе страницы параметров ресурсов - ReadmeFilePropertyPage
и ReadmeFilePropertyPage2 - реализуют IWorkbenchPropertyPage.
Они вызываются типом IFile через тег objectClass
tag в файле plugin.xml с помощью точки расширения org.eclipse.ui.propertyPages.
Класс ReadmeCreationWizard, реализующий INewWizard, определен с помощью точки
расширения org.eclipse.ui.newWizards в файле plugin.xml. С помощью этой точки расширения
также определена категория мастера, вызываемого через пункт меню
Файл->Создать->Пример...
В пример входят несколько заготовок действий. Набор действий добавляет меню
Редактор файлов Readme в окно рабочей среды с помощью точки
расширения org.eclipse.ui.actionSets. С помощью тегов toolbarPath и menubarPath им
также определены действия панели инструментов рабочей области панели
меню. Для реализации действий используется класс WindowActionDelegate
(он реализует IWorkbenchWindowActionDelegate).
Действие всплывающего меню определено как objectContribution в классе
PopupMenuActionDelegate с помощью точки расширения org.eclipse.ui.popupMenus.
PopupMenuActionDelegate, реализующее IObjectActionDelegate, использует IWorkbenchPart,
чтобы вывести сообщение. Действие панели ViewActionDelegate, реализующее IViewActionDelegate,
определено с помощью точки расширения org.eclipse.ui.viewActions. Соответствующая ему панель определена через тег targetID
(его значение в данном примере - org.eclipse.ui.views.ResourceNavigator). Действие редактора
определено в классе EditorActionDelegate, реализующем IEditorActionDelegate.
Оно добавлено с помощью точки расширения org.eclipse.ui.editorActions. Редактор определен
через тег targetID
(значение в данном примере - org.eclipse.ui.examples.readmetool.ReadmeEditor).
Класс
ReadmeDropActionDelegate реализует IDropDelegate. Экземпляры IDropDelegate уведомляются
о каждом перетаскивании текста в рабочей среде мышью. Действие
зарегистрировано с помощью точки расширения org.eclipse.ui.dropActions.