Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТСМ / developer-guide.pdf
Скачиваний:
38
Добавлен:
10.05.2015
Размер:
7.31 Mб
Скачать

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

34 / 139

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип диаграммы

Метод создания

 

 

 

 

 

 

 

 

 

UMLUseCaseDiagram

 

CreateUseCaseDiagram(AOwner: Model): IUMLUseCaseDiagram

 

 

 

 

 

 

 

 

 

UMLSequenceDiagram

 

CreateSequenceDiagram(AOwner: UMLInteractionInstanceSet):

 

 

 

 

 

IUMLSequenceDiagram

 

 

 

UMLSequenceRoleDiagram

 

CreateSequenceRoleDiagram(AOwner: UMLInteraction):

 

 

 

 

 

IUMLSequenceRoleDiagram

 

 

 

UMLCollaborationDiagram

 

CreateCollaborationDiagram(AOwner: UMLInteractionInstanceSet):

 

 

 

IUMLCollaborationDiagram

 

 

 

UMLCollaborationRoleDiagram

 

CreateCollaborationRoleDiagram(AOwner: UMLInteraction):

 

 

 

 

 

IUMLCollaborationRoleDiagram

 

 

 

UMLStatechartDiagram

 

CreateStatechartDiagram(AOwner: UMLStateMachine):

 

 

 

 

 

IUMLStatechartDiagram

 

 

 

UMLActivityDiagram

 

CreateActivityDiagram(AOwner: UMLActivityGraph):

 

 

 

 

 

IUMLActivityDiagram

 

 

 

UMLComponentDiagram

 

CreateComponentDiagram(AOwner: Model): IUMLComponentDiagram

 

 

 

 

 

UMLDeploymentDiagram

 

CreateDeploymentDiagram(AOwner: Model): IUMLDeploymentDiagram

Методы создания диаграмм UML почти идентичны методам создания модельных элементов UML. Но у диаграммы UML есть одно отличие - представления диаграмм, автоматически создаются при создании самих диаграмм.

Следующий пример создаёт диаграмму и обращается к автоматически созданному представлению диаграммы UML.

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

var pkgElem = ... // модельный элемент верхнего уровня, содержащий диаграмму UML. var dgmElem = facto.CreateClassDiagram(pkgElem); // создаёт UMLClassDiagram.

var dgmViewElem = dgmElem.DiagramView; // автоматически созданное представление диаграммы. app.OpenDiagram(dgmElem);

...

Удаление диаграммы UML

Так как диаграммы UML являются элементами моделирования, они могут быть удалены, используя метод DeleteModel интерфейса IStarUMLApplication, подобно удалению других элементов. Метод CanDelete интерфейса IModel может использоваться, чтобы проверять, может ли диаграмма быть удалена.

Обработка представлений

Создание представления

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

 

 

 

 

 

 

 

Тип представления

Метод создания

 

 

 

 

 

 

 

 

UMLNoteView

 

 

CreateNoteView(ADiagramView: DiagramView): IUMLNoteView

 

 

 

 

 

 

 

 

UMLNoteLinkView

 

 

CreateNoteLinkView(ADiagramView: DiagramView; ANote: UMLNoteView;

 

 

 

 

 

LinkTo: View): IUMLNoteLinkView

 

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

35 / 139

 

 

 

 

 

 

 

 

Тип представления

 

 

Метод создания

 

 

 

 

 

 

 

 

 

 

UMLTextView

 

 

CreateTextView(ADiagramView: DiagramView): IUMLTextView

 

 

 

 

 

 

 

 

UMLModelView

 

 

CreateModelView(ADiagramView: DiagramView; AModel: UMLModel):

 

 

 

 

IUMLModelView

 

 

 

UMLSubsystemView

 

 

CreateSubsystemView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLSubsystem): IUMLSubsystemView

 

 

 

UMLPackageView

 

 

CreatePackageView(ADiagramView: DiagramView; AModel: UMLPackage):

 

 

 

 

IUMLPackageView

 

 

 

UMLClassView

 

 

CreateClassView(ADiagramView: DiagramView; AModel: UMLClass):

 

 

 

 

 

 

IUMLClassView

 

 

 

UMLInterfaceView

 

 

CreateInterfaceView(ADiagramView: DiagramView; AModel: UMLInterface):

 

 

 

 

IUMLInterfaceView

 

 

 

UMLEnumerationView

 

 

CreateEnumerationView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLEnumeration): IUMLEnumerationView

 

 

 

UMLSignalView

 

 

CreateSignalView(ADiagramView: DiagramView; AModel: UMLSignal):

 

 

 

 

IUMLSignalView

 

 

 

UMLExceptionView

 

 

CreateExceptionView(ADiagramView: DiagramView; AModel: UMLException):

 

 

 

 

IUMLExceptionView

 

 

 

UMLComponentView

 

 

CreateComponentView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLComponent): IUMLComponentView

 

 

 

UMLComponentInstanceView

 

 

CreateComponentInstanceView(ADiagramView: DiagramView; AModel:

 

 

 

 

UMLComponentInstance): IUMLComponentInstanceView

 

 

 

UMLNodeView

 

 

CreateNodeView(ADiagramView: DiagramView; AModel: UMLNode):

 

 

 

 

 

 

IUMLNodeView

 

 

 

UMLNodeInstanceView

 

 

CreateNodeInstanceView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLNodeInstance): IUMLNodeInstanceView

 

 

 

UMLActorView

 

 

CreateActorView(ADiagramView: DiagramView; AModel: UMLActor):

 

 

 

 

 

 

IUMLActorView

 

 

 

UMLUseCaseView

 

 

CreateUseCaseView(ADiagramView: DiagramView; AModel: UMLUseCase):

 

 

 

 

IUMLUseCaseView

 

 

 

UMLCollaborationView

 

 

CreateCollaborationView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLCollaboration): IUMLCollaborationView

 

 

 

UMLCollaborationInstanceSet

 

 

CreateCollaborationInstanceSetView(ADiagramView: DiagramView; AModel:

 

View

 

 

UMLCollaborationInstanceSet): IUMLCollaborationInstanceSetView

 

 

 

UMLGeneralizationView

 

 

CreateGeneralizationView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLGeneralization; Parent: View; Child: View): IUMLGeneralizationView

 

UMLAssociationView

 

 

CreateAssociationView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLAssociation; End1: View; End2: View): IUMLAssociationView

 

 

 

UMLAssociationClassView

 

 

CreateAssociationClassView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLAssociationClass; AssociationView: View; ClassView: View):

 

 

 

 

 

 

IUMLAssociationClassView

 

 

 

UMLDependencyView

 

 

CreateDependencyView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLDependency; Client: View; Supplier: View): IUMLDependencyView

 

UMLRealizationView

 

 

CreateRealizationView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

 

UMLRealization; Client: View; Supplier: View): IUMLRealizationView

 

 

 

UMLIncludeView

 

 

CreateIncludeView(ADiagramView: DiagramView; AModel: UMLInclude; Base:

 

 

 

 

View; Addition: View): IUMLIncludeView

 

 

 

UMLExtendView

 

 

CreateExtendView(ADiagramView: DiagramView; AModel: UMLExtend; Base:

 

 

 

 

 

 

 

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

36 / 139

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип представления

Метод создания

 

 

 

 

 

 

 

 

 

 

 

View; Extension: View): IUMLExtendView

 

 

 

 

 

 

 

UMLColObjectView

 

CreateObjectView(ADiagramView: DiagramView; AModel: UMLObject):

 

 

 

IUMLColObjectView

 

 

 

UMLSeqObjectView

 

CreateSeqObjectView(ADiagramView: UMLSequenceDiagramView; AModel:

 

 

 

UMLObject): IUMLSeqObjectView

 

 

 

UMLColClassifierRoleView

 

CreateClassifierRoleView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

UMLClassifierRole): IUMLColClassifierRoleView

 

 

 

UMLSeqClassifierRoleView

 

CreateSeqClassifierRoleView(ADiagramView: UMLSequenceRoleDiagramView;

 

 

 

AModel: UMLClassifierRole): IUMLSeqClassifierRoleView

 

 

 

UMLLinkView

 

CreateLinkView(ADiagramView: DiagramView; AModel: UMLLink; End1:

 

 

 

View; End2: View): IUMLLinkView

 

 

 

UMLAssociationRoleView

 

CreateAssociationRoleView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

UMLAssociationRole; End1: View; End2: View): IUMLAssociationRoleView

 

UMLColStimulusView

 

CreateStimulusView(ADiagramView: UMLCollaborationDiagramView; AModel:

 

 

 

UMLStimulus; LinkView: View): IUMLColStimulusView

 

 

 

UMLSeqStimulusView

 

CreateSeqStimulusView(ADiagramView: UMLSequenceDiagramView; AModel:

 

 

 

UMLStimulus; Sender: View; Receiver: View): IUMLSeqStimulusView

 

 

 

UMLColMessageView

 

CreateMessageView(ADiagramView: UMLCollaborationRoleDiagramView;

 

 

 

AModel: UMLMessage; AssociationRoleView: View): IUMLColMessageView

 

UMLSeqMessageView

 

CreateSeqMessageView(ADiagramView: UMLSequenceRoleDiagramView;

 

 

 

AModel: UMLMessage; Sender: View; Receiver: View): IUMLSeqMessageView

 

UMLStateView

 

CreateStateView(ADiagramView: UMLStatechartDiagramView; AModel:

 

 

 

UMLCompositeState): IUMLStateView

 

 

 

UMLSubmachineStateView

 

CreateSubmachineStateView(ADiagramView: UMLStatechartDiagramView;

 

 

 

AModel: UMLSubmachineState): IUMLSubmachineStateView

 

 

 

UMLPseudostateView

 

CreatePseudostateView(ADiagramView: DiagramView; AModel:

 

 

 

 

 

UMLPseudostate): IUMLPseudostateView

 

 

 

UMLFinalStateView

 

CreateFinalStateView(ADiagramView: DiagramView; AModel: UMLFinalState):

 

 

 

IUMLFinalStateView

 

 

 

UMLActionStateView

 

CreateActionStateView(ADiagramView: UMLActivityDiagramView; AModel:

 

 

 

UMLActionState): IUMLActionStateView

 

 

 

UMLSubactivityStateView

 

CreateSubactivityStateView(ADiagramView: UMLActivityDiagramView;

 

 

 

AModel: UMLSubactivityState): IUMLSubactivityStateView

 

 

 

UMLSwimlaneView

 

CreateSwimlaneView(ADiagramView: UMLActivityDiagramView; AModel:

 

 

 

UMLPartition): IUMLSwimlaneView

 

 

 

UMLTransitionView

 

CreateTransitionView(ADiagramView: DiagramView; AModel: UMLTransition;

 

 

 

Source: View; Target: View): IUMLTransitionView

 

 

Следующий пример создает элементы типа IUMLClassView в представлении диаграммы классов, а также создает элементы IUMLDependencyView и IUMLAssociationView, которые связывают эти два элемента. Поскольку для того, чтобы создать представления, требуются соответствующие модельные элементы, эти модельные элементы также предварительно создаются .

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

// Получение ссылок на существующие модельные элементы. var rootElem = app.FindByPathname("::Logical View"); if (rootElem != null){

app.BeginUpdate();

try{

// Создание модельных элементов.

Соседние файлы в папке ТСМ