Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
20.03.2016
Размер:
7.31 Mб
Скачать

StarUML. Руководство разработчика. Глава 8. Расширение меню

81 / 139

Глава 8. Расширение меню

Основные концепции расширения меню

Чтобы предоставить возможность пользователю вызывать функции аддинов, система меню StarUML™ может быть расширена. Для этого разработчики аддинов должны предоставить файлы расширения меню. Это подразумевает следующие шаги.

1.Создание файла расширения меню.

2.Регистрация файла расширения меню.

Файл расширения меню аддина (*.mnu) - это текстовый XML-файл. Каждый аддин должен содержать только один файл расширения меню. StarUML™ использует этот файл, чтобы расширять главное меню приложения и всплывающие меню: добавлять новые пункты меню, выполнять определенные действия, или посылать сообщения аддинам. Файл расширения меню StarUML™ может содержать следующие определения.

Новые пункты меню для добавления

Деление элементов главного меню и пунктов всплывающих меню

Пункты основного меню StarUML, в которые добавляются новые пункты меню

Отображение названий и вызывающих клавиш для пунктов меню

Точки активации и дезактивации пунктов меню

Файлы скриптов, которые выполняются, когда выбираются пункты меню

Идентификаторы пунктов меню, которые посылаются объектам аддина при выборе

Местоположения пунктов меню в меню верхнего уровня

Файлы иконок для пунктов меню

Файл расширения меню пишется в формате XML. Это должен быть правильно построенный документ, и его содержание должно быть корректно. Эта глава обсуждает DTD XML (Document Type Definition - Определение типа документа, которое должно быть соблюдено, чтобы гарантировать корректность файлов расширения меню), структуру файлов расширения меню, а также предоставляет соответствующие примеры.

Обратите внимание: файл расширения меню должен иметь расширение *.mnu и находится в некотором подкаталоге каталога модулей StarUML™ (<insall-директор> \modules).

Создание файла расширения меню

DTD файла расширения меню

Файл расширения меню должен содержать XML, который соответствует определенному DTD. Ниже показано полное содержание DTD, определенное для файла расширения меню.

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT NAME (#PCDATA)>

<!ELEMENT VERSION (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> <!ELEMENT COMPANY (#PCDATA)> <!ELEMENT COPYRIGHT (#PCDATA)>

StarUML. Руководство разработчика. Глава 8. Расширение меню

82 / 139

<!ELEMENT MAINITEM (MAINITEM)*> <!ATTLIST MAINITEM

base (FILE|EDIT|FORMAT|MODEL|VIEW|TOOLS|HELP|UNITS|IMPORT|EXPORT|NEW_TOP) #IMPLIED caption CDATA #REQUIRED

index CDATA #IMPLIED beginGroup CDATA #IMPLIED script CDATA #IMPLIED actionId CDATA #IMPLIED

availableWhen (ALWAYS|PROJECT_OPENED|MODEL_SELECTED|VIEW_SELECTED|UNIT_SELECTED| DIAGRAM_ACTIVATED) “PROJECT_OPENED”

iconFile CDATA #IMPLIED> <!ELEMENT POPUPITEM (POPUPITEM)*> <!ATTLIST POPUPITEM

location (EXPLORER|DIAGRAM|BOTH) “BOTH” caption CDATA #REQUIRED

index CDATA #IMPLIED beginGroup CDATA #IMPLIED script CDATA #IMPLIED actionId CDATA #IMPLIED

availableWhen (ALWAYS|PROJECT_OPENED|MODEL_SELECTED|VIEW_SELECTED|UNIT_SELECTED| DIAGRAM_ACTIVATED) “PROJECT_OPENED”

iconFile CDATA #IMPLIED> <!ELEMENT MAIMENU (MAINITEM)*> <!ELEMENT POPUPMENU (POPUPITEM)*>

<!ELEMENT HEADER (NAME?, VERSION?, DESCRIPTION?, COMPANY?, COPYRIGHT?)> <!ELEMENT BODY (MAINMENU?, POPUPMENU?)>

<!ELEMENT ADDINMENU (HEADER?, BODY)> <!ATTLIST ADDINMENU addInID CDATA #REQUIRED>

Обратите внимание: Имена всех элементов XML должны быть написаны в символах верхнего регистра, а имена всех атрибутов начинаться со строчных букв. Предопределенные значения символов представляются на верхнем регистре с символами '_' (символ подчеркивания). Эти соглашения должны быть соблюдены всюду в файле меню, а предопределенные значения символов должны использоваться должным образом.

Полная структура файла расширения меню

Файлы расширения меню соответствуют правилам составления документов XML, а определяемые пользователем пункты меню описываются внутри элемента 'ADDINMENU'.

<?xml version="1.0" encoding="..."?> <ADDINMENU addInID="...">

<HEADER>...</HEADER> <BODY>...</BODY>

</ADDINMENU>

Свойство encoding: Определяет кодировку документа XML (например. UTF-8, EUC-KR). Для подробного ознакомления с назначением этого свойства см. описание XML.

Свойство addInID: Уникальный идентификатор аддина. Это должно быть уникальное значение, которое идентифицирует текущий аддин. Рекомендуется, чтобы название компании или название изделия использовались как часть этого значения (например, StarUML.StandardAddIn).

Элемент HEADER: Содержит общую информацию об аддине. См. раздел Элемент HEADER.

Элемент BODY: Содержит информацию об актуальных пунктах меню. См. раздел Элемент BODY.

Элемент HEADER

Элемент заголовка файла расширения меню содержит информацию о файле меню. Содержание заголовка не окзывает никакого влияния на фактическую структуру пунктов меню. Хотя эта секция

Соседние файлы в папке ПиАПС ЛР2