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

StarUML. Руководство разработчика. Глава 4. Использование API

15 / 139

var elem = ... // Присваивается конкретный элемент (класс, пакет, и т.п.) var elem_doc = elem.GetContainingDocument();

elem_doc.Save();

Свойства и методы документа

Интерфейс IDocument предоставляет следующие свойства и методы.

Свойство

Описание

 

 

FileName: String

Хранит имя файла документа. Имя файла включает полный путь и расширение.

Version: String

Хранит версию документа.

Modified: Boolean

Определяет, изменялся ли документ пользователем.

ReadOnly: Boolean

Определяет, может ли изменяться файл документа.

 

 

Метод

Описание

 

 

GetDocumentSymbol():

Возвращает тип документа. Строка 'PROJECT' возвращается для проектных

String

документов, а строка 'UNIT' для документов секций.

GetDocumentElement():

Возвращает главный элемент документа.

IElement

 

Save()

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

SaveAs(FileName:

Сохраняет документ в другом файле и изменяет свойство FileName.

String)

 

Управление объектом проекта

Доступ к объекту проекта

Чтобы непосредственно работать с проектом, необходимо наличие ссылки на проектный объект. Ниже приведён код на Jscript, иллюстрирующий получение такой ссылки.

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

...

Хотя ссылка на проект может быть получена непосредственно от объекта приложения, к проекту можно также обратиться, используя следующий способ

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

var prj = prjmgr.Project;

...

Изменение заголовка и свойств проекта

Как только ссылка на проект будет получена, становятся доступными его заголовок, свойства и различные методы. Чтобы изменить заголовок проекта, нужно изменить его свойство "Title". Другие свойства типа "Copyright", "Author" и "Company" могут изменяться тем же самым способом.

StarUML. Руководство разработчика. Глава 4. Использование API

16 / 139

...

prj.Title = "MyProject";

...

1.Предупреждение: Хотя формально проект, как и все модельные элементы, имеет свойство "Name", объект проекта, не должен его использовать. Проект - корневой пакет, он не может иметь имя. Это ограничение наложено из-за того, что для идентификации модельных элементов обычно используются их полные имена (пути), которые станут некорректными, если корневому пакету будет присвоено имя.9

Добавление пакетов в проект

Только модель, подсистему или пакет можно добавить непосредственно в проект (как в пакет верхнего уровня).

Чтобы создавать и добавлять новые элементы, должен использоваться объект IUMLFactory. См. следующий пример.

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

var prj = app.GetProject();

var newPackage = factory.CreatePackage(prj); newPackage.Name = "NewPackage";

Создание нового проекта

Чтобы создать новый проект, получите ссылку на объект IProjectManager, и вызовите метод NewProject.

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

prjmgr.NewProject();

Чтобы создать новый проект с определенным подходом (вместо пустого проекта), используйте метод NewProjectByApproach. Следующий пример иллюстрирует создание нового проекта, используя подход "UMLComponents".

var app = new ActiveXObject("StarUML.StarUMLApplication"); var prjmgr = app.ProjectManager; prjmgr.NewProjectByApproach("UMLComponents");

Открытие проекта

Чтобы открыть проектный файл (.UML), получите ссылку на объект IProjectManager, и затем используйте метод OpenProject.

var app = new ActiveXObject("StarUML.StarUMLApplication"); var prjmgr = app.ProjectManager; prjmgr.OpenProject("C:\\MyProject.uml");

9Полное имя модельного элемента (path) представляет собой последовательность имён всех его контейнеров, в порядке вложенности, разделённых символами «::», за которыми следует собственно имя элемента. Здесь имеет место абсолютная аналогия с именами файлов в операционной системе: пакет проекта подобен корневому каталогу диска, также не имеющему собственного имени.

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