如何使用StarUML for Mac创建和修改元素
在本章中,我们将学习如何创建和修改元素。最重要的是,您不应直接创建或修改元素,因为所有更改都应通过undo和redo支持的操作完成。var class1 = new UMLClass()class1.name = "New Name"
创建元素
创建模型元素
您可以调用函数来创建带有选项对象的模型元素。createModelapp.factory
选项对象可能包含以下字段:
id:用于创建元素的工厂函数的ID。要查看完整的ID列表,请执行。app.factory.getModelIds()
parent :要包含的已创建元素的父元素。
field(可选):父元素的字段名称(默认为)。ownedElements
modelInitializer (可选):初始化创建的模型元素的函数。
//获取对顶级项目的引用 var project = app 。存储库。选择(“@ Project” )[ 0 ] //创建一个UMLModel元素作为项目的子项 var model1 = app 。工厂。createModel ({ id :“UMLModel” ,parent :project } ) //创建UMLClass元素作为模型的子元素 var class1 = app 。工厂。createModel ({ id :“UMLClass” ,parent :model1 } ) //创建一个UMLAttribute元素并添加到该类的字段‘attributes‘ var attr1 = app 。工厂。createModel ({ id :“UMLAttribute” ,parent :class1 ,field :“attributes” } ) //使用选项创建UMLClass var options = { id :“UMLClass” , parent :model1 , modelInitializer :function (elem ){ ELEM 。name = “MyClass” ; ELEM 。isAbstract = true ; } } var class2 = app 。工厂。createModel (options );
您可以在模型资源管理器中看到创建的元素,并且每次创建都可以使用撤消和重做。
创建图表
调用函数来创建带有选项对象的图表:createDiagramapp.factory
选项对象可能包含以下字段:
id:用于创建图表的Factory函数的ID。要查看完整的ID列表,请执行。app.factory.getDiagramIds()
parent :包含要包含的已创建图表的父元素。
options (可选):包含以下选项的对象。
diagramInitializer (可选):初始化创建的图表的函数。
//获取对顶级项目的引用 var project = app 。存储库。选择(“@ Project” )[ 0 ] //创建一个UMLModel元素作为项目的子项 var model1 = app 。工厂。createModel ({ id :“UMLModel” ,parent :project } ) //创建UMLClassDiagram作为模型的子项 var diagram1 = app 。工厂。createDiagram ({ id :“UMLClassDiagram” ,parent :model1 } ) //使用选项创建UMLClassDiagram var options = { id :“UMLClassDiagram” , parent :model1 , diagramInitializer :function (dgm ){ dgm 。name = “MyDiagram” ; dgm 。defaultDiagram = true ; } } var diagram2 = app 。工厂。createDiagram (选项)
一次创建模型元素和视图元素
调用函数以使用选项对象一次创建模型元素和视图元素。createModelAndViewapp.factory
选项对象可能包含以下字段:
id:工厂功能的ID。要查看完整的ID列表,请执行。Factory.getModelAndViewIds()
parent :要包含的已创建模型元素的父元素。
diagram :要包含的已创建视图元素的图元素。
modelInitializer (可选):初始化创建的模型元素的函数。
viewInitializer (可选):初始化创建的视图元素的函数。
x1,,,(可选):矩形坐标初始化创建的视图元件的位置和大小。y1x2y2
tAIlView,(可选):如果您尝试创建关系(例如),则创建的视图元素将连接这两个视图元素和。headViewUMLAssociationtAIlViewheadView
tAIlModel和(可选):如果您尝试创建关系,则创建的模型元素将连接这两个模型元素和。headModeltAIlModelheadModel
contAInerView (可选):要包含的已创建视图元素的视图元素。
该函数返回创建的视图元素,因此您需要通过访问字段来获取create model元素。(例如)。下面的代码将创建两个类和一个连接这两个类的关联。createModelAndViewmodelclassView1.model
//创建UMLClass和UMLClassView var options1 = { id :“UMLClass” , parent :diagram1 。_parent , 图:图1 , x1 :100 , y1 :100 , x2 :200 , 是2 :200 } var classView1 = app 。工厂。createModelAndView (options1 ) //创建另一个UMLClass和UMLClassView var options2 = { id :“UMLClass” , parent :diagram1 。_parent , 图:图1 , x1 :400 , y1 :100 , x2 :500 , 是2 :200 } var classView2 = app 。工厂。createModelAndView (options2 ) //创建连接两个类的关联 var options3 = { id :“UMLAssociation” , parent :diagram1 。_parent , 图:图1 , tAIlView :classView1 , headView :classView2 , tAIlModel :classView1 。模型, headModel :classView2 。模型 } var assoView = app 。工厂。createModelAndView (options3 )
创建现有模型元素的视图元素
调用函数以使用选项对象创建现有模型元素的视图元素。createViewOfapp.factory
选项对象可能包含以下字段:
model :由创建的视图元素引用的模型元素。
diagram :要包含的已创建视图元素的图元素。
viewInitializer (可选):初始化创建的视图元素的函数。
x,(可选):创建的视图元素的位置。y
contAInerView (可选):要包含的已创建视图元素的视图元素。
var options = { model :classView1 。模型, 图:图1 , x :500 , y :500 , } app 。工厂。createViewOf (选项)
向元素添加标签
如果要扩展带有附加标记的元素,可以通过调用带参数的函数来创建标记。Tag有五种:String,Number,Boolean,Reference和Hidden。隐藏标签未在图表中显示,但其他标签显示为属性。(选中格式>显示属性菜单)。以下代码将为所选元素创建一个字符串标记。createModelTagapp.factory
//获取所选元素 var selected = app 。选择。getSelected () //创建标记的选项 var options = { id :“标签” , 父母:选中, 字段:“标签” , modelInitializer :function (tag ){ 标签。name = “Tag1” ; 标签。kind = 类型。标记。TK_STRING ; //或TK_BOOLEAN,TK_NUMBER,TK_REFERENCE,TK_HIDDEN 标签。value = “字符串值...” ; // tag.checked = true; //对于TK_BOOLEAN // tag.number = 100; //对于TK_NUMBER // tag.reference = ...; //对于TK_REFERENCE } } //为所选元素创建标记 var tag1 = app 。工厂。createModel (选项)
修改元素
更改属性值
您不应该直接修改元素的属性,因为所有更改都应该通过undo和redo支持的操作来完成。class1.name = "New Name"
要更改属性值,请使用以下函数:app.engine.setProperty()
//获取所选元素 var selected = app 。选择。getSelected () //更改属性值 app 。发动机。setProperty (已选中,‘name‘ ,‘New Name‘ )
例子
序列图
以下是创建包含两个Lifelines和Message的序列图的示例。
var project = app 。存储库。选择(“@ Project” )[ 0 ] var model1 = app 。工厂。createModel ({ id :“UMLModel” ,parent :project } ) //创建一个序列图 var options = { id :“UMLSequenceDiagram” , parent :model1 , diagramInitializer :function (dgm ){ dgm 。name = “MyDiagram” ; } } var diagram1 = app 。工厂。createDiagram (选项) //创建生命线 var options1 = { id :“UMLLifeline” , parent :diagram1 。_parent , 图:图1 , x1 :50 , Y1 :20 , x2 :50 , Y2 :20 } var lifelineView1 = app 。工厂。createModelAndView (options1 ) //创建另一条生命线 var options2 = { id :“UMLLifeline” , parent :diagram1 。_parent , 图:图1 , x1 :150 , Y1 :20 , x2 :150 , Y2 :20 } var lifelineView2 = app 。工厂。createModelAndView (options2 ) //创建连接上述两条生命线的消息 var options3 = { id :“UMLMessage” , parent :diagram1 。_parent , 图:图1 , x1 :50 , y1 :100 , x2 :150 , y2 :100 , tAIlView :lifelineView1 , headView :lifelineView2 , tAIlModel :lifelineView1 。模型, headModel :lifelineView2 。模型 } var messageView1 = app 。工厂。createModelAndView (options3 )
以上就是如何使用StarUML for Mac创建和修改元素的方法,欢迎继续关注macdown小编分享的其他软件技巧。