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

StarUML. Руководство разработчика. Глава 9. Написание дополнительных COM-объектов 96 / 139

Регистрация схемы опций

Чтобы схема опций была распознаваема автоматически, необходимо поместить файл схемы в подкаталог каталога модулей (<install-dir>\modules). StarUML находит и читает все файлы схем опций в каталоге модулей и автоматически регистрирует их во время инициализации. Если файл схемы опций некорректен или его расширение не .opt, он будет игнорирован. Рекомендуется, создать подкаталог в каталоге модулей и поместить файл описания опций туда, во избежание беспорядка при хранении модулей.

Обратите внимание: Просто удалите файл схемы опций из каталога модулей (<install-dir>\modules), чтобы он больше не использовался.

Доступ к значениям опций

Доступ к значениям опции с использованием COM-интерфейса

Вы можете обратиться к значениям опций, которые пользователь изменял в диалоге опций, используя COM интерфейс StarUML.

Метод GetOptionValue () интерфейса IStarUMLApplication возвращает значение опции, определяемой по идентификатору схемы и ключу опции, как вариант. Формат метода следующий.

IStarUMLApplication.GetOptionValue(SchemaID: String, Key: String): Variant

SchemaID: идентификатор схемы, который определён в файле схемы опций.

Key: ключ элемента опции, который определён в файле схемы опций.

Используйте значение типа Variant, возвращаемое GetOptionValue(), приводя его к типу каждого элемента опции. Вы можете читать это значение непосредственно без дополнительного приведения типа на языках скриптов типа JScript и VBScript.

Следующий пример читает значение опции "UNDO_LEVEL", определенное в схеме опций окружения StarUML и выводит его в окно сообщений.

var app = new ActiveXObject("StarUML.StarUMLApplication");

var undoLevel = app.GetOptionValue("ENVIRONMENT", "UNDO_LEVEL"); WScript.Echo("Max. number of undo actions : " + undoLevel);

Обработка события изменения значения опции

StarUML рассылает возникающие в его среде события аддинам, реализующим интерфейс IEventSubscriber. Если пользователь изменил значение опции в диалоге опций, приложение вызывает обработчик события - NotifyEvent() - тех аддинов, которые реализуют IEventSubscriber. Если Вы хотите контролировать значения опций в аддине сразу после их изменения пользователем, реализуйте интерфейс IEventSubscriber и метод NotifiyEvent(), чтобы читать значения опций методом IStarUMLApplication.GetOptionValue() в случае возникновения события EVK_OPTIONS_APPLIED. Аддины, использующие скрипт типа VBScript и JSCript, не могут контролировать изменение значений опций, так как они не могут реализовывать интерфейс IEventSubscriber.

Подробности, касающиеся обработки событий, будут изложены в следующем разделе.

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