前页 后页

编写脚本

要为元素或连接器创建替代表示,请编写一个Shape Script,以定义表示的大小,形状,方向和颜色。形状脚本包含许多部分,用于定义形状的不同方面。对于元素,这些元素包括:

  • 主要对象
  • 标签
  • 装饰(例如,Document元素可能包含描述文档的图标)
对于连接器,这些部分包括:
  • 主要对象
  • 形状来源
  • 形状目标
  • 标签
Shape Script的操作基于使用默认( UML )表示形式,除非脚本包含替代定义。那是:
  • 如果您的Shape Script仅包含装饰,则将该装饰添加到通常绘制的对象的顶部
  • 如果您有一个空形状例程,它将覆盖默认例程;否则,它将覆盖默认例程。因此,空白的“形状标签”会阻止为包含它们的元素创建普通的浮动文本标签
您还可以使用C样式注释来注释脚本。例如:

// C样式单行注释

/ *多行

支持评论* /

脚本不区分大小写:“形状”与“形状”相同。

脚本结构

布局

描述

也可以看看

元素脚本布局示例

形状主体

{

//绘制对象

}

形状标签

{

//绘制浮动文本标签

}

装饰<标识符>

{

//在对象内部绘制一个16x16装饰

}

<标识符>字符串是字母数字单词。

连接器脚本布局示例

形状主体

{

// 划清界线

}

形状目标

{

//在目标端绘制形状

}

形状来源

{

//在源端绘制形状

}

标签<positionLabel>

{

//定义标签文字

}

<positionLabel>字符串可以是以下任意一个:

  • 左上标签
  • 左下标签
  • 中间标签
  • 中底标签
  • 右上标签
  • 右下标签

子形状

形状可以具有子形状,必须在主形状脚本之后声明子形状,但必须从“方法”命令中调用。

这是声明顺序的一个示例:

形状主体

{

//初始化属性-这些必须在绘制命令之前

noshadow =“ true”;

h_align =“中心”;

//绘制命令(方法)

矩形(0,0,100,100);

println(“ foo bar”);

//调用子形状

addsubshape(“ red”,20,70);

//定义子形状

形状红色

{

setfillcolor(200,50,100);

矩形(50,50,100,100);

}

}

//定义标签

形状标签

{

setOrigin(“ SW”,0,0);

println(“对象:#NAME#”);

}

//装饰的定义

装饰三角形

{

//绘制三角形装饰

startpath();

移至(0,30);

lineto(50,100);

lineto(100,0);

endpath();

setfillcolor(153,204,255);

fillandstrokepath();

}

该脚本产生的形状为:

An example of a shape script applied to an Object element.

绘图方法

申报单

形状可以由属性声明,命令调用和子形状定义组成,它们必须按此顺序出现。也就是说,必须在所有Command调用和Sub-shape定义最后出现之前出现属性声明。

形状属性 子形状

学到更多