This is a piece of exquisite EAUI.
We have determined that we wish to denote ANY relationship as derived. We are forced to do this by tagged values as there is no common property to the various relationships. We do this via the following code:
if (HasTag("IsDerived","True")) //For Association
{
addsubshape("DerivedGlyph");
setpen(160,160,160,1); //Adjust to specific needs (if required)
}
shape DerivedGlyph //v1.0 9-Sep-2011
{
scalable="false";
setpen(0,0,128,2);
startpath();
moveto(0,5);
lineto(7,-5);
endpath();
strokepath();
}
So far so good...
We create a number of specializations, with line style Direct [Ctrk+Shift+D]. We make some derived using the tagged value described above.
We can see which are derived and which aren't.
We then change the line style to one of the "square" line styles: Tree-style, Lateral, Orthogonal.
Suddenly strange things happen. The derived glyph is visible ONLY In one place (regardless of how the shapes are distributed). Further, whether or not the derived glyph is visible seems to be determined by whether the derived relationship is the rightmost (on the right of the base class) or leftmost (on the left of the base class).
This MUST be an EAUI bug...