Пример - утилита 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.