drawio-offline
Version:
diagrams.net desktop
611 lines (575 loc) • 164 kB
JavaScript
(function()
{
Sidebar.prototype.addSysMLPalette = function()
{
this.setCurrentSearchEntryLibrary('sysml', 'sysmlModel Elements');
this.addSysMLModelElementsPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlBlocks');
this.addSysMLBlocksPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlPorts and Flows');
this.addSysMLPortsAndFlowsPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlConstraint Blocks');
this.addSysMLConstraintBlocksPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlActivities');
this.addSysMLActivitiesPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlInteractions');
this.addSysMLInteractionsPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlState Machines');
this.addSysMLStateMachinesPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlUse Cases');
this.addSysMLUseCasesPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlAllocations');
this.addSysMLAllocationsPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlRequirements');
this.addSysMLRequirementsPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlProfiles');
this.addSysMLProfilesPalette();
this.setCurrentSearchEntryLibrary('sysml', 'sysmlStereotypes');
this.addSysMLStereotypesPalette();
this.setCurrentSearchEntryLibrary();
}
/**
* Adds the sysML palettes to the sidebar.
*/
Sidebar.prototype.addSysMLModelElementsPalette = function(expand)
{
var gn = '';
var dt = 'sysml model element ';
var sb = this;
var s = 'html=1;shape=mxgraph.sysml.';
var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
var fns = [
this.addDataEntry(dt + 'comment', 180, 80, 'Comment',
'1ZS7bsMgFIafhrXCOJGytk6bpZUqZWlHFE4NEgYLn8ROn74Hg5I4FylDlg6W///cgM8WrKyaYRVkqz+8AsvKV1ZWwXtMqhkqsJYJbhQrl0wITg8TbzeyxZjlrQzg8J4GkRp20m4hRSrfNLFZcIQBU7rDvc3pTss2SueRXi+d+Y2umJOW1tSOjIUfjKlWboyr30e3LDiFNDY2apK9NghrKontPZ2fYnkvEGjlm+cZQ/kwK/ANYNhTyT5lZ+m4vDcKdW6Y55gGU2uc1sku+fow6QiLROZ1nV15we6CFqga1tk67yIxcOo5BN+fRAaDX2T50yy77+hIK9lpUJnYCby0Thw+wdT5bdjA5MPeQW6KOoCVaHbTwdco5UGf3ow/S54izriiDDVgLjpDe9jDXbRnD6e9+Pe0i8WjcJM9Xjqp/PRO+gM='),
this.addDataEntry(dt + 'constraint note', 180, 80, 'Constraint Note',
'1ZQxb8IwEIV/jVcUO1BYIaUsVKrE0o4WvsaWHDtyDEn663uOLSAUJAaWDlHuPd8921+kkLyouo3jtXy3AjTJ1yQvnLU+VlVXgNaEZUqQ/JUwluFD2NudVTqsZjV3YPwjAywOHLk+QHTIfFVQki/RxXJLyRzdbE0nXXDYS4m5q+CwST+shfnG9zrNN5LXoTTW42vVqJ+g6AxrrlVpUGj4DiFNzffKlNtBvdIMLekrHWosW6k87LAljLcIaNh2OCw4D93dCw9Wuu0GbAXe9djSx9Vp5JG1SniZBmbJk6BK6cd9vIm6PCWdaWKRgN6Gm/+Fe00LRAm7JI01gRgYsXTOthdOp/wnymwyTeorKKwFbySIROwCXtwnhI8wNfbg9jD68g+QG6N2oLlXx3HwLUop6MMqzD+lsCuunrsSfGq6Qns6w0O0p0+nvfj3tOniWbhRnv9Ksf3yp/UL'),
this.addDataEntry(dt + 'constraint textual note', 160, 60, 'Constraint Textual Note',
'lVNNb8MgDP01SNuNgtSel6TrZZMm9bAzTdyASiAidEn362cCaZV+SN0ByX72g+dnQXjeDBsnWvlpK9CErwnPnbU+Rs2Qg9aEUVURXhDGKB7C3h9UF2OVtsKB8c8QWCT8CH2EiKw1NEjGm5aE8QUlPHsR5oRNdVCpShH4BsW+Rm7nTzpxOynaEDoo8fWs884e4FtVXiLIENlb47epf4G59I1OYS+Vh20rylDr8SnEhFa1wbREQeAQSGrBeRgeTjxCadwN2Aa8C/L7pCN0LKMrVIKqZaJNmOhiXp+pF/8wSBbet5Pf2ElWWWkNOiEU6mMUhXuyKm6sm0bVsPdzY8K0wfW31NGoqgqsTIsd6C/bKa9sKLg4y5nwcVWfEzNRHmpnj6bKrbZobmGsgWlH6ndcUbIEJzC4UrGb1NKnFsHuL2K4WsIpefd//zG9fJWxNvtJfw=='),
this.addDataEntry(dt + 'constraint textual note', 160, 0, 'Constraint Textual Note',
'lVNBbsIwEHyNj5WMI5UzCS2nSpU49GySJVg4XuQsNPD6rmNDSBskerDkHc+s7RlbZEXTrbw+7D6wAiuyN5EVHpHirOkKsFYoaSqRLYVSkodQ7w9WZ/2qPGgPjp4RqCg4aXuEiIh5XqJryWvDLZQk6EjMl5HX0tkm3gk8mVLbhTW1Y2iDRNiILN9Rw9dYzngKrlp4j99cOnQQkKqGdWqSIKs3YHNd7muPR1cVaNEPq1t0tDaXwJ9JrvlguIcvU9GOIcVIPFlo/NCDHkoGrAAbIH9migeryZzGOt3Gsr7xbtJPjJZcKS0efQkJvTf5SuxS51c57k3a10B/hDy5O98A9ZlN55dN5adduF0dHlVIqDeD7ZoI0UNrLnrTl3KcnU65Wtiyi/nvuAkP/84ubs+vy0FJadfbC5VhB+geZqimM0yCl6R4OtKR54PBXA6fL+Zx/zd/AA=='),
this.createVertexTemplateEntry(s + 'composite;symbol0=folder;fontStyle=1;spacingTop=15;tabWidth=80;tabHeight=20;tabPosition=left;symbol1=triangle;symbol1Width=7;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=top;symbol1Spacing=8;symbol1VSpacing=25;symbol1Direction=north;strokeWidth=2;whiteSpace=wrap;align=center;',
160, 90, 'Model', 'Model', null, null, this.getTagsForStencil(gn, '', dt + 'model').join(' ')),
this.addEntry(dt + 'package diagram', function()
{
var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>pkg</b> Name</p>', new mxGeometry(0, 0, 300, 120), s + 'package;xSize=90;align=left;spacingLeft=10;overflow=fill;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('\nSubpackage1', new mxGeometry(15, 60, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('\nSubpackage2', new mxGeometry(190, 20, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc1 = new mxCell('<<import>>', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;endArrow=open;dashed=1;verticalAlign=top;labelBackgroundColor=none;endSize=12;html=1;');
assoc1.geometry.relative = true;
assoc1.edge = true;
cardCell2.insertEdge(assoc1, true);
cardCell3.insertEdge(assoc1, false);
bg.insert(assoc1);
return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package Diagram');
}),
this.addEntry(dt + 'package tab', function()
{
var bg = new mxCell('Package1', new mxGeometry(0, 0, 300, 120), 'shape=folder;xSize=90;align=left;spacingLeft=10;align=left;verticalAlign=top;spacingLeft=5;spacingTop=-4;tabWidth=70;tabHeight=20;tabPosition=left;html=1;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('\nSubpackage1', new mxGeometry(15, 60, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('\nSubpackage2', new mxGeometry(190, 30, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc1 = new mxCell('<<import>>', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;endArrow=open;dashed=1;verticalAlign=top;labelBackgroundColor=none;endSize=12;html=1;');
assoc1.geometry.relative = true;
assoc1.edge = true;
cardCell2.insertEdge(assoc1, true);
cardCell3.insertEdge(assoc1, false);
bg.insert(assoc1);
return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package (Tab)');
}),
this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;strokeWidth=2;html=1;whiteSpace=wrap;align=center;',
160, 90, 'Package1', 'Package (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'package name').join(' ')),
this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;',
160, 60, '<<problem>>\nDescription', 'Problem', null, null, this.getTagsForStencil(gn, '', dt + 'problem').join(' ')),
this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;',
160, 60, '<<rationale>>\nDescription', 'Rationale', null, null, this.getTagsForStencil(gn, '', dt + 'rationale').join(' ')),
this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;',
160, 80, '\n<<view>>\n{viewpoint = View name}\nName', 'View (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'view name').join(' ')),
this.createVertexTemplateEntry('shape=folder;html=1;tabWidth=80;tabHeight=40;tabPosition=left;align=left;verticalAlign=top;spacingLeft=10;whiteSpace=wrap;',
160, 120, '<<view>>\nName', 'View', null, null, this.getTagsForStencil(gn, '', dt + 'view').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 120, 140,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<viewpoint>><br/>' +
'<b>Name</b></p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">' +
'stakeholders="..."<br/>' +
'purpose="..."<br>' +
'concerns="..."<br>' +
'languages="..."<br>' +
'methods="..."</p>',
'Viewpoint', null, null, this.getTagsForStencil(gn, '', dt + 'viewpoint').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<conform>>', 'Conform', null, this.getTagsForStencil(gn, '', dt + 'conform').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<stereotype1>>\ndependency1', 'Dependency', null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<import>>', 'Public Package Import', null, this.getTagsForStencil(gn, '', dt + 'public package import').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<access>>', 'Private Package Import', null, this.getTagsForStencil(gn, '', dt + 'private package import').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;' + mxConstants.STYLE_STARTARROW + '=sysMLPackCont;startSize=12;' + mxConstants.STYLE_ENDARROW + '=none;',
160, 0, '', 'Package Containment', null, this.getTagsForStencil(gn, '', dt + 'package containment').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;dashed=1;',
160, 0, '', 'Realization', null, this.getTagsForStencil(gn, '', dt + 'realization').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<refine>>', 'Refine', null, this.getTagsForStencil(gn, '', dt + 'refine').join(' '))
];
this.addPalette('sysmlModel Elements', 'SysML / Model Elements', expand || false, mxUtils.bind(this, function(content)
{
for (var i = 0; i < fns.length; i++)
{
content.appendChild(fns[i](content));
}
}));
};
Sidebar.prototype.addSysMLBlocksPalette = function(expand)
{
var gn = '';
var dt = 'sysml block ';
var sb = this;
var s = 'html=1;strokeWidth=1;shape=mxgraph.sysml.';
var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
var fns =
[
this.addEntry(dt + 'block definition diagram', function()
{
var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>bdd</b> Namespace1</p>', new mxGeometry(0, 0, 300, 100), s + 'package;labelX=120;align=left;spacingLeft=10;overflow=fill;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('Block1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('Block2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc = new mxCell('part1', new mxGeometry(0, 0, 0, 0), inh + 'align=right;html=1;verticalAlign=bottom;endArrow=none;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=none;endFill=0;labelBackgroundColor=none;');
assoc.geometry.relative = true;
assoc.geometry.x=1;
assoc.edge = true;
bg.insert(assoc);
var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
sourceLabel.geometry.relative = true;
sourceLabel.setConnectable(false);
sourceLabel.vertex = true;
assoc.insert(sourceLabel);
var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
targetLabel.geometry.relative = true;
targetLabel.setConnectable(false);
targetLabel.vertex = true;
assoc.insert(targetLabel);
cardCell2.insertEdge(assoc, true);
cardCell3.insertEdge(assoc, false);
return sb.createVertexTemplateFromCells([bg], 300, 100, 'Block Definition Diagram');
}),
this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
'zVRNb8IwDP01vUwaCi3aHcrgNGkS+wOhMW20NEapYYVfP9MmLVVh2qYddqjkPNvPHy9NlKRlvXZyX7ygAhMlz1GSOkRqrbJOwZgoFlpFyTKKY8FfFK/ueKeNV+ylA0vfSYjbhKM0B2gRziVPU9HJeFQanVs2nc4LJl4UVHKvyymbR3CkM2nmPmSLRFiyA6yaO4cfjFm0TLSoiMkDprQs0aq3Qtvg2ujzpd50FoCVNqEMqBw2viFP13Z5cdydvoH86GvAEsidOKQeJDgwkvRxyCKr9ph3WR3RK2rm70MqPLgMPHq97BAYyj2JITePmAONEtm46raHGu1u65iMdBxr6KDSZ7ltjmKoYZDXwI5uSEq4Z9TILZiFzN5zhwerUjToejF2aDv9/JgZWgsZ+ZLdXRQXeqjvahZ/qdnjT0UbbPWLFc5GKxSTycNvthh+kv+8xj/aIh/7x6q9t9dv2Sc='),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;verticalAlign=top;align=left;whiteSpace=wrap;', 220, 340,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<block>><br/>' +
'{encapsulated}<br/>' +
'<b>Block1</b></p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>constraints</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">{x > y}</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>operations</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">operation1 (p1 : Type1) : Type2</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>parts</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property1 : Block2</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>references</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property2 : Block3 [0..*] {ordered}</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>values</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property3 : Integer = 99 {readOnly}<br/>property4 : Real = 10.0</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>properties</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property5 : Type1</p>',
'Block', null, null, this.getTagsForStencil(gn, '', dt + 'block').join(' ')),
this.createVertexTemplateEntry('shape=umlActor;html=1;verticalLabelPosition=bottom;verticalAlign=top;align=center;',
30, 60, 'ActorName', 'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 160, 80,
'<p><<actor>><br/><b>ActorName</b></p>',
'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 180,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<valueType>><br/>' +
'<b>ValueType1</b></p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>operations</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">operation1 (p1 : Type1) : Type2</p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>properties</i></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property1 : Type3</p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;"><<valueType>></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">unit = UnitName</p>',
'ValueType', null, null, this.getTagsForStencil(gn, '', dt + 'value type valuetype').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<enumeration>><br/>' +
'<b>Enumeration1</b></p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">literalName1<br/>literalName2</p>',
'Enumeration', null, null, this.getTagsForStencil(gn, '', dt + 'enumeration').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
'<p style="margin:13px;"><b><i>Name</i></b></p>',
'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
'<p style="margin:5px;">{abstract}<br/><b><i>Name</i></b></p>',
'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
'<p style="margin:5px;"><b><i>Name</i></b><br/>{abstract}</p>',
'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 200, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<stereotype1>><br/>' +
'<b>Block1</b></p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;"><<stereotype1>></p>' +
'<p style="margin:0px;margin-left:8px;text-align:left;">property1 = value</p>',
'Stereotype Property Compartment', null, null, this.getTagsForStencil(gn, '', dt + 'stereotype property compartment').join(' ')),
this.addEntry(dt + 'namespace compartment', function()
{
var bg = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Block1</b></p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>namespace</i></p>',
new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc = new mxCell('part1', new mxGeometry(0, 0, 0, 0), inh + 'align=right;verticalAlign=bottom;endArrow=none;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=none;html=1;labelBackgroundColor=none;');
assoc.geometry.relative = true;
assoc.geometry.x=1;
assoc.edge = true;
bg.insert(assoc);
var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
sourceLabel.geometry.relative = true;
sourceLabel.setConnectable(false);
sourceLabel.vertex = true;
assoc.insert(sourceLabel);
var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
targetLabel.geometry.relative = true;
targetLabel.setConnectable(false);
targetLabel.vertex = true;
assoc.insert(targetLabel);
cardCell2.insertEdge(assoc, true);
cardCell3.insertEdge(assoc, false);
return sb.createVertexTemplateFromCells([bg], 300, 100, 'Namespace Compartment');
}),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 250, 100,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Block1</b></p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>namespace</i></p>',
'Block', null, null, this.getTagsForStencil(gn, '', dt + 'block').join(' ')),
this.addEntry(dt + 'structure compartment', function()
{
var bg = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Block1</b></p><hr/>' +
'<p style="font-size:10px;margin:0px;text-align:center;"><i>structure</i></p>',
new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc = new mxCell('c1:', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;');
assoc.geometry.relative = true;
assoc.edge = true;
bg.insert(assoc);
var targetLabel = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
targetLabel.geometry.relative = true;
targetLabel.setConnectable(false);
targetLabel.vertex = true;
assoc.insert(targetLabel);
var targetLabel2 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10');
targetLabel2.geometry.relative = true;
targetLabel2.setConnectable(false);
targetLabel2.vertex = true;
assoc.insert(targetLabel2);
cardCell2.insertEdge(assoc, true);
cardCell3.insertEdge(assoc, false);
return sb.createVertexTemplateFromCells([bg], 300, 100, 'Structure Compartment');
}),
this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
'3VTLboMwEPwa3x2Ieg/kcapUKV/gwNZYNV60bFKSr68BB4IIVQ499YDkHe+MvTMWIk7L5kCqKt4xByvinYhTQuR+VTYpWCsiaXIRb0UUSf+JaL+wu+p2ZaUIHL9CiHrCRdkz9EgWNGq+2gBdgNhkym6s0c5DJ2TGUsRJwaW/8Xbll+DyDRF++9Kh88SkZkX8DDuaWyu8Wt+BvbGtjGxlcg3HcDISF6jRKbsb0aS/Xdu3OHIHhXkPgCUwXX0LgVVsLlOeqvtSD30D9QONVxxbajxTBgF99PTe2ATlNznV9jNq4BnRLx7uN0JdRM/jimdxzdMiqM1NnbpSTkNSIUAyuvBeJYvBWnUCm6jsSxOeXZ6iRRpT/EQ3hBhGzdA5yDgcOzw72Z4AzWJS0fOkpoSXc5sY+4uL65mL8Kc2Mlb/zUNfjj+l/uE+/rN+AA=='),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60,
'<p style="margin:0px;margin-top:10px;text-align:center;">' +
'<<unit>><br/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;">{quantityKind = QuantityKind1}<br/>' +
'<b>Unit1</b></p>',
'Unit', null, null, this.getTagsForStencil(gn, '', dt + 'unit').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Unit1</b></p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;"><<unit>><br/>' +
'{quantityKind = QuantityKind1}</p>',
'Unit', null, null, this.getTagsForStencil(gn, '', dt + 'unit').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60,
'<p style="margin:0px;margin-top:10px;text-align:center;">' +
'<<quantityKind>><br/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;"><b>QuantityKind1</b></p>',
'Quantity Kind', null, null, this.getTagsForStencil(gn, '', dt + 'quantity kind').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;fontSize=15;whiteSpace=wrap;', 70, 30,
'<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' +
'<B>i1: Type1</b><br/>',
'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
this.addDataEntry(dt + 'instance specification', 280, 30, 'Instance Specification',
'3VVNj5swEP01HFcCk416DWG7p5VWSv+AgQlYNR7XOF/76zvGBkLYtDmt1B6ieJ7nDeP3PBCl2/b8arhu3rACGaUvUbo1iNav2vMWpIxYLKoozSPGYvpF7Pud3aTfjTU3oOwjBOYJRy4P4JGIrSVRM01wZy/Sw+tfB9dS1nJTCxWlm1ifx/DJoiZo1UMWzvaJS1G7rJLaADOgFZRouBXotg6qAiOFovrZVJ9WdfjvuxgBkRCHWvpx0ZAMu3Su4pZRGHfaEWSzY7Cu4dotDZRuv7EtSZ5T7QyPYPYSTxTuBWmUZntUdic+XHryTPGpERZ2mpcOOZFl4wOISge8a0EPBf1fAVuw5kIpJ1HZxmd88y7FDYi6Caw0YLzzcT0yJz9pESz93N70n7GXTfay/8PeQGBx8PEL7F4t7N4kC43caUTJ5cabmBdoLbZztUBVG2N6tVCD8sggFnNhVcMu1ERjG6xRcfkyoUE6lzcTrsODKWH28rF0y8DOLuwD8hqQdNeO8+qfiReo7yio4pTiGwno9RtySBwMX98Y49tdEHtvxv4esut5YZdOF3YZ6MQHL/ownrsUxjA3/hZlt872c5tJXoDMePmzNkhTuUWJNLK5wn42r6cgHLREpWh+wjPHT8jfxmD1xzEIhIddu3PlKZw+jl7y62/nbw=='),
this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
'jVPBbsIwDP2a3Esi7U4L4zRpEl8QWi+NlsaV60Lh65c2gdIBEodK9rP9Er/XCFU0w450W39hBU6orVAFIXKMmqEA54TMbCXURkiZhU/IzxfV1VTNWk3g+Z0BGQeO2vUQkXXi6PjsEnQEYltqt3bW+AAdkBkbofKam3DjzSqE4Ks1EZ5Cii34iOztZaRYyTGtDOwTJxLXaNBrt53RPJ479r1cZoLSJjvABpjOoYXAabbH5ZzuYmpufbfRb7SBcW7psKcSEnqv1rVxSMwf2ZKbNRngh8EQ3N1vhibxnxuhHoxo1YMRBJ296MOUZkv9dfKGrKmDWPl/zxjbgDp9AJfr8tcQ9r4q0CGFokc/GvCDnq+WpUVL9B5KTmfefqdspIfhpU/yuU/LgbddW8g6axjS+aFEye/f0R8='),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 120, 60,
'<p style="margin:0px;margin-top:10px;text-align:center;text-decoration:underline;">' +
'instance1: Type1<br/></p>' +
'<p style="margin:0px;margin-top:4px;text-align:center;">value1</p>',
'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 160, 80,
'<p style="margin:0px;margin-top:10px;text-align:center;text-decoration:underline;">' +
'instance1: Type1<br/></p><hr/>' +
'<p style="margin:0px;margin-top:4px;margin-left:4px;text-align:left;">property1 = 10<br/>property2 = "value"</p>',
'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
this.addEntry(dt + 'instance specification', function()
{
var bg = new mxCell(
'<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' +
': Type1<hr/></p>',
new mxGeometry(0, 0, 200, 180), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell(
'<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' +
'instance1 / property1: Type2<hr/></p>',
new mxGeometry(10, 30, 180, 140), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell(
'<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' +
'instance2 / property2:<br/>Type3<hr/></p>' +
'<p style="margin:0px;margin-top:4px;margin-left:4px;text-align:left;">property1 = 10<br/>property2 = "value"</p>',
new mxGeometry(20, 60, 160, 100), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;');
cardCell3.vertex = true;
bg.insert(cardCell3);
return sb.createVertexTemplateFromCells([bg], 200, 180, 'Instance Specification');
}),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 160,
'<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' +
': Type1</p><hr/>',
'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
160, 0, '<<stereotype>>\ndependency1', 'Dependency', null, null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')),
this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association',
'3VRRa4MwEP41eRlMoq6UPda269Ng0F+Q6lXDYk7OtLP99Yuaap11jMJg7EHIfXffJfm+eCxc5tWGRJG9YgKKhWsWLgnRtKu8WoJSLOAyYeGKBQG3HwteJrJ+k+WFINDmJ4SgJRyFOkCLiLLEWAojUbtupTkplzwCGRkLtVAy1RbaoTGYszDKTG7PvvLtEnSyIMIPG2IBukW28ly38IM6TFLYup5IJsMUtVDrHo3afeu6yWs1kLvTBjAHQydbQqDs0Y9DnijbMO3qOuobStuxLynxQDE49Fq3S2HldJvxYW8jKAUzItrF1fl6qLHhtiXhyBLueWMrCEp5Frsm5EMHhHNHwd6qFX01zWBhUSV2oCIRv6eEB50sUSHZpEZdO7BHbS6euZvGqDXExm3ZvSxet4dq0qjgtlGO8OgYP/ZtIOw3Kj6NVGTzCCkBgoTNbcx9z3u4R1WSafbXZeXe8y/pOhvpWpD9zcmc7nqiU2J2g+Wf6WnDfri3w+F69n8C'),
this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association',
'3ZVRb4IwEMc/TV+WzFSYM3sUdD4tWeInqHBis9IjR3Xop1+BDmTIYoxLzB5Iete74/r7H5T5YVosSWTbN4xBMX/B/JAQTb1KixCUYh6XMfPnzPO4fZj3OrA7rnZ5Jgi0uSTBqxP2Qu2g9og8x0gKI1G7ark5KLe5BzIyEmqmZKKta43GYMr8YGtS2/t8bJeg4xkRflpTo4bSEyewckWQzBYT1EItWm9Qv6iMGzxH5XKHWAKmYOhgQwiU7XXfzRN5bSZNXJP6jtJWbENy3FEEznsK6juwcKAmvFvbCErA9BLt4qS/1lVxP6+B39OgD54gl0exrkze5S2cFgo2FlXwUyKDmfUqsQYViOgjIdzpOESF1Aq0QW1W8lgWH7tjRqg1RMa9spkjXpaHYlAl77xKLuHRZVwsWofqLwifeggzwsy2evBuiLKZ9n9Oc9KjyaYBUgwEMZtam/PR6OEasCST7b0PKR+9/BHX58EpveqDH4J5Z2N6M57WbC/G+j97em9+AQ=='),
this.addDataEntry(dt + 'part association', 250, 0, 'Part Association',
'3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdInyibuUzTAaYpUokAj33JVD2v3XM+4KkkDeT2WgAVYOrgSAu2OvbvsE1UbZl1d1/qKyjGeSyrcUgoe7Wt+Ktx7zUf8ktsdJgM7aHSL3v7OUGPh93bGAzt5EAxtJKjUUaybkF+6J7yzGjZOreSr4RZLh2qxBp2I9D0j3Bo5RY3kkgZN7d4GTWeWP2mKxkBq/cjur+Q1PeyvGhV9b5RveOTBc9tzs3MX0v6g49NARzZOkCQQSDZ2MQ+D4OEeXUll+V8X9vd0HQ10LcldEmQPd/2k18TsrqV/pqcLz09Dez30X45P'),
this.addDataEntry(dt + 'part association', 250, 0, 'Part Association',
'3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19ckJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcdsv5zluSAw9hJCUBE2Qq+hQkRRYKyEVWh8tcLutJ/cAFkVCz3SKjEOWqK1mLEwSm3mep/03RCMHBHhpwsNGjggMoGFL4JkU0zQCD1t0KiwguxM6WONMl6o/YHRD47AsaxUIkMj31PleoiqJg9rdGpQQl6AOWAGlnYuhUC7fW7OeaKowqTOq6lvqFzFJqXANcXg0VORj4lbL/KAn9d2m0nAtohucNJfA5We/exf2PKvbRpBofZiWYb83CvhfdSwclJF3+21mDtUiyXoSMQfCeHayDFqpMbcFZraKb/NGI2B2Pol6zPID+Vh2+lS8LNLnvDIey8V52LbznT9RcSnlog5Ye6a3QU3FLO+K/9ez0FLTzaMkCQQSDZ0Mee93sM10pJK0ns/qH+n63PnOb3q0neJeWcH9WZ6urB5WKt/7em7+wU='),
this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association',
'3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdI1JT/FfYoGOE2RShRo5Fuu6mHtnusZVyVpIK/HErAASwdXQqDdsXeXfaJqw6yr61pfUTnGc0mFW0rBo33NT4V7r/mIX3K7w2RgB41u0dvfGWos/N7OeGAnD4KhjQSVOop1E/JL94R3VsPGqZV8Ndxi6VAt1qATkb5nhFsjp6iRXNKgqd3boOnM8idN0RhIrR/Z/ZW8pof9VaOi743yDY88eG57bnbuQtofdHwa6MjGCZIEAsnGLuZhEDzcoyupLP/rwv6erqOBriW5S4Ls4a6f9JqY3bX0z/R04flpaK+H/svxCQ=='),
this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association',
'3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19chJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcds/zDLc0Fg7CWEoCJshF5DhYiiwFgJq9D4aoXdaT+5AbIqFnqkVWIctERrMWNhlNrM9T7puyEYOSLCTxcaNFAiMoGFL4JkU0zQCD1t0KiwguxM6bIGP8YLtS8Z/eAIHMtKJTI08j1VroeoarJco1ODA+QFmANmYGnnUgi02+fmnCeKKkzqvJr6hspVbFIKXFMMHj0V+Zi49SIP+Hltt5kEbIvoBif9NdDBs5/9C1v+tU0jKNReLA8hP/dKeB81rJxU0Xd7LeYO1WIJOhLxR0K4NnKMGqkxd4WmdspvM0ZjILZ+yfoM8rI8bDtdCn52yRMeee+l4lxs25muv4j41BIxJ8xds7vghmLWd+Xf6zlo6cmGEZIEAsmGLua813u4RlpSSXrvB/XvdH3uPKdXXfouMe/soN5MTxc2D2v1rz19d78A'),
this.addDataEntry(dt + 'multibranch part association', 250, 50, 'Multibranch Part Association',
'7VbBbuIwEP2aXPZQBbts99rQwqnSSt0fMPGQWHU8kWMo8PU7iU1oGiJStbS7UpGQPDOZ5/F7eeCIz4rtwooyf0AJOuL3EZ9ZROdXxXYGWkcsVjLidxFjMX0jNh+oTppqXAoLxo1pYL5hI/QafEZUFaZKOIUmoFVup0NxA9apVOhbrTJDqSU6h0XEk9wVNPvdhJa0gSorakhWSusZarRNM4+bD+UrZ/EJTlXCNLQLbAdP1KTCcRaABTi7o0cODYz7lp2PQ/SspMt95tpnclBZ7jopUfkwa1GP1NEisHeaSd5jsrRY0kl2fRpBZvAYQtBLfL4/JrpUUo3WOVq1R+MEFRIRuLd+/GRQEzDy1toGwKCpoS2ujYR64JpsLZagE5E+ZU3+oEd41g9dT9oRosK1TaHz8rxBG99gQdP7tekCn+I+AP1GRfgtCpvGHYWnXQAnbAYu9LzSrx1plKTXPUnjq6sfPTUtVGovlk0YdwU8p5XD8qwQKxL+Ue1r9MlY2VI0BlIXhmp/Bc45i3+oemOdMx10Dnu3cw6Ef/vmhG/iSxnn5z9onPf4YvolvrgZ9AW/hC80rMbaQipRoJF/cmV67qDH5kq3+xl5kID9j9a59F/Mr57G/dvCCJsMaPe5Lrn5DJdQeLwde8JfXp7/Ag=='),
this.addDataEntry(dt + 'multibranch shared association', 250, 50, 'Multibranch Shared Association',
'7VbbToQwEP0aXnwwbOuqr7LqPpmY6A90YRYaS4eU7vXrHWjZFVkiZl0viSQknZnOYTiHExrwSb6eGlFkD5iACvhdwCcG0bpVvp6AUgELZRLw24CxkO6A3fdUR3U1LIQBbYc0MNewFGoBLiPKEmMprETt0Uq7Ub64BGNlLNSNkqmm1AytxTzgUWZzmv12REt6gCxKaojmUqkJKjR1Mw/ri/L+mYQF696565QfegqYgzUb2tI0MO5aNi720UomNnOZC5fJQKaZbaVE6cJ0h7oniBaeo8N88Q5fhcGC3mTTJQuSFJ58CGqGq7t9ok0Y1WidoZFb1FZQIRKeYePGj3qZB53cGFMDaNQVtMGFTqAauCJbiRmoSMQvaZ1v9PB73dDVpC0hSlyYGFqfyCe0cQ0GFH1FyzbwIe490CNKwt+hsHHYUnjcBrDCpGB9zzv9diMNkvSiI2l4fn7WUdNAKbdiVofhAYHeCPpeK4vFh0LMSfgnua3QR0Nli1FriK0fauf1j5zFv1S9oc4Z9zqHHe2chvB/3xzwTXgq41z+QuMc44vxj/jiqtcX/BS+UDAfaotEihx18pxJ3XEHbbuX1Ts1USMB+4vWOfUv5rqjcfe00GcTL9ivccnVd7iEwv0Z2BH+9oj8Cg=='),
this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;',
160, 0, '', 'Generalization', null, this.getTagsForStencil(gn, '', dt + 'generalization').join(' ')),
this.addDataEntry(dt + 'multibranch generalization', 140, 50, 'Multibranch Generalization',
'7VXLbsIwEPwa350Y2l4hPE6VKvEFBm8TC8eLnOX59XViF3AFag70UIlIkbyzu5P1TCwzUdSHuZOb6h0VGCamTBQOkcKqPhRgDMu5VkxMWJ5z/7J8diebdVm+kQ4s9WnIQ8NOmi0EJAANHU0EduBIr6QZGV1aDy2RCGsmxhXVft5J5peeVG8a3zD+1MYUaNB1zYJ3j8cbcriGW5k4gf8KHO7uooPiFuaANZA7+pLY8PIWOo5xUyKEe62oCtAgIBXosqIEkk0IyzPrRS6/iIrdVk/8rh6oEhYxBLPE/fQCJApatdCntirLQzhyDvet3gZX6wDNdDvKhHeKL7tshU6f0JL0ibHDrVWgYkmYpR0gkbXBrVtBYn9/pSOHAyNJ71LiW0pGog/Unv/M8srTDpKuBIpFP+Q/z9DLkcEDHYkKf///Hrp7FK7ssmjhH1mRDXhydoZ/Zs3waU1Pax5thQ8vN0oov75wvgA='),
this.addDataEntry(dt + 'generalization set', 140, 50, 'Generalization Set',
'7VXJbsIwEP0a37NA6ZWE5VQJiS9w8JBMcTJoYtavrxO7QApIOdBDpUaKNO/Nouc3jiLitDzOWW6LD1KgRTwVccpExkXlMQWtRRSgEvFERFFgXxHNnmTDNhtsJUNl+jRErmEv9Q4cI0aJwvqT0A4YTVy6Nift07Ydt7UFSWFKK3cS2nCNWqekiduaOGgfy9eGaQOPMlpmoBdUo0GqbI4xL6zgRGrMG6xh3UCvDtjA8ekJW8ofbw5UguGTLfENb++u4+QPHDt4QGUKRw0cU4DTcEPJ2sH8MvVqpQ28m4+dje+dvfNS5bD0EHRGh+mVuLUXKrXEc1MVRg6OmelgcaZptXHUDBspk8bcdpaNC2I8U2WkTSRMu0qB8iVOSyOgY2tNO15B52r0d9rPYNDS4L47+JGTftCivWqXKaOg22Ek52B80Q/7Lxp6bWTwwo14h5ubiavW3+9w7G9wRsZQ2V1XRRX8oVWEg6Dz7Qx/bTXD/9X0XM2rV2Hh9W/jym9/Rl8='),
this.addDataEntry(dt + 'generalization set', 150, 80, 'Generalization Set',
'5ZXBboMwDIafJncITPQ6YO1pUqU+QVo8iGYSFFIGe/oFErUwilYxqZceEPlt/5blT1FIkJTtTrGqeJcZIAneSJAoKbU9lW0CiIR6PCNBSij1zEfodiHrD1mvYgqEvsdAraFheAYbsYFad+gCkOVwcFJIYX5xoUszaeqbI4jsVSn5ZeQR5enThrYc+wLPqgP/7s0+NdK273suTjyE3Lg7kCVo1ZkSBcg0b6Y+VluZX+ou1r3kpiP1Wmfwpg7NVA7aFY03tODrrNz8alPLszrBrI05jIa/hob130YRPA2KcCWK8FEowqdBEa1EET0KxcscRRTLBhSyquIiJ1G6no1LZqwuIHNpZEfAvay55lKYmOJ5YRDEDHnea4QP/S9i7cSwll93+yotLH7GbzPld+eN/JufkdfHy5aP37Yf'),
this.addDataEntry(dt + 'block namespace containment', 140, 70, 'Block Namespace Containment',
'7ZXPjoIwEMafhjtQ192roOtlTUx8gmpHaCyMKfUPPv0OtKJ1McvBwx6WxKTztfMxfD8MAUuL81zzfb5AASpgs4ClGtHYVXFOQakgDqUI2DSI45B+Qfz5ZDdqd8M911CaIQ2xbThydQCrWKEytXLCEbSRG64mSmYlSWs0BouAJbkpaN5pREsylfuKGpKtVCpFhbptZmF7kV4ZjTvo23ET0F3g/PQpWsk9whywAKNrOuIaxh+2o7Ylc+VJCpNbaWSVHGSWG0/ilS2zzvUWFy1cYv3psd/TA5HBypWg1nia3QQvwVKs5KU5FcW2nGiNJ6qrulp8Lflml2KTRtK6kJ6jlheSOFkkGg+lgGasJlLuUCnYNh2PBAspBN2/HbWZz0u9woPegPd2DAfhPDQobuTRN+4L2hktUZJ/5/IeejijsW9guM7AuJ4HWN1Ig/iNXsjPUblm3RN798e5g1tiCT/w/V0y0chHcyX1ejRv/2gGonk1Cipv3x97/P7z9A0='),
this.addDataEntry(dt + 'participant property', 400, 140, 'Participant Property',
'5ZfbbtswDEC/xi8DWviS2x7tZOvLBhTrFyg2YwuVLU9WmmRfP+qW1LfBRdKhQB+aiqTpkEekqHjRujw+CFIXP3kGzIu+edFacC7NqjyugTEv9GnmRRsvDH3888LvI9ZAW/2aCKjkFIfQOLwQtgejSRhPn626kSdm1U1BarUUkOKLk0KWGOsmwOWOV/LJPqjkQ0ElPNUkVYoDZoY6wmheoZhiWCBQYb8WhITjaOhaZeN+AF6CFCd85EAzWZgn5iY7vwCaF9bLZuyTxsj52fPCARcWxTCWaBhL8JGxWIfIMfkPmGY9TF64YApE3cK0+L1XBZ2UROQUE479+ngW7yRHFvFMqzBveWexxK+wuDfgKrf/9fdsnSJuGp5SIimvAmfE8Lddh0Ko7DpKVNVd3VsyYLBDY7x6awqkVFXA+hJut6QprQnuuTO0nazke8sEqkwtVJh+LXiN1aPqIfCWWhNoY4yfuoa1xdHrwHjXeEIbT9iLJxzeh8mtxrFhdowfUNxRVayDzXaD3nJ9dDLiot9pkT/QaqsbtNq812rtiu/AgiwHd/pUvII2MNyhWAgNzBoVFpoSFtsTacul5OWZmnpdi1nD9yKF1gyR2AsgW+fnBLICGKbw0n77NaAWPVCuBgeGGlYIrfIfun03URuSO5xNc48TYmQL7JE3VO2Eqk+z8UafkPQ5F3xfZWvOuLgA1+OB/tHTwZZHyqsKa5tsXXj+pJKd/7Nk76zHzTkve5wHpuMVfPVU+KxwV6NFPAr5lz1vRig7cJPL2G7LxwD9Xpy/9i8wy4SLDARkZlz59/dfbox8uLI/BW8XdOvGeOXoykhTQGbNE8bV7Pazybo+cqruRw5i6LevC0HnGmAGpnXqMDxHMYQVxcsvRPP46x+QfwE='),
this.addEntry(dt + 'participant property', function()
{
var cardCell = new mxCell('Block2', new mxGeometry(0, 0, 50, 20), 'shape=rect;html=1;strokeWidth=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell.vertex = true;
var cardCell2 = new mxCell('Block1', new mxGeometry(350, 0, 50, 20), 'shape=rect;html=1;strokeWidth=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
var bg = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Association1</b></p><hr/>' +
'<p style="margin:0px;text-align:center;"><i>structure</i></p>',
new mxGeometry(20, 60, 360, 150), 'shape=rect;html=1;strokeWidth=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
bg.vertex = true;
var cardCell4 = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<participant>><br/>' +
'{end = property 2}<br/><br/>' +
'<b>p2 : Block 2</b></p>',
new mxGeometry(20, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;');
cardCell4.vertex = true;
bg.insert(cardCell4);
var cardCell5 = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<participant>><br/>' +
'{end = property 1}<br/><br/>' +
'<b>p1 : Block 1</b></p>',
new mxGeometry(190, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;');
cardCell5.vertex = true;
bg.insert(cardCell5);
var edge1 = new mxCell('Association1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;');
edge1.geometry.relative = true;
edge1.edge = true;
cardCell.insertEdge(edge1, true);
cardCell2.insertEdge(edge1, false);
var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;dashed=1;');
edge2.geometry.setTerminalPoint(new mxPoint(200, 10), false);
edge2.geometry.relative = true;
edge2.edge = true;
bg.insertEdge(edge2, true);
var label1 = new mxCell('property2', new mxGeometry(-1, 0, 0, 0), 'spacingLeft=3;html=1;align=left;verticalAlign=bottom;labelPosition=right;labelBackgroundColor=none;fontSize=10');
label1.geometry.relative = true;
label1.setConnectable(false);
label1.vertex = true;
edge1.insert(label1);
var label2 = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'spacingLeft=3;html=1;align=left;verticalAlign=top;labelPosition=right;labelBackgroundColor=none;fontSize=10');
label2.geometry.relative = true;
label2.setConnectable(false);
label2.vertex = true;
edge1.insert(label2);
var label3 = new mxCell('property1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label3.geometry.relative = true;
label3.setConnectable(false);
label3.vertex = true;
edge1.insert(label3);
var label4 = new mxCell('{ordered} 0..*', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label4.geometry.relative = true;
label4.setConnectable(false);
label4.vertex = true;
edge1.insert(label4);
return sb.createVertexTemplateFromCells([cardCell, cardCell2, bg, edge1, edge2], 400, 260, 'Participant Property');
}),
this.addDataEntry(dt + 'participant property', 400, 80, 'Participant Property',
'5ZZfT+MwDMA/TV+QDvXPxu4e18Hxckjo+ARZY9qINK7SjG18etwm3ShpUREDIfEwLXbi1P7FjhMkq3J3rVlV3CAHGSRXQbLSiMaOyt0KpAziUPAguQziOKRfEP8dmY3a2bBiGpSZYhBbg0cmN2A1qcTswalrs5dOXResaoYaMto4LUxJvl5GNLxHZe7cwkbeFsLAXcWyRrGlyEjHpMgViRm5BZoU7rOgDexGXW9Vzu9rwBKM3tOSreCmsCvmNrqwAJEXzspFHLLayvnB8siBBg7FMJZkGEv0nbE4g6Rj8gWYZh6mZV1jJpgRqN4D6wRxRzMX0N7KFz6GKP4kDnOPgxc78By6dFCo6C8FxZda4/ao8Yg0Vj0eNW50Br3aNUznYHp5O4GaBkmn9Njf/SMMLjwGlcaKTnQ/cJlQGQiV/4P7xsmkH3lXFLKdTZukEBmTS6deozFY0oRka5C3WIsm2Zqssmdq9SnLHnKNG8VXKFEfEbdlKZ7aqnQnn6FSlJFs3bkXTkrH+Zvp+MtZnJzzwuM8UGgf4Guw+rlwf48m8Sjk/+4qGaHcgZucxu5Yvgfoz+L8x78wFylqDhp4sCA5DM/Pz06MfDizfwTvzul3dqgXcP1mxVldAJ/erman703O9BYF7XiASMnTewlErzq8bZjO6BXDgxdDWEk8vszt8pcP92c='),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Association1</b></p><hr/>' +
'<p style="margin:0px;margin-left:8px;text-align:center;"><<participant>> {end = property 1} p1 : Blcok 1<br/>' +
'<<participant>> {end = property 2} p2 : Blcok 2</p>',
'Association', null, null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Association1</b></p><hr/>' +
'<p style="margin:0px;text-align:center;"><i>structure</i></p>',
'Association', null, null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;', 150, 80,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<<participant>><br/>' +
'{end = property 1}<br/><br/>' +
'<b>p1 : Block 1</b></p>',
'Participant', null, null, this.getTagsForStencil(gn, '', dt + 'participant').join(' ')),
this.addEntry(dt + 'connector property', function()
{
var bg = new mxCell(
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Block1</b><hr/></p>' +
'<p style="margin:0px;margin-top:-6px;margin-left:10px;text-align:left;">' +
'<<connector>> c1 : Association1<br/>' +
'<<connector>> c2 : Association2<hr/></p>' +
'<p style="margin:0px;margin-top:-6px;text-align:center;font-size:10px;">' +
'<i>structure</i></p>',
new mxGeometry(0, 0, 400, 250), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(20, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(300, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var edge1 = new mxCell('c1: Association1', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;labelBackgroundColor=none;');
edge1.geometry.relative = true;
edge1.edge = true;
cardCell2.insertEdge(edge1, true);
cardCell3.insertEdge(edge1, false);
bg.insert(edge1);
var label1 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label1.geometry.relative = true;
label1.setConnectable(false);
label1.vertex = true;
edge1.insert(label1);
var label2 = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label2.geometry.relative = true;
label2.setConnectable(false);
label2.vertex = true;
edge1.insert(label2);
var cardCell4 = new mxCell('p3:\nType3', new mxGeometry(20, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell4.vertex = true;
bg.insert(cardCell4);
var cardCell5 = new mxCell('p4:\nType4', new mxGeometry(300, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell5.vertex = true;
bg.insert(cardCell5);
var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;');
edge2.geometry.relative = true;
edge2.edge = true;
cardCell4.insertEdge(edge2, true);
cardCell5.insertEdge(edge2, false);
bg.insert(edge2);
var label3 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label3.geometry.relative = true;
label3.setConnectable(false);
label3.vertex = true;
edge2.insert(label3);
var label4 = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
label4.geometry.relative = true;
label4.setConnectable(false);
label4.vertex = true;
edge2.insert(label4);
var cardCell6 = new mxCell('c2: Association2', new mxGeometry(140, 210, 120, 20), inh + 'shape=rect;html=1;align=center;');
cardCell6.vertex = true;
bg.insert(cardCell6);
var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;dashed=1;');
edge3.geometry.setTerminalPoint(new mxPoint(200, 180), false);
edge3.geometry.relative = true;
edge3.edge = true;
cardCell6.insertEdge(edge3, true);
bg.insert(edge3);
return sb.createVertexTemplateFromCells([bg], 400, 250, 'Connector Property');
}),
this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 120,
'<p style="margin:0px;margin-top:4px;text-align:center;">' +
'<b>Block1</b><hr/>' +
'<<connector>> c1 : Association1<br/>' +
'<<connector>> c2 : Association2<hr/></p>',
'Connector Property', null, null, this.getTagsForStencil(gn, '', dt + 'connector property').join(' ')),
this.addEntry(dt + 'internal block diagram', function()
{
var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>ibd</b> Block1</p>', new mxGeometry(0, 0, 300, 100), s + 'package;labelX=100;align=left;spacingLeft=10;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=0;recursiveResize=0;');
bg.vertex = true;
var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell2.vertex = true;
bg.insert(cardCell2);
var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
cardCell3.vertex = true;
bg.insert(cardCell3);
var assoc = new mxCell('c1:a1', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;');
assoc.geometry.relative = true;
assoc.edge = true;
var sourceLabel = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10');
sourceLabel.geometry.relative = true;
sourceLabel.setConnectable(false);
sourceLabel.vertex = true;
assoc.insert(sourceLabel);
var targetLabel = new mxCell('p3', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
targetLabel.geometry.relative = true;
targetLabel.setConnectable(false);
targetLabel.vertex = true;
assoc.insert(targetLabel);
cardCell2.insertEdge(assoc, true);
cardCell3.insertEdge(assoc, false);
bg.insert(assoc);
return sb.createVertexTemplateFromCells([bg], 300, 100, 'Internal Block Diagram');
}),
this.addEntry(dt + 'property', function()
{
var bg = new mxCell('', new mxGeometry(0, 0, 300, 120), 'shape=rect;html=1;strokeWidth=2;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;');
bg.vertex = true;
var car