Here's the code then:
Bang everything between the <snip> marks into a txt file, and then import that file into the shapescript for the activity stereotype.
Enjoy,
Shane.
PS: Sorry about the formatting, tabbing seems to have been stripped and extra spaces inserted when it got ported into the message!
<snip>
shape main
{
layouttype="border";
startpath();
roundrect(0,0,100,100,10,10);
endpath();
fillandstrokepath();
if(HasTag("IsATransaction","true"))
{
roundrect(2,3,98,98,10,10);
}
addsubshape("base","S");
addsubshape("padding","N");
addsubshape("padding","W");
addsubshape("padding","E");
addsubshape("name","CENTER");
text name
{
h_align = "center";
PrintWrapped("#NAME#");
}
shape padding
{
preferredHeight=10;
preferredWidth=10;
}
shape base
{
layouttype="border";
preferredHeight=20;
addsubshape("null","N");
addsubshape("null","S");
addsubshape("baseshapes","CENTER");
shape null
{
preferredHeight=3;
}
shape baseshapes
{
layouttype="leftright";
scalable=false;
v_align="CENTER";
h_align="CENTER";
addsubshape("spacer");
if (HasTag("LoopType","Standard"))
{
addSubShape("loop");
addsubshape("spacer");
}
if (HasTag("LoopType","MultiInstance"))
{
addSubShape("loop");
addsubshape("spacer");
}
if (HasTag("IsMultipleInstance","true"))
{
addSubShape("multiple");
addsubshape("spacer");
}
if (HasTag("IsCompensation","true"))
{
addSubShape("compensation");
addsubshape("spacer");
}
if (HasTag("ActivityType","Sub-Process"))
{
addSubShape("collapsed");
addsubshape("spacer");
}
if (HasTag("AdHoc","true"))
{
addSubShape("adhoc");
addsubshape("spacer");
}
shape spacer
{
preferredWidth=2;
}
shape loop
{
preferredWidth=10;
preferredHeight=10;
setpenwidth(2);
moveto(70,90);
arc(0,0,100,100,70,90,30,90);
//moveto(60,100);
//arc(0,0,100,100,60,100,40,100);
setfillcolor(0,0,0);
startpath();
moveto(-20,100);
lineto(40,100);
lineto(40,60);
endpath();
fillpath();
}
shape multiple
{
preferredWidth=10;
preferredHeight=10;
setfillcolor(0,0,0);
startpath();
rectangle(10,0,40,100);
endpath();
fillandstrokepath();
startpath();
rectangle(60,0,90,100);
endpath();
fillandstrokepath();
}
shape compensation
{
preferredWidth=10;
preferredHeight=10;
setfillcolor(0,0,0);
startpath();
moveto(0,50);
lineto(50,0);
lineto(50,100);
endpath();
fillandstrokepath();
startpath();
moveto(50,50);
lineto(100,0);
lineto(100,100);
endpath();
fillandstrokepath();
}
shape collapsed
{
preferredWidth=10;
preferredHeight=10;
rectangle(0,0,100,100);
moveto(15,50);
lineto(85,50);
moveto(50,15);
lineto(50,85);
}
Shape adhoc
{
preferredWidth=10;
preferredHeight=10;
SetPen(0,0,0,3);
MoveTo(0,50);
StartPath();
PolyBezierTo(50,0,50,100,100,50);
EndPath();
StrokePath();
}
}
}
}
<snip>