<gxl xmlns:sym="http://www.metacase.com/symbol">
<ellipse sym:startAngle="0.0e0" sym:sweepAngle="3.15e2">
<metaInfo xmlns="http://www.metacase.com/symbol"> ... </metaInfo>
<rect fill="rgb(255,255,255)" height="20" rx="0" ry="0" stroke="rgb(0,0,0)" stroke-width="1" width="30" x="90" y="70"> <metaInfo xmlns="http://www.metacase.com/symbol"> <displayCondition>...</displayCondition> </metaInfo> </rect>
A condition source based either on a property value or generator output. The source is defined as a piece of text within the displayCondition element (see the example below). | |
A conditionOperator to match the string value returned by the source. The possible condition operators are: |
conditionOperator
|
Operation
|
=
|
Equal (exact matching)
|
=~
|
Equal (wildcard matching)
|
~=
|
Not equal (< >)
|
<
|
Smaller
|
>
|
Greater
|
<=
|
Small or equal
|
>=
|
Greater or equal
|
regexMatch:
|
Regex match true (=)
|
regexNonMatch:
|
Regex match false (< >)
|
A matchString to match the source string with. |
<displayCondition conditionOperator="=" matchString="Red" xmlns="http://www.w3.org/2000/svg"> PropertyTextSource:a1oyx6 </displayCondition>
<displayCondition conditionOperator="=~" matchString="xxx*" xmlns="http://www.w3.org/2000/svg"> ReportTextSource: foreach .() { 'x' } </displayCondition>
shouldRotate sets whether or not the element shape should rotate to match the roleline’s angle (accepted values “true” or “false”). See “Rotation” in Section 3.4. |
Layout defines the polyline(s) along which the subobjects are distributed. | |
Subobject source sets where the subobjects are retrieved from. | |
Subsymbol source sets where the symbol representation for each subobject comes from. |
points is a collection of points that defines the base polyline for the template. | |
allocation sets the direction subobjects are allocated in and from where on the path to Allocate from (possible values are “start”, “middle” or “end”). | |
startDistance defines the distance Before first subobject, from the allocation starting point along the layout path | |
layoutDistance sets the Interval between subobjects along the layout path | |
lineSegmentTable defines the active and inactive polyline segments. If there is only one element in the points collection, the value of lineSegmentTable must be empty (as there are no line segments, just one point). Each point pair in the points collection defines a line segment and the respective true/false value in lineSegmentTable sets if this segment is active or not (i.e. if our points collection is "0,0 50,50 100,100, 150,150" and lineSegmentTable is "true,false,true", it means that the first segment (0,0 to 50,50) is active, the second segment (50,50 to 100,100) is inactive and the final segment (100,100 to 150,150) is again active). |
Figure 8–2. Cloned layout path.
<layoutPath points="0,0 100,0" allocation="start" startDistance="10" layoutDistance="30" lineSegmentTable="true"></layoutPath>
<pathLayout points="70,50 70,150" allocation="start" startDistance="0" layoutDistance="30" lineSegmentTable="true"> <layoutPath points="0,0 100,0" allocation="start" startDistance="10" layoutDistance="30" lineSegmentTable="true"></layoutPath> </pathLayout>
<pathLayout points="70,50" allocation="start" startDistance="0" layoutDistance="0" lineSegmentTable=""> <layoutPath points="0,0 100,0" allocation="start" startDistance="10" layoutDistance="30" lineSegmentTable="true"></layoutPath> </pathLayout>
noneNPSource: Returns the hosting object itself. As this source type does not need any definition attributes, it is basically represented by an empty tag pair: |
<noneNPSource></noneNPSource>
propertyNPSource: Returns the object attached to a single property. This source type requires the slot id of the hosting property and it is represented by an attribute called source: |
<propertyNPSource source="a34po"></propertyNPSource>
collectionPropertyNPSource: Returns a collection of objects from a collection property. Similar to propertyNPSource, this element type also has an attribute source whose value is the collection property’s slot id: |
<collectionPropertyNPSource source="a378r"> </collectionPropertyNPSource>
subgraphNPSource: Returns objects of a specific type from the hosting object’s subgraph of the specified type. Two attributes are required – source that defines the subgraph type and nonProperty that defines the type of the objects to fetch (both use the longer internal type names): |
<subgraphNPSource source="Graph_MyGraph_sysadmin_3572690290" nonProperty="Object_MyObject_sysadmin_3572690265"> </subgraphNPSource>
generatorNPSource: Returns the set of objects retrieved by a generator. This element type does not have any attributes but has the generator definition as the element content: |
<generatorNPSource> do decompositions { foreach .() { id }} </generatorNPSource>
npSubsymbolSource for using the subobject’s own symbol. This does not require any element content or attributes, and hence is defined as an empty tag pair: |
<npSubsymbolSource></npSubsymbolSource>
librarySubsymbolSource for using a symbol fetched from the symbol library. The content of this element specifies how to get the name of the symbol to be retrieved. There are three different ways to get the name. The first option is simply to give the name: |
<librarySubsymbolSource>MyLibrarySymbol</librarySubsymbolSource>
The second option is to use a property value as the name. In this case we need to start the content text with a keyword PropertyTextSource: and follow it with the slot id of the property carrying the name: |
<librarySubsymbolSource>PropertyTextSource:a06awh</librarySubsymbolSource>
The third option is to create the name with a generator. This requires us to use ReportTextSource: keyword at the beginning of the content text and then provide the generator definition: |
<librarySubsymbolSource> ReportTextSource:id </librarySubsymbolSource>
revealConnectables specifies whether or not the connectables are revealed as ports (accepted value “true” or “false”), i.e. Use subobjects as ports. | |
subsymbolExtentX is the horizontal dimension of the subsymbol slot (the blue boxes with dashed outlines in Figure 8–2), i.e. Max. width. | |
subsymbolExtentY is the vertical dimension of the subsymbol slot, i.e. Max. height. | |
scaleFilter sets how we allow the template to scale, and is made up of the Allow X scaling and Allow Y scaling settings, with 1 for true and 0 for false. “1,1” thus means that the subsymbol slot scales with the host symbol both horizontally and vertically, whereas “1,0” scales the slot only horizontally and “0,0” stops the slot scaling at all. | |
useTargetpoint specifies Targetpoint alignment: whether to align the subsymbol so that its default connectable’s target point will be in that point around which the subsymbol slot is aligned (“true”), or allow MetaEdit+ to align the subsymbol in the slot according to the alignmentPoint (“false”). | |
alignmentPointX specifies the Before point setting: the fraction of the subsymbol slot that is before its allocated point. It is ignored if useTargetpoint is false. | |
alignmentPointY specifies the Left of path setting: the fraction of the subsymbol slot that is to the left of its allocated point, when moving in the direction of its arrowhead. It is ignored if useTargetpoint is false. | |
isMovable defines whether or not it is allowed to move subobjects when they appear as ports (accepted value “true” or “false”), i.e. Allow moving of ports. | |
rotation is an internal value that must always be “false”. | |
width is the Weight of the template, which is interpreted as the width of the outline of the subsymbol slot, avoiding clipping for wide lines along the slot edge in subsymbols. |
<template revealConnectables="true" subsymbolExtentX="20" subsymbolExtentY="20" scaleFilter="0,0" useTargetpoint="false" aligmentPointX="0.5" aligmentPointY="0.5" isMovable="false" rotation="false" width="1" xmlns="http://www.metacase.com/symbol"> <pathLayout points="70,50 70,150" allocation="start" startDistance="0" layoutDistance="30" lineSegmentTable="true"> <layoutPath points="0,0 100,0" allocation="start" startDistance="10" layoutDistance="30" lineSegmentTable="true"></layoutPath> </pathLayout> <collectionPropertyNPSource source="a378r"> </collectionPropertyNPSource> <npSubsymbolSource></npSubsymbolSource> </template>
<path d="..." fill="none" stroke="rgb(0,0,0)" sym:controlPoints="40,80 60,50 90,70 120,30 150,70">
<text sym:characterBackgroundFill="none">
<text>Some text here</text>
<text>PropertyTextSource:a1oyx6</text>
<text>ReportTextSource:foreach .() { id }</text>
wordWrap that sets the word wrapping on or off (accepted values “true” and “false”) | |
textboxFill that defines the fill color for the containing text box | |
textboxStroke that defines the line color for the containing text box | |
textboxStroke-width that sets the width of the text box perimeter line | |
textboxStroke-dasharray that defines the dash pattern for dashed text box lines (as a pattern of sequential dash and interval pixel lengths, i.e. “1,1” reads “1px dash followed by 1px interval” and “4,2” reads “4px dash followed by 2px interval”). |
<textArea sym:characterBackgroundFill="none" sym:wordWrap="true" sym:textboxFill="none" sym:textboxStroke="rgb(255,255,255)" sym:textboxStroke-width="1" sym:textboxStroke-dasharray="1,1"> Some text here </textArea>
startAngle that defines the start angle of elliptical arc | |
sweepAngle to deinfe the stop angle of the arc |
<ellipse cx="100" cy="60" fill="rgb(255,255,255)" rx="20" ry="20" stroke="rgb(0,0,0)" stroke-width="1" sym:startAngle="0.0e0" sym:sweepAngle="3.15e2">
<image sym:scale="1,2">
x as the x coordinate of the group | |
y as the y coordinate of the group | |
width that defines the horizontal dimension of the group | |
height that defines the vertical dimension of the group |
<g sym:x="100" sym:y="50" sym:width="60" sym:height="70"> ... </g>
<linearGradient sym:correctGamma="true"></linearGradient>
<radialGradient sym:fillType="RadialFill"> </radialGradient>