1(function() 2{ 3 Sidebar.prototype.addSysMLPalette = function() 4 { 5 this.setCurrentSearchEntryLibrary('sysml', 'sysmlModel Elements'); 6 this.addSysMLModelElementsPalette(); 7 this.setCurrentSearchEntryLibrary('sysml', 'sysmlBlocks'); 8 this.addSysMLBlocksPalette(); 9 this.setCurrentSearchEntryLibrary('sysml', 'sysmlPorts and Flows'); 10 this.addSysMLPortsAndFlowsPalette(); 11 this.setCurrentSearchEntryLibrary('sysml', 'sysmlConstraint Blocks'); 12 this.addSysMLConstraintBlocksPalette(); 13 this.setCurrentSearchEntryLibrary('sysml', 'sysmlActivities'); 14 this.addSysMLActivitiesPalette(); 15 this.setCurrentSearchEntryLibrary('sysml', 'sysmlInteractions'); 16 this.addSysMLInteractionsPalette(); 17 this.setCurrentSearchEntryLibrary('sysml', 'sysmlState Machines'); 18 this.addSysMLStateMachinesPalette(); 19 this.setCurrentSearchEntryLibrary('sysml', 'sysmlUse Cases'); 20 this.addSysMLUseCasesPalette(); 21 this.setCurrentSearchEntryLibrary('sysml', 'sysmlAllocations'); 22 this.addSysMLAllocationsPalette(); 23 this.setCurrentSearchEntryLibrary('sysml', 'sysmlRequirements'); 24 this.addSysMLRequirementsPalette(); 25 this.setCurrentSearchEntryLibrary('sysml', 'sysmlProfiles'); 26 this.addSysMLProfilesPalette(); 27 this.setCurrentSearchEntryLibrary('sysml', 'sysmlStereotypes'); 28 this.addSysMLStereotypesPalette(); 29 this.setCurrentSearchEntryLibrary(); 30 } 31 32 /** 33 * Adds the sysML palettes to the sidebar. 34 */ 35 Sidebar.prototype.addSysMLModelElementsPalette = function(expand) 36 { 37 var gn = ''; 38 var dt = 'sysml model element '; 39 var sb = this; 40 var s = 'html=1;shape=mxgraph.sysml.'; 41 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 42 43 var fns = [ 44 this.addDataEntry(dt + 'comment', 180, 80, 'Comment', 45 '1ZS7bsMgFIafhrXCOJGytk6bpZUqZWlHFE4NEgYLn8ROn74Hg5I4FylDlg6W///cgM8WrKyaYRVkqz+8AsvKV1ZWwXtMqhkqsJYJbhQrl0wITg8TbzeyxZjlrQzg8J4GkRp20m4hRSrfNLFZcIQBU7rDvc3pTss2SueRXi+d+Y2umJOW1tSOjIUfjKlWboyr30e3LDiFNDY2apK9NghrKontPZ2fYnkvEGjlm+cZQ/kwK/ANYNhTyT5lZ+m4vDcKdW6Y55gGU2uc1sku+fow6QiLROZ1nV15we6CFqga1tk67yIxcOo5BN+fRAaDX2T50yy77+hIK9lpUJnYCby0Thw+wdT5bdjA5MPeQW6KOoCVaHbTwdco5UGf3ow/S54izriiDDVgLjpDe9jDXbRnD6e9+Pe0i8WjcJM9Xjqp/PRO+gM='), 46 this.addDataEntry(dt + 'constraint note', 180, 80, 'Constraint Note', 47 '1ZQxb8IwEIV/jVcUO1BYIaUsVKrE0o4WvsaWHDtyDEn663uOLSAUJAaWDlHuPd8921+kkLyouo3jtXy3AjTJ1yQvnLU+VlVXgNaEZUqQ/JUwluFD2NudVTqsZjV3YPwjAywOHLk+QHTIfFVQki/RxXJLyRzdbE0nXXDYS4m5q+CwST+shfnG9zrNN5LXoTTW42vVqJ+g6AxrrlVpUGj4DiFNzffKlNtBvdIMLekrHWosW6k87LAljLcIaNh2OCw4D93dCw9Wuu0GbAXe9djSx9Vp5JG1SniZBmbJk6BK6cd9vIm6PCWdaWKRgN6Gm/+Fe00LRAm7JI01gRgYsXTOthdOp/wnymwyTeorKKwFbySIROwCXtwnhI8wNfbg9jD68g+QG6N2oLlXx3HwLUop6MMqzD+lsCuunrsSfGq6Qns6w0O0p0+nvfj3tOniWbhRnv9Ksf3yp/UL'), 48 this.addDataEntry(dt + 'constraint textual note', 160, 60, 'Constraint Textual Note', 49 'lVNNb8MgDP01SNuNgtSel6TrZZMm9bAzTdyASiAidEn362cCaZV+SN0ByX72g+dnQXjeDBsnWvlpK9CErwnPnbU+Rs2Qg9aEUVURXhDGKB7C3h9UF2OVtsKB8c8QWCT8CH2EiKw1NEjGm5aE8QUlPHsR5oRNdVCpShH4BsW+Rm7nTzpxOynaEDoo8fWs884e4FtVXiLIENlb47epf4G59I1OYS+Vh20rylDr8SnEhFa1wbREQeAQSGrBeRgeTjxCadwN2Aa8C/L7pCN0LKMrVIKqZaJNmOhiXp+pF/8wSBbet5Pf2ElWWWkNOiEU6mMUhXuyKm6sm0bVsPdzY8K0wfW31NGoqgqsTIsd6C/bKa9sKLg4y5nwcVWfEzNRHmpnj6bKrbZobmGsgWlH6ndcUbIEJzC4UrGb1NKnFsHuL2K4WsIpefd//zG9fJWxNvtJfw=='), 50 this.addDataEntry(dt + 'constraint textual note', 160, 0, 'Constraint Textual Note', 51 'lVNBbsIwEHyNj5WMI5UzCS2nSpU49GySJVg4XuQsNPD6rmNDSBskerDkHc+s7RlbZEXTrbw+7D6wAiuyN5EVHpHirOkKsFYoaSqRLYVSkodQ7w9WZ/2qPGgPjp4RqCg4aXuEiIh5XqJryWvDLZQk6EjMl5HX0tkm3gk8mVLbhTW1Y2iDRNiILN9Rw9dYzngKrlp4j99cOnQQkKqGdWqSIKs3YHNd7muPR1cVaNEPq1t0tDaXwJ9JrvlguIcvU9GOIcVIPFlo/NCDHkoGrAAbIH9migeryZzGOt3Gsr7xbtJPjJZcKS0efQkJvTf5SuxS51c57k3a10B/hDy5O98A9ZlN55dN5adduF0dHlVIqDeD7ZoI0UNrLnrTl3KcnU65Wtiyi/nvuAkP/84ubs+vy0FJadfbC5VhB+geZqimM0yCl6R4OtKR54PBXA6fL+Zx/zd/AA=='), 52 53 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;', 54 160, 90, 'Model', 'Model', null, null, this.getTagsForStencil(gn, '', dt + 'model').join(' ')), 55 56 this.addEntry(dt + 'package diagram', function() 57 { 58 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;'); 59 bg.vertex = true; 60 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;'); 61 cardCell2.vertex = true; 62 bg.insert(cardCell2); 63 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;'); 64 cardCell3.vertex = true; 65 bg.insert(cardCell3); 66 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;'); 67 assoc1.geometry.relative = true; 68 assoc1.edge = true; 69 cardCell2.insertEdge(assoc1, true); 70 cardCell3.insertEdge(assoc1, false); 71 bg.insert(assoc1); 72 73 return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package Diagram'); 74 }), 75 76 this.addEntry(dt + 'package tab', function() 77 { 78 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;'); 79 bg.vertex = true; 80 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;'); 81 cardCell2.vertex = true; 82 bg.insert(cardCell2); 83 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;'); 84 cardCell3.vertex = true; 85 bg.insert(cardCell3); 86 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;'); 87 assoc1.geometry.relative = true; 88 assoc1.edge = true; 89 cardCell2.insertEdge(assoc1, true); 90 cardCell3.insertEdge(assoc1, false); 91 bg.insert(assoc1); 92 93 return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package (Tab)'); 94 }), 95 96 this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;strokeWidth=2;html=1;whiteSpace=wrap;align=center;', 97 160, 90, 'Package1', 'Package (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'package name').join(' ')), 98 this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;', 99 160, 60, '<<problem>>\nDescription', 'Problem', null, null, this.getTagsForStencil(gn, '', dt + 'problem').join(' ')), 100 this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;', 101 160, 60, '<<rationale>>\nDescription', 'Rationale', null, null, this.getTagsForStencil(gn, '', dt + 'rationale').join(' ')), 102 this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;', 103 160, 80, '\n<<view>>\n{viewpoint = View name}\nName', 'View (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'view name').join(' ')), 104 this.createVertexTemplateEntry('shape=folder;html=1;tabWidth=80;tabHeight=40;tabPosition=left;align=left;verticalAlign=top;spacingLeft=10;whiteSpace=wrap;', 105 160, 120, '<<view>>\nName', 'View', null, null, this.getTagsForStencil(gn, '', dt + 'view').join(' ')), 106 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 120, 140, 107 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 108 '<<viewpoint>><br/>' + 109 '<b>Name</b></p><hr/>' + 110 '<p style="margin:0px;margin-left:8px;text-align:left;">' + 111 'stakeholders="..."<br/>' + 112 'purpose="..."<br>' + 113 'concerns="..."<br>' + 114 'languages="..."<br>' + 115 'methods="..."</p>', 116 'Viewpoint', null, null, this.getTagsForStencil(gn, '', dt + 'viewpoint').join(' ')), 117 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 118 160, 0, '<<conform>>', 'Conform', null, this.getTagsForStencil(gn, '', dt + 'conform').join(' ')), 119 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 120 160, 0, '<<stereotype1>>\ndependency1', 'Dependency', null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')), 121 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 122 160, 0, '<<import>>', 'Public Package Import', null, this.getTagsForStencil(gn, '', dt + 'public package import').join(' ')), 123 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 124 160, 0, '<<access>>', 'Private Package Import', null, this.getTagsForStencil(gn, '', dt + 'private package import').join(' ')), 125 this.createEdgeTemplateEntry('edgeStyle=none;html=1;' + mxConstants.STYLE_STARTARROW + '=sysMLPackCont;startSize=12;' + mxConstants.STYLE_ENDARROW + '=none;', 126 160, 0, '', 'Package Containment', null, this.getTagsForStencil(gn, '', dt + 'package containment').join(' ')), 127 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;dashed=1;', 128 160, 0, '', 'Realization', null, this.getTagsForStencil(gn, '', dt + 'realization').join(' ')), 129 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 130 160, 0, '<<refine>>', 'Refine', null, this.getTagsForStencil(gn, '', dt + 'refine').join(' ')) 131 ]; 132 133 this.addPalette('sysmlModel Elements', 'SysML / Model Elements', expand || false, mxUtils.bind(this, function(content) 134 { 135 for (var i = 0; i < fns.length; i++) 136 { 137 content.appendChild(fns[i](content)); 138 } 139 })); 140 }; 141 142 Sidebar.prototype.addSysMLBlocksPalette = function(expand) 143 { 144 var gn = ''; 145 var dt = 'sysml block '; 146 var sb = this; 147 var s = 'html=1;strokeWidth=1;shape=mxgraph.sysml.'; 148 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 149 150 var fns = 151 [ 152 this.addEntry(dt + 'block definition diagram', function() 153 { 154 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;'); 155 bg.vertex = true; 156 var cardCell2 = new mxCell('Block1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;'); 157 cardCell2.vertex = true; 158 bg.insert(cardCell2); 159 var cardCell3 = new mxCell('Block2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;'); 160 cardCell3.vertex = true; 161 bg.insert(cardCell3); 162 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;'); 163 assoc.geometry.relative = true; 164 assoc.geometry.x=1; 165 assoc.edge = true; 166 bg.insert(assoc); 167 var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 168 sourceLabel.geometry.relative = true; 169 sourceLabel.setConnectable(false); 170 sourceLabel.vertex = true; 171 assoc.insert(sourceLabel); 172 var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 173 targetLabel.geometry.relative = true; 174 targetLabel.setConnectable(false); 175 targetLabel.vertex = true; 176 assoc.insert(targetLabel); 177 cardCell2.insertEdge(assoc, true); 178 cardCell3.insertEdge(assoc, false); 179 180 return sb.createVertexTemplateFromCells([bg], 300, 100, 'Block Definition Diagram'); 181 }), 182 183 this.addDataEntry(dt + 'relation', 160, 0, 'Relation', 184 'zVRNb8IwDP01vUwaCi3aHcrgNGkS+wOhMW20NEapYYVfP9MmLVVh2qYddqjkPNvPHy9NlKRlvXZyX7ygAhMlz1GSOkRqrbJOwZgoFlpFyTKKY8FfFK/ueKeNV+ylA0vfSYjbhKM0B2gRziVPU9HJeFQanVs2nc4LJl4UVHKvyymbR3CkM2nmPmSLRFiyA6yaO4cfjFm0TLSoiMkDprQs0aq3Qtvg2ujzpd50FoCVNqEMqBw2viFP13Z5cdydvoH86GvAEsidOKQeJDgwkvRxyCKr9ph3WR3RK2rm70MqPLgMPHq97BAYyj2JITePmAONEtm46raHGu1u65iMdBxr6KDSZ7ltjmKoYZDXwI5uSEq4Z9TILZiFzN5zhwerUjToejF2aDv9/JgZWgsZ+ZLdXRQXeqjvahZ/qdnjT0UbbPWLFc5GKxSTycNvthh+kv+8xj/aIh/7x6q9t9dv2Sc='), 185 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;verticalAlign=top;align=left;whiteSpace=wrap;', 220, 340, 186 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 187 '<<block>><br/>' + 188 '{encapsulated}<br/>' + 189 '<b>Block1</b></p><hr/>' + 190 '<p style="font-size:10px;margin:0px;text-align:center;"><i>constraints</i></p>' + 191 '<p style="margin:0px;margin-left:8px;text-align:left;">{x > y}</p><hr/>' + 192 '<p style="font-size:10px;margin:0px;text-align:center;"><i>operations</i></p>' + 193 '<p style="margin:0px;margin-left:8px;text-align:left;">operation1 (p1 : Type1) : Type2</p><hr/>' + 194 '<p style="font-size:10px;margin:0px;text-align:center;"><i>parts</i></p>' + 195 '<p style="margin:0px;margin-left:8px;text-align:left;">property1 : Block2</p><hr/>' + 196 '<p style="font-size:10px;margin:0px;text-align:center;"><i>references</i></p>' + 197 '<p style="margin:0px;margin-left:8px;text-align:left;">property2 : Block3 [0..*] {ordered}</p><hr/>' + 198 '<p style="font-size:10px;margin:0px;text-align:center;"><i>values</i></p>' + 199 '<p style="margin:0px;margin-left:8px;text-align:left;">property3 : Integer = 99 {readOnly}<br/>property4 : Real = 10.0</p><hr/>' + 200 '<p style="font-size:10px;margin:0px;text-align:center;"><i>properties</i></p>' + 201 '<p style="margin:0px;margin-left:8px;text-align:left;">property5 : Type1</p>', 202 'Block', null, null, this.getTagsForStencil(gn, '', dt + 'block').join(' ')), 203 this.createVertexTemplateEntry('shape=umlActor;html=1;verticalLabelPosition=bottom;verticalAlign=top;align=center;', 204 30, 60, 'ActorName', 'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')), 205 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 160, 80, 206 '<p><<actor>><br/><b>ActorName</b></p>', 207 'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')), 208 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 180, 209 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 210 '<<valueType>><br/>' + 211 '<b>ValueType1</b></p><hr/>' + 212 '<p style="font-size:10px;margin:0px;text-align:center;"><i>operations</i></p>' + 213 '<p style="margin:0px;margin-left:8px;text-align:left;">operation1 (p1 : Type1) : Type2</p><hr/>' + 214 '<p style="font-size:10px;margin:0px;text-align:center;"><i>properties</i></p>' + 215 '<p style="margin:0px;margin-left:8px;text-align:left;">property1 : Type3</p><hr/>' + 216 '<p style="margin:0px;margin-left:8px;text-align:center;"><<valueType>></p>' + 217 '<p style="margin:0px;margin-left:8px;text-align:left;">unit = UnitName</p>', 218 'ValueType', null, null, this.getTagsForStencil(gn, '', dt + 'value type valuetype').join(' ')), 219 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80, 220 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 221 '<<enumeration>><br/>' + 222 '<b>Enumeration1</b></p><hr/>' + 223 '<p style="margin:0px;margin-left:8px;text-align:left;">literalName1<br/>literalName2</p>', 224 'Enumeration', null, null, this.getTagsForStencil(gn, '', dt + 'enumeration').join(' ')), 225 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40, 226 '<p style="margin:13px;"><b><i>Name</i></b></p>', 227 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')), 228 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40, 229 '<p style="margin:5px;">{abstract}<br/><b><i>Name</i></b></p>', 230 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')), 231 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40, 232 '<p style="margin:5px;"><b><i>Name</i></b><br/>{abstract}</p>', 233 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')), 234 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 200, 80, 235 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 236 '<<stereotype1>><br/>' + 237 '<b>Block1</b></p><hr/>' + 238 '<p style="margin:0px;margin-left:8px;text-align:center;"><<stereotype1>></p>' + 239 '<p style="margin:0px;margin-left:8px;text-align:left;">property1 = value</p>', 240 'Stereotype Property Compartment', null, null, this.getTagsForStencil(gn, '', dt + 'stereotype property compartment').join(' ')), 241 242 this.addEntry(dt + 'namespace compartment', function() 243 { 244 var bg = new mxCell( 245 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 246 '<b>Block1</b></p><hr/>' + 247 '<p style="font-size:10px;margin:0px;text-align:center;"><i>namespace</i></p>', 248 new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 249 bg.vertex = true; 250 var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 251 cardCell2.vertex = true; 252 bg.insert(cardCell2); 253 var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 254 cardCell3.vertex = true; 255 bg.insert(cardCell3); 256 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;'); 257 assoc.geometry.relative = true; 258 assoc.geometry.x=1; 259 assoc.edge = true; 260 bg.insert(assoc); 261 var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 262 sourceLabel.geometry.relative = true; 263 sourceLabel.setConnectable(false); 264 sourceLabel.vertex = true; 265 assoc.insert(sourceLabel); 266 var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 267 targetLabel.geometry.relative = true; 268 targetLabel.setConnectable(false); 269 targetLabel.vertex = true; 270 assoc.insert(targetLabel); 271 cardCell2.insertEdge(assoc, true); 272 cardCell3.insertEdge(assoc, false); 273 274 return sb.createVertexTemplateFromCells([bg], 300, 100, 'Namespace Compartment'); 275 }), 276 277 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 250, 100, 278 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 279 '<b>Block1</b></p><hr/>' + 280 '<p style="font-size:10px;margin:0px;text-align:center;"><i>namespace</i></p>', 281 'Block', null, null, this.getTagsForStencil(gn, '', dt + 'block').join(' ')), 282 283 this.addEntry(dt + 'structure compartment', function() 284 { 285 var bg = new mxCell( 286 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 287 '<b>Block1</b></p><hr/>' + 288 '<p style="font-size:10px;margin:0px;text-align:center;"><i>structure</i></p>', 289 new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 290 bg.vertex = true; 291 var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 292 cardCell2.vertex = true; 293 bg.insert(cardCell2); 294 var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 295 cardCell3.vertex = true; 296 bg.insert(cardCell3); 297 var assoc = new mxCell('c1:', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;'); 298 assoc.geometry.relative = true; 299 assoc.edge = true; 300 bg.insert(assoc); 301 var targetLabel = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 302 targetLabel.geometry.relative = true; 303 targetLabel.setConnectable(false); 304 targetLabel.vertex = true; 305 assoc.insert(targetLabel); 306 var targetLabel2 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10'); 307 targetLabel2.geometry.relative = true; 308 targetLabel2.setConnectable(false); 309 targetLabel2.vertex = true; 310 assoc.insert(targetLabel2); 311 cardCell2.insertEdge(assoc, true); 312 cardCell3.insertEdge(assoc, false); 313 314 return sb.createVertexTemplateFromCells([bg], 300, 100, 'Structure Compartment'); 315 }), 316 317 this.addDataEntry(dt + 'relation', 160, 0, 'Relation', 318 '3VTLboMwEPwa3x2Ieg/kcapUKV/gwNZYNV60bFKSr68BB4IIVQ499YDkHe+MvTMWIk7L5kCqKt4xByvinYhTQuR+VTYpWCsiaXIRb0UUSf+JaL+wu+p2ZaUIHL9CiHrCRdkz9EgWNGq+2gBdgNhkym6s0c5DJ2TGUsRJwaW/8Xbll+DyDRF++9Kh88SkZkX8DDuaWyu8Wt+BvbGtjGxlcg3HcDISF6jRKbsb0aS/Xdu3OHIHhXkPgCUwXX0LgVVsLlOeqvtSD30D9QONVxxbajxTBgF99PTe2ATlNznV9jNq4BnRLx7uN0JdRM/jimdxzdMiqM1NnbpSTkNSIUAyuvBeJYvBWnUCm6jsSxOeXZ6iRRpT/EQ3hBhGzdA5yDgcOzw72Z4AzWJS0fOkpoSXc5sY+4uL65mL8Kc2Mlb/zUNfjj+l/uE+/rN+AA=='), 319 320 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60, 321 '<p style="margin:0px;margin-top:10px;text-align:center;">' + 322 '<<unit>><br/>' + 323 '<p style="margin:0px;margin-left:8px;text-align:center;">{quantityKind = QuantityKind1}<br/>' + 324 '<b>Unit1</b></p>', 325 'Unit', null, null, this.getTagsForStencil(gn, '', dt + 'unit').join(' ')), 326 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80, 327 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 328 '<b>Unit1</b></p><hr/>' + 329 '<p style="margin:0px;margin-left:8px;text-align:center;"><<unit>><br/>' + 330 '{quantityKind = QuantityKind1}</p>', 331 'Unit', null, null, this.getTagsForStencil(gn, '', dt + 'unit').join(' ')), 332 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60, 333 '<p style="margin:0px;margin-top:10px;text-align:center;">' + 334 '<<quantityKind>><br/>' + 335 '<p style="margin:0px;margin-left:8px;text-align:center;"><b>QuantityKind1</b></p>', 336 'Quantity Kind', null, null, this.getTagsForStencil(gn, '', dt + 'quantity kind').join(' ')), 337 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;fontSize=15;whiteSpace=wrap;', 70, 30, 338 '<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' + 339 '<B>i1: Type1</b><br/>', 340 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')), 341 this.addDataEntry(dt + 'instance specification', 280, 30, 'Instance Specification', 342 '3VVNj5swEP01HFcCk416DWG7p5VWSv+AgQlYNR7XOF/76zvGBkLYtDmt1B6ieJ7nDeP3PBCl2/b8arhu3rACGaUvUbo1iNav2vMWpIxYLKoozSPGYvpF7Pud3aTfjTU3oOwjBOYJRy4P4JGIrSVRM01wZy/Sw+tfB9dS1nJTCxWlm1ifx/DJoiZo1UMWzvaJS1G7rJLaADOgFZRouBXotg6qAiOFovrZVJ9WdfjvuxgBkRCHWvpx0ZAMu3Su4pZRGHfaEWSzY7Cu4dotDZRuv7EtSZ5T7QyPYPYSTxTuBWmUZntUdic+XHryTPGpERZ2mpcOOZFl4wOISge8a0EPBf1fAVuw5kIpJ1HZxmd88y7FDYi6Caw0YLzzcT0yJz9pESz93N70n7GXTfay/8PeQGBx8PEL7F4t7N4kC43caUTJ5cabmBdoLbZztUBVG2N6tVCD8sggFnNhVcMu1ERjG6xRcfkyoUE6lzcTrsODKWH28rF0y8DOLuwD8hqQdNeO8+qfiReo7yio4pTiGwno9RtySBwMX98Y49tdEHtvxv4esut5YZdOF3YZ6MQHL/ownrsUxjA3/hZlt872c5tJXoDMePmzNkhTuUWJNLK5wn42r6cgHLREpWh+wjPHT8jfxmD1xzEIhIddu3PlKZw+jl7y62/nbw=='), 343 this.addDataEntry(dt + 'relation', 160, 0, 'Relation', 344 'jVPBbsIwDP2a3Esi7U4L4zRpEl8QWi+NlsaV60Lh65c2gdIBEodK9rP9Er/XCFU0w450W39hBU6orVAFIXKMmqEA54TMbCXURkiZhU/IzxfV1VTNWk3g+Z0BGQeO2vUQkXXi6PjsEnQEYltqt3bW+AAdkBkbofKam3DjzSqE4Ks1EZ5Cii34iOztZaRYyTGtDOwTJxLXaNBrt53RPJ479r1cZoLSJjvABpjOoYXAabbH5ZzuYmpufbfRb7SBcW7psKcSEnqv1rVxSMwf2ZKbNRngh8EQ3N1vhibxnxuhHoxo1YMRBJ296MOUZkv9dfKGrKmDWPl/zxjbgDp9AJfr8tcQ9r4q0CGFokc/GvCDnq+WpUVL9B5KTmfefqdspIfhpU/yuU/LgbddW8g6axjS+aFEye/f0R8='), 345 346 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 120, 60, 347 '<p style="margin:0px;margin-top:10px;text-align:center;text-decoration:underline;">' + 348 'instance1: Type1<br/></p>' + 349 '<p style="margin:0px;margin-top:4px;text-align:center;">value1</p>', 350 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')), 351 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 160, 80, 352 '<p style="margin:0px;margin-top:10px;text-align:center;text-decoration:underline;">' + 353 'instance1: Type1<br/></p><hr/>' + 354 '<p style="margin:0px;margin-top:4px;margin-left:4px;text-align:left;">property1 = 10<br/>property2 = "value"</p>', 355 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')), 356 357 this.addEntry(dt + 'instance specification', function() 358 { 359 var bg = new mxCell( 360 '<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' + 361 ': Type1<hr/></p>', 362 new mxGeometry(0, 0, 200, 180), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 363 bg.vertex = true; 364 var cardCell2 = new mxCell( 365 '<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' + 366 'instance1 / property1: Type2<hr/></p>', 367 new mxGeometry(10, 30, 180, 140), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;'); 368 cardCell2.vertex = true; 369 bg.insert(cardCell2); 370 var cardCell3 = new mxCell( 371 '<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' + 372 'instance2 / property2:<br/>Type3<hr/></p>' + 373 '<p style="margin:0px;margin-top:4px;margin-left:4px;text-align:left;">property1 = 10<br/>property2 = "value"</p>', 374 new mxGeometry(20, 60, 160, 100), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;'); 375 cardCell3.vertex = true; 376 bg.insert(cardCell3); 377 378 return sb.createVertexTemplateFromCells([bg], 200, 180, 'Instance Specification'); 379 }), 380 381 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 160, 382 '<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' + 383 ': Type1</p><hr/>', 384 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')), 385 386 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 387 160, 0, '<<stereotype>>\ndependency1', 'Dependency', null, null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')), 388 this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association', 389 '3VRRa4MwEP41eRlMoq6UPda269Ng0F+Q6lXDYk7OtLP99Yuaap11jMJg7EHIfXffJfm+eCxc5tWGRJG9YgKKhWsWLgnRtKu8WoJSLOAyYeGKBQG3HwteJrJ+k+WFINDmJ4SgJRyFOkCLiLLEWAojUbtupTkplzwCGRkLtVAy1RbaoTGYszDKTG7PvvLtEnSyIMIPG2IBukW28ly38IM6TFLYup5IJsMUtVDrHo3afeu6yWs1kLvTBjAHQydbQqDs0Y9DnijbMO3qOuobStuxLynxQDE49Fq3S2HldJvxYW8jKAUzItrF1fl6qLHhtiXhyBLueWMrCEp5Frsm5EMHhHNHwd6qFX01zWBhUSV2oCIRv6eEB50sUSHZpEZdO7BHbS6euZvGqDXExm3ZvSxet4dq0qjgtlGO8OgYP/ZtIOw3Kj6NVGTzCCkBgoTNbcx9z3u4R1WSafbXZeXe8y/pOhvpWpD9zcmc7nqiU2J2g+Wf6WnDfri3w+F69n8C'), 390 this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association', 391 '3ZVRb4IwEMc/TV+WzFSYM3sUdD4tWeInqHBis9IjR3Xop1+BDmTIYoxLzB5Iete74/r7H5T5YVosSWTbN4xBMX/B/JAQTb1KixCUYh6XMfPnzPO4fZj3OrA7rnZ5Jgi0uSTBqxP2Qu2g9og8x0gKI1G7ark5KLe5BzIyEmqmZKKta43GYMr8YGtS2/t8bJeg4xkRflpTo4bSEyewckWQzBYT1EItWm9Qv6iMGzxH5XKHWAKmYOhgQwiU7XXfzRN5bSZNXJP6jtJWbENy3FEEznsK6juwcKAmvFvbCErA9BLt4qS/1lVxP6+B39OgD54gl0exrkze5S2cFgo2FlXwUyKDmfUqsQYViOgjIdzpOESF1Aq0QW1W8lgWH7tjRqg1RMa9spkjXpaHYlAl77xKLuHRZVwsWofqLwifeggzwsy2evBuiLKZ9n9Oc9KjyaYBUgwEMZtam/PR6OEasCST7b0PKR+9/BHX58EpveqDH4J5Z2N6M57WbC/G+j97em9+AQ=='), 392 this.addDataEntry(dt + 'part association', 250, 0, 'Part Association', 393 '3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdInyibuUzTAaYpUokAj33JVD2v3XM+4KkkDeT2WgAVYOrgSAu2OvbvsE1UbZl1d1/qKyjGeSyrcUgoe7Wt+Ktx7zUf8ktsdJgM7aHSL3v7OUGPh93bGAzt5EAxtJKjUUaybkF+6J7yzGjZOreSr4RZLh2qxBp2I9D0j3Bo5RY3kkgZN7d4GTWeWP2mKxkBq/cjur+Q1PeyvGhV9b5RveOTBc9tzs3MX0v6g49NARzZOkCQQSDZ2MQ+D4OEeXUll+V8X9vd0HQ10LcldEmQPd/2k18TsrqV/pqcLz09Dez30X45P'), 394 this.addDataEntry(dt + 'part association', 250, 0, 'Part Association', 395 '3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19ckJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcdsv5zluSAw9hJCUBE2Qq+hQkRRYKyEVWh8tcLutJ/cAFkVCz3SKjEOWqK1mLEwSm3mep/03RCMHBHhpwsNGjggMoGFL4JkU0zQCD1t0KiwguxM6WONMl6o/YHRD47AsaxUIkMj31PleoiqJg9rdGpQQl6AOWAGlnYuhUC7fW7OeaKowqTOq6lvqFzFJqXANcXg0VORj4lbL/KAn9d2m0nAtohucNJfA5We/exf2PKvbRpBofZiWYb83CvhfdSwclJF3+21mDtUiyXoSMQfCeHayDFqpMbcFZraKb/NGI2B2Pol6zPID+Vh2+lS8LNLnvDIey8V52LbznT9RcSnlog5Ye6a3QU3FLO+K/9ez0FLTzaMkCQQSDZ0Mee93sM10pJK0ns/qH+n63PnOb3q0neJeWcH9WZ6urB5WKt/7em7+wU='), 396 this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association', 397 '3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdI1JT/FfYoGOE2RShRo5Fuu6mHtnusZVyVpIK/HErAASwdXQqDdsXeXfaJqw6yr61pfUTnGc0mFW0rBo33NT4V7r/mIX3K7w2RgB41u0dvfGWos/N7OeGAnD4KhjQSVOop1E/JL94R3VsPGqZV8Ndxi6VAt1qATkb5nhFsjp6iRXNKgqd3boOnM8idN0RhIrR/Z/ZW8pof9VaOi743yDY88eG57bnbuQtofdHwa6MjGCZIEAsnGLuZhEDzcoyupLP/rwv6erqOBriW5S4Ls4a6f9JqY3bX0z/R04flpaK+H/svxCQ=='), 398 this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association', 399 '3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19chJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcds/zDLc0Fg7CWEoCJshF5DhYiiwFgJq9D4aoXdaT+5AbIqFnqkVWIctERrMWNhlNrM9T7puyEYOSLCTxcaNFAiMoGFL4JkU0zQCD1t0KiwguxM6bIGP8YLtS8Z/eAIHMtKJTI08j1VroeoarJco1ODA+QFmANmYGnnUgi02+fmnCeKKkzqvJr6hspVbFIKXFMMHj0V+Zi49SIP+Hltt5kEbIvoBif9NdDBs5/9C1v+tU0jKNReLA8hP/dKeB81rJxU0Xd7LeYO1WIJOhLxR0K4NnKMGqkxd4WmdspvM0ZjILZ+yfoM8rI8bDtdCn52yRMeee+l4lxs25muv4j41BIxJ8xds7vghmLWd+Xf6zlo6cmGEZIEAsmGLua813u4RlpSSXrvB/XvdH3uPKdXXfouMe/soN5MTxc2D2v1rz19d78A'), 400 this.addDataEntry(dt + 'multibranch part association', 250, 50, 'Multibranch Part Association', 401 '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=='), 402 this.addDataEntry(dt + 'multibranch shared association', 250, 50, 'Multibranch Shared Association', 403 '7VbbToQwEP0aXnwwbOuqr7LqPpmY6A90YRYaS4eU7vXrHWjZFVkiZl0viSQknZnOYTiHExrwSb6eGlFkD5iACvhdwCcG0bpVvp6AUgELZRLw24CxkO6A3fdUR3U1LIQBbYc0MNewFGoBLiPKEmMprETt0Uq7Ub64BGNlLNSNkqmm1AytxTzgUWZzmv12REt6gCxKaojmUqkJKjR1Mw/ri/L+mYQF696565QfegqYgzUb2tI0MO5aNi720UomNnOZC5fJQKaZbaVE6cJ0h7oniBaeo8N88Q5fhcGC3mTTJQuSFJ58CGqGq7t9ok0Y1WidoZFb1FZQIRKeYePGj3qZB53cGFMDaNQVtMGFTqAauCJbiRmoSMQvaZ1v9PB73dDVpC0hSlyYGFqfyCe0cQ0GFH1FyzbwIe490CNKwt+hsHHYUnjcBrDCpGB9zzv9diMNkvSiI2l4fn7WUdNAKbdiVofhAYHeCPpeK4vFh0LMSfgnua3QR0Nli1FriK0fauf1j5zFv1S9oc4Z9zqHHe2chvB/3xzwTXgq41z+QuMc44vxj/jiqtcX/BS+UDAfaotEihx18pxJ3XEHbbuX1Ts1USMB+4vWOfUv5rqjcfe00GcTL9ivccnVd7iEwv0Z2BH+9oj8Cg=='), 404 405 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;', 406 160, 0, '', 'Generalization', null, this.getTagsForStencil(gn, '', dt + 'generalization').join(' ')), 407 this.addDataEntry(dt + 'multibranch generalization', 140, 50, 'Multibranch Generalization', 408 '7VXLbsIwEPwa350Y2l4hPE6VKvEFBm8TC8eLnOX59XViF3AFag70UIlIkbyzu5P1TCwzUdSHuZOb6h0VGCamTBQOkcKqPhRgDMu5VkxMWJ5z/7J8diebdVm+kQ4s9WnIQ8NOmi0EJAANHU0EduBIr6QZGV1aDy2RCGsmxhXVft5J5peeVG8a3zD+1MYUaNB1zYJ3j8cbcriGW5k4gf8KHO7uooPiFuaANZA7+pLY8PIWOo5xUyKEe62oCtAgIBXosqIEkk0IyzPrRS6/iIrdVk/8rh6oEhYxBLPE/fQCJApatdCntirLQzhyDvet3gZX6wDNdDvKhHeKL7tshU6f0JL0ibHDrVWgYkmYpR0gkbXBrVtBYn9/pSOHAyNJ71LiW0pGog/Unv/M8srTDpKuBIpFP+Q/z9DLkcEDHYkKf///Hrp7FK7ssmjhH1mRDXhydoZ/Zs3waU1Pax5thQ8vN0oov75wvgA='), 409 this.addDataEntry(dt + 'generalization set', 140, 50, 'Generalization Set', 410 '7VXJbsIwEP0a37NA6ZWE5VQJiS9w8JBMcTJoYtavrxO7QApIOdBDpUaKNO/Nouc3jiLitDzOWW6LD1KgRTwVccpExkXlMQWtRRSgEvFERFFgXxHNnmTDNhtsJUNl+jRErmEv9Q4cI0aJwvqT0A4YTVy6Nift07Ydt7UFSWFKK3cS2nCNWqekiduaOGgfy9eGaQOPMlpmoBdUo0GqbI4xL6zgRGrMG6xh3UCvDtjA8ekJW8ofbw5UguGTLfENb++u4+QPHDt4QGUKRw0cU4DTcEPJ2sH8MvVqpQ28m4+dje+dvfNS5bD0EHRGh+mVuLUXKrXEc1MVRg6OmelgcaZptXHUDBspk8bcdpaNC2I8U2WkTSRMu0qB8iVOSyOgY2tNO15B52r0d9rPYNDS4L47+JGTftCivWqXKaOg22Ek52B80Q/7Lxp6bWTwwo14h5ubiavW3+9w7G9wRsZQ2V1XRRX8oVWEg6Dz7Qx/bTXD/9X0XM2rV2Hh9W/jym9/Rl8='), 411 this.addDataEntry(dt + 'generalization set', 150, 80, 'Generalization Set', 412 '5ZXBboMwDIafJncITPQ6YO1pUqU+QVo8iGYSFFIGe/oFErUwilYxqZceEPlt/5blT1FIkJTtTrGqeJcZIAneSJAoKbU9lW0CiIR6PCNBSij1zEfodiHrD1mvYgqEvsdAraFheAYbsYFad+gCkOVwcFJIYX5xoUszaeqbI4jsVSn5ZeQR5enThrYc+wLPqgP/7s0+NdK273suTjyE3Lg7kCVo1ZkSBcg0b6Y+VluZX+ou1r3kpiP1Wmfwpg7NVA7aFY03tODrrNz8alPLszrBrI05jIa/hob130YRPA2KcCWK8FEowqdBEa1EET0KxcscRRTLBhSyquIiJ1G6no1LZqwuIHNpZEfAvay55lKYmOJ5YRDEDHnea4QP/S9i7cSwll93+yotLH7GbzPld+eN/JufkdfHy5aP37Yf'), 413 this.addDataEntry(dt + 'block namespace containment', 140, 70, 'Block Namespace Containment', 414 '7ZXPjoIwEMafhjtQ192roOtlTUx8gmpHaCyMKfUPPv0OtKJ1McvBwx6WxKTztfMxfD8MAUuL81zzfb5AASpgs4ClGtHYVXFOQakgDqUI2DSI45B+Qfz5ZDdqd8M911CaIQ2xbThydQCrWKEytXLCEbSRG64mSmYlSWs0BouAJbkpaN5pREsylfuKGpKtVCpFhbptZmF7kV4ZjTvo23ET0F3g/PQpWsk9whywAKNrOuIaxh+2o7Ylc+VJCpNbaWSVHGSWG0/ilS2zzvUWFy1cYv3psd/TA5HBypWg1nia3QQvwVKs5KU5FcW2nGiNJ6qrulp8Lflml2KTRtK6kJ6jlheSOFkkGg+lgGasJlLuUCnYNh2PBAspBN2/HbWZz0u9woPegPd2DAfhPDQobuTRN+4L2hktUZJ/5/IeejijsW9guM7AuJ4HWN1Ig/iNXsjPUblm3RN798e5g1tiCT/w/V0y0chHcyX1ejRv/2gGonk1Cipv3x97/P7z9A0='), 415 this.addDataEntry(dt + 'participant property', 400, 140, 'Participant Property', 416 '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='), 417 418 this.addEntry(dt + 'participant property', function() 419 { 420 var cardCell = new mxCell('Block2', new mxGeometry(0, 0, 50, 20), 'shape=rect;html=1;strokeWidth=1;fontStyle=1;whiteSpace=wrap;align=center;'); 421 cardCell.vertex = true; 422 var cardCell2 = new mxCell('Block1', new mxGeometry(350, 0, 50, 20), 'shape=rect;html=1;strokeWidth=1;fontStyle=1;whiteSpace=wrap;align=center;'); 423 cardCell2.vertex = true; 424 var bg = new mxCell( 425 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 426 '<b>Association1</b></p><hr/>' + 427 '<p style="margin:0px;text-align:center;"><i>structure</i></p>', 428 new mxGeometry(20, 60, 360, 150), 'shape=rect;html=1;strokeWidth=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;'); 429 bg.vertex = true; 430 var cardCell4 = new mxCell( 431 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 432 '<<participant>><br/>' + 433 '{end = property 2}<br/><br/>' + 434 '<b>p2 : Block 2</b></p>', 435 new mxGeometry(20, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;'); 436 cardCell4.vertex = true; 437 bg.insert(cardCell4); 438 var cardCell5 = new mxCell( 439 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 440 '<<participant>><br/>' + 441 '{end = property 1}<br/><br/>' + 442 '<b>p1 : Block 1</b></p>', 443 new mxGeometry(190, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;'); 444 cardCell5.vertex = true; 445 bg.insert(cardCell5); 446 var edge1 = new mxCell('Association1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;'); 447 edge1.geometry.relative = true; 448 edge1.edge = true; 449 cardCell.insertEdge(edge1, true); 450 cardCell2.insertEdge(edge1, false); 451 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;dashed=1;'); 452 edge2.geometry.setTerminalPoint(new mxPoint(200, 10), false); 453 edge2.geometry.relative = true; 454 edge2.edge = true; 455 bg.insertEdge(edge2, true); 456 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'); 457 label1.geometry.relative = true; 458 label1.setConnectable(false); 459 label1.vertex = true; 460 edge1.insert(label1); 461 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'); 462 label2.geometry.relative = true; 463 label2.setConnectable(false); 464 label2.vertex = true; 465 edge1.insert(label2); 466 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'); 467 label3.geometry.relative = true; 468 label3.setConnectable(false); 469 label3.vertex = true; 470 edge1.insert(label3); 471 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'); 472 label4.geometry.relative = true; 473 label4.setConnectable(false); 474 label4.vertex = true; 475 edge1.insert(label4); 476 477 return sb.createVertexTemplateFromCells([cardCell, cardCell2, bg, edge1, edge2], 400, 260, 'Participant Property'); 478 }), 479 480 this.addDataEntry(dt + 'participant property', 400, 80, 'Participant Property', 481 '5ZZfT+MwDMA/TV+QDvXPxu4e18Hxckjo+ARZY9qINK7SjG18etwm3ShpUREDIfEwLXbi1P7FjhMkq3J3rVlV3CAHGSRXQbLSiMaOyt0KpAziUPAguQziOKRfEP8dmY3a2bBiGpSZYhBbg0cmN2A1qcTswalrs5dOXResaoYaMto4LUxJvl5GNLxHZe7cwkbeFsLAXcWyRrGlyEjHpMgViRm5BZoU7rOgDexGXW9Vzu9rwBKM3tOSreCmsCvmNrqwAJEXzspFHLLayvnB8siBBg7FMJZkGEv0nbE4g6Rj8gWYZh6mZV1jJpgRqN4D6wRxRzMX0N7KFz6GKP4kDnOPgxc78By6dFCo6C8FxZda4/ao8Yg0Vj0eNW50Br3aNUznYHp5O4GaBkmn9Njf/SMMLjwGlcaKTnQ/cJlQGQiV/4P7xsmkH3lXFLKdTZukEBmTS6deozFY0oRka5C3WIsm2Zqssmdq9SnLHnKNG8VXKFEfEbdlKZ7aqnQnn6FSlJFs3bkXTkrH+Zvp+MtZnJzzwuM8UGgf4Guw+rlwf48m8Sjk/+4qGaHcgZucxu5Yvgfoz+L8x78wFylqDhp4sCA5DM/Pz06MfDizfwTvzul3dqgXcP1mxVldAJ/erman703O9BYF7XiASMnTewlErzq8bZjO6BXDgxdDWEk8vszt8pcP92c='), 482 483 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 80, 484 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 485 '<b>Association1</b></p><hr/>' + 486 '<p style="margin:0px;margin-left:8px;text-align:center;"><<participant>> {end = property 1} p1 : Blcok 1<br/>' + 487 '<<participant>> {end = property 2} p2 : Blcok 2</p>', 488 'Association', null, null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')), 489 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 80, 490 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 491 '<b>Association1</b></p><hr/>' + 492 '<p style="margin:0px;text-align:center;"><i>structure</i></p>', 493 'Association', null, null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')), 494 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;', 150, 80, 495 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 496 '<<participant>><br/>' + 497 '{end = property 1}<br/><br/>' + 498 '<b>p1 : Block 1</b></p>', 499 'Participant', null, null, this.getTagsForStencil(gn, '', dt + 'participant').join(' ')), 500 501 this.addEntry(dt + 'connector property', function() 502 { 503 var bg = new mxCell( 504 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 505 '<b>Block1</b><hr/></p>' + 506 '<p style="margin:0px;margin-top:-6px;margin-left:10px;text-align:left;">' + 507 '<<connector>> c1 : Association1<br/>' + 508 '<<connector>> c2 : Association2<hr/></p>' + 509 '<p style="margin:0px;margin-top:-6px;text-align:center;font-size:10px;">' + 510 '<i>structure</i></p>', 511 new mxGeometry(0, 0, 400, 250), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 512 bg.vertex = true; 513 var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(20, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 514 cardCell2.vertex = true; 515 bg.insert(cardCell2); 516 var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(300, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 517 cardCell3.vertex = true; 518 bg.insert(cardCell3); 519 var edge1 = new mxCell('c1: Association1', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;labelBackgroundColor=none;'); 520 edge1.geometry.relative = true; 521 edge1.edge = true; 522 cardCell2.insertEdge(edge1, true); 523 cardCell3.insertEdge(edge1, false); 524 bg.insert(edge1); 525 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'); 526 label1.geometry.relative = true; 527 label1.setConnectable(false); 528 label1.vertex = true; 529 edge1.insert(label1); 530 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'); 531 label2.geometry.relative = true; 532 label2.setConnectable(false); 533 label2.vertex = true; 534 edge1.insert(label2); 535 var cardCell4 = new mxCell('p3:\nType3', new mxGeometry(20, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 536 cardCell4.vertex = true; 537 bg.insert(cardCell4); 538 var cardCell5 = new mxCell('p4:\nType4', new mxGeometry(300, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 539 cardCell5.vertex = true; 540 bg.insert(cardCell5); 541 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;'); 542 edge2.geometry.relative = true; 543 edge2.edge = true; 544 cardCell4.insertEdge(edge2, true); 545 cardCell5.insertEdge(edge2, false); 546 bg.insert(edge2); 547 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'); 548 label3.geometry.relative = true; 549 label3.setConnectable(false); 550 label3.vertex = true; 551 edge2.insert(label3); 552 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'); 553 label4.geometry.relative = true; 554 label4.setConnectable(false); 555 label4.vertex = true; 556 edge2.insert(label4); 557 var cardCell6 = new mxCell('c2: Association2', new mxGeometry(140, 210, 120, 20), inh + 'shape=rect;html=1;align=center;'); 558 cardCell6.vertex = true; 559 bg.insert(cardCell6); 560 var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;dashed=1;'); 561 edge3.geometry.setTerminalPoint(new mxPoint(200, 180), false); 562 edge3.geometry.relative = true; 563 edge3.edge = true; 564 cardCell6.insertEdge(edge3, true); 565 bg.insert(edge3); 566 567 return sb.createVertexTemplateFromCells([bg], 400, 250, 'Connector Property'); 568 }), 569 570 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 120, 571 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 572 '<b>Block1</b><hr/>' + 573 '<<connector>> c1 : Association1<br/>' + 574 '<<connector>> c2 : Association2<hr/></p>', 575 'Connector Property', null, null, this.getTagsForStencil(gn, '', dt + 'connector property').join(' ')), 576 577 this.addEntry(dt + 'internal block diagram', function() 578 { 579 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;'); 580 bg.vertex = true; 581 var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 582 cardCell2.vertex = true; 583 bg.insert(cardCell2); 584 var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 585 cardCell3.vertex = true; 586 bg.insert(cardCell3); 587 var assoc = new mxCell('c1:a1', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;'); 588 assoc.geometry.relative = true; 589 assoc.edge = true; 590 var sourceLabel = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10'); 591 sourceLabel.geometry.relative = true; 592 sourceLabel.setConnectable(false); 593 sourceLabel.vertex = true; 594 assoc.insert(sourceLabel); 595 var targetLabel = new mxCell('p3', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10'); 596 targetLabel.geometry.relative = true; 597 targetLabel.setConnectable(false); 598 targetLabel.vertex = true; 599 assoc.insert(targetLabel); 600 cardCell2.insertEdge(assoc, true); 601 cardCell3.insertEdge(assoc, false); 602 bg.insert(assoc); 603 604 return sb.createVertexTemplateFromCells([bg], 300, 100, 'Internal Block Diagram'); 605 }), 606 607 this.addEntry(dt + 'property', function() 608 { 609 var bg = new mxCell('', new mxGeometry(0, 0, 300, 120), 'shape=rect;html=1;strokeWidth=2;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 610 bg.vertex = true; 611 var cardCell2 = new mxCell( 612 '<p style="margin:0px;margin-top:4px;margin-right:4px;text-align:right;font-size:10px;">' + 613 '0..*</p>' + 614 '<p style="margin:0px;text-align:center;">' + 615 '<b>p1 : Type1</b><hr/>' + 616 'x : Integer = 4</p>', 617 new mxGeometry(20, 20, 140, 80), inh + 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;'); 618 cardCell2.vertex = true; 619 bg.insert(cardCell2); 620 var cardCell3 = new mxCell( 621 'r1: Type2', 622 new mxGeometry(180, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;dashed=1;strokeWidth=2;whiteSpace=wrap;align=center;'); 623 cardCell3.vertex = true; 624 bg.insert(cardCell3); 625 626 return sb.createVertexTemplateFromCells([bg], 300, 120, 'Property'); 627 }), 628 629 this.createVertexTemplateEntry(s + 'package;html=1;overflow=fill;whiteSpace=wrap;', 300, 135, 630 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>idb</b> Block1</p>', 631 'Package', null, null, this.getTagsForStencil(gn, '', dt + 'package').join(' ')), 632 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 100, 80, 633 '<p style="margin:0px;margin-top:4px;margin-right:4px;text-align:right;font-size:10px;">' + 634 '0..*</p>' + 635 '<p style="margin:0px;text-align:center;">' + 636 '<b>p1 : Type1</b><hr/>' + 637 'x : Integer = 4</p>', 638 'Property', null, null, this.getTagsForStencil(gn, '', dt + 'property').join(' ')), 639 640 this.addEntry(dt + 'property', function() 641 { 642 var bg = new mxCell( 643 '<p style="margin:0px;margin-top:4px;margin-right:4px;text-align:right;font-size:10px;">' + 644 '0..*</p>' + 645 '<p style="margin:0px;text-align:center;">' + 646 'p1 : Type1<hr/></p>', 647 new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 648 bg.vertex = true; 649 var cardCell2 = new mxCell( 650 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 651 '<b>p3 : Type3</b></p><hr/>' + 652 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 653 '<i>initialValues</i></p>' + 654 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 655 'x1 = 5.0<br/>x2 = "today"</p>', 656 new mxGeometry(30, 50, 140, 100), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;'); 657 cardCell2.vertex = true; 658 bg.insert(cardCell2); 659 660 return sb.createVertexTemplateFromCells([bg], 250, 160, 'Property'); 661 }), 662 663 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 100, 100, 664 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 665 '<b>p3 : Type3</b></p><hr/>' + 666 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 667 '<i>initialValues</i></p>' + 668 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 669 'x1 = 5.0<br/>x2 = "today"</p>', 670 'Property', null, null, this.getTagsForStencil(gn, '', dt + 'property').join(' ')), 671 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 70, 672 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 673 '<b>p1 : [Type1]</b></p><hr/>' + 674 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 675 '<i>values</i></p>' + 676 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 677 '<<normal>> {mean = 2, stdDeviation = 0.1} x : Real</p>', 678 'Property Specific Type', null, null, this.getTagsForStencil(gn, '', dt + 'property specific type').join(' ')), 679 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 100, 70, 680 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 681 '<b>p2</b></p><hr/>' + 682 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 683 '<i>values</i></p>' + 684 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 685 'y : Integer = 5</p>', 686 'Property Specific Type', null, null, this.getTagsForStencil(gn, '', dt + 'property specific type').join(' ')), 687 688 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 689 160, 0, '<<stereotype1>>\ndependency1', 'Dependency', null, null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')), 690 this.addDataEntry(dt + 'property', 160, 0, 'Property', 691 'zVTBboMwDP2aXCatgjDtXmjX06RJPeycggtRQ4yM29F+/QJkpYx2qqYddohkv/g58XtRRJSUzYpUVbxiBkZESxElhMh9VDYJGCNkoDMRLYSUgVtCvtzYDbvdoFIElu8hyJ5wUGYPPdIDNR+NBw5ArFNl5kbn1kEbZMZSRHHBpbvvInQh2GxOhB8utWihRbIc1r4JEheYo1VmOaBxzYQ7eNcZF65GOqQ/umXenKaD/CgrwBKYjq6EwCjWhzFP1X2an+vO1DfUruNQUuOeUvDopVxfhY3v/ByMe7OiHHhCdMHF/QaoU/+6E9HEiXBiBUGtT2rTpcHYAeXdMbB1UsXfTWOsHGrUBkys0l1OuLdZggZpsGyLltf61DYP/ZgpWgsp+yPPrylo20Nz0yV53SVPePSMu00bqfqDhE8TCYPZ7OE3KpLOi/8u4x+p6NLhu+nf7eVv9Ak='), 692 this.addDataEntry(dt + 'binding connector', 160, 0, 'Binding Connector', 693 'zVSxboMwEP0aj5XAVNlDknaqVClDZwcuxorxpceRknx9DbgQmqTKkKEDku/53jN+72SRLMrmldS+eMMcrEhWIlkQIverslmAtUJGJhfJUkgZ+U/Ilxu7cbcb7RWB43sIsicclK2hR4ScqXIvktR6gXRawWet7ADpSUOoWrWKjzaoHYDYZMrOrdHOQxtkxtJ3Flz6yy7jVtXlcyL88qVDBy2Sa1gHESQuUKNTdjWiacWEO/gwORe+Rw5Ht8ybVnRQ8OEVsASmo28hsIrNYcpTVV/qoW+gvqPximNLhTVlENBzr38am6A8i6barEgDXxD94uz/RqiL7nqMyUWM8UUUBJU5qU1XRtMEVEjHwrZN8XdojN0EqA3YVGU7TVi7fIEWaYxsi47X5tSKx+GaGToHGYcjh1GMWnlobqYkr6cUCE+BcXdoE1f/sPD5MRaS0cV/9/BBFvpyfKj6oT1/x74B'), 694 this.addDataEntry(dt + 'bidirectional connector', 160, 0, 'Bidirectional Connector', 695 '3VXBboMwDP2aXCatCrD1XmjX06RJ/YIUXIgWYhRMR/v1C5BBGe1UTZ1U7QCKH89O/J5FWBDl9dqIInvFBBQLViyIDCJ1q7yOQCnmc5mwYMl8n9uH+S8XvnrtV14IA5quSfC7hL1QFXRIbGtwFizsW5QlxlKQRN3RSjooR9uDIRkLtVAy1RbaIhHmLAgzym0XS88uQScLY/DDhho1NEiSwsYVQUMZpqiFWg1o2G3U8C521EKunTVgDmQOlmJA2aPux3mi7MK05/WpbyhtxYFSYmVicOipZF/E2lWe83FtEiYFmiTaxcn5Bqh14LwbwcQNPpt5E+0NlPIotm3Ix5ILZ4eCnVUr/O4SYWFRJbagQhG/pwYrnUSo0Awe7VDTRh6b4p7rNEatISa3ZT9UvCkP9UWj/PNGuYRHl3G1byNhf1DxaaJicUsN+0n/5zI+nxvGh98IaWSa3fs0/pWK8+kw+rfU8M6m8UYy2nC4A7sf6ekV+Qk='), 696 this.addDataEntry(dt + 'unidirectional connector', 160, 0, 'Unidirectional Connector', 697 '3VXBboMwDP2aXCatCrD1XmjX06RJ/YIUXIgWYhRMR/v1C5BBGe1UTZ1U7QCKH89O/J5FWBDl9dqIInvFBBQLViyIDCJ1q7yOQCnmc5mwYMl8n9uH+S8XvnrtV14IA5quSfC7hL1QFXRIbGtwFizsW5QlxlKQRN3RSjooR9uDIRkLtVAy1RbaIhHmLAgzym0XS88uQScLY/DDhho1NEiSwsYVQUMZpqiFWg1o2G3U8C521EKunTVgDmQOlmJA2aPux3mi7MK05/WpbyhtxYFSYmVicOipZF/E2lWe83FtEiYFmiTaxcn5Bqh14LwbwcQNPpt5E+0NlPIotm3Ix5ILZ4eCnVUr/O4SYWFRJbagQhG/pwYrnUSo0Awe7VDTRh6b4p7rNEatISa3ZT9UvCkP9UWj/PNGuYRHl3G1byNhf1DxaaJicUsN+0n/5zI+nxvGh98IaWSa3fs0/pWK8+kw+rfU8M6m8UYy2nC4A7sf6ekV+Qk=') 698 ]; 699 700 this.addPalette('sysmlBlocks', 'SysML / Blocks', expand || false, mxUtils.bind(this, function(content) 701 { 702 for (var i = 0; i < fns.length; i++) 703 { 704 content.appendChild(fns[i](content)); 705 } 706 })); 707 }; 708 709 Sidebar.prototype.addSysMLPortsAndFlowsPalette = function(expand) 710 { 711 var gn = ''; 712 var dt = 'sysml port flow '; 713 var sb = this; 714 var s = 'html=1;shape=mxgraph.sysml.'; 715 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 716 717 var fns = [ 718 this.addEntry(dt + 'port', function() 719 { 720 var s = 'html=1;shape=mxgraph.sysml.'; 721 var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;points=[[0,0.5,0],[1,0.5,0]];'); 722 cardCell.vertex = true; 723 var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;'); 724 label1.geometry.relative = false; 725 label1.vertex = true; 726 cardCell.insert(label1); 727 var label2 = new mxCell('p2', new mxGeometry(140, 20, 20, 20), inh + 'shape=rect;points=[[1,0.5,0]];html=1;resizable=1;labelBackgroundColor=none;fontSize=10;part=1;'); 728 label2.geometry.relative = false; 729 label2.vertex = true; 730 cardCell.insert(label2); 731 732 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Port'); 733 }), 734 735 this.addEntry(dt + 'port conjugated', function() 736 { 737 var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 200, 60), s + 'port2;fontStyle=1;spacingRight=20;whiteSpace=wrap;align=center;'); 738 cardCell.vertex = true; 739 var label1 = new mxCell('p1 : ~T1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPositin=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;'); 740 label1.geometry.relative = false; 741 label1.vertex = true; 742 cardCell.insert(label1); 743 var label2 = new mxCell('p2 : ~T2', new mxGeometry(140, 20, 60, 20), inh + 'shape=rect;points=[[1,0.5,0]];html=1;resizable=1;labelBackgroundColor=none;fontSize=10;part=1;'); 744 label2.geometry.relative = false; 745 label2.vertex = true; 746 cardCell.insert(label2); 747 748 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Port (Conjugated Ports)'); 749 }), 750 751 this.addDataEntry(dt + 'port flow property', 160, 80, 'Ports with Flow Properties', 752 '7ZTLboMwEEW/xtuI4KbqtoE2m1aqlP6AAxOwanuQPWkgX18DJi9S9aFI3XSBZN87V5o5g8x4ouuFFVX5jDkoxh8YTywi9SddJ6AUiyOZM56yOI78x+LHT9xp50aVsGDoO4G4D7wLtYFeebXCOC2dk2h601GjglmS9i2mU8bnrhRVq+q6aLufuMZpNanQEvfuGg0tQ66t3paSYFmJrBW2PuA1oWRh/DXzvYL1QugFLEH96TydFIZZAGog2/iSrcypDBW3/cxRCbIoQ+wuaML192IfPdDxhwDoMiw+glVNR4gsOLkTq+4a+aGOkA0D276teTupzIS6D/oKiVB7Q4kVqBd0ktol8FTB+rj+6cwmrIbQXGRvhcWNyRNU6KGmBg0MC5G7bh8BRYbGQEah1/2v8tUC4ssLaELgCpxvxpzjf86nnGdX4Dwbc+a/4XyG7TLmvyM2BIZnIRDkPyfor4enufNOXu4P'), 753 754 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 160, 70, 755 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 756 '<b>Transmission</b></p><hr/>' + 757 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 758 '<i>ports</i></p>' + 759 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 760 'p1 : ITransCmd</p>', 761 'Port (Compartment Notation)', null, null, this.getTagsForStencil(gn, '', dt + 'port compartment notation').join(' ')), 762 this.addDataEntry(dt + 'nested port', 160, 60, 'Nested Port', 763 '7ZXLboMwEEW/xtsIcJp9gTabVoqU/oADE7DqB7KdBvL1tbHJk6iPdFVlgeS54yvPnLEwwhlv54o09assgSH8hHCmpDR+xdsMGENJREuEc5Qkkf1Q8nwlG/fZqCEKhPmOIfGGD8I24JU3RYTmVGsqhU9q07GQrA23JeYxwqmuSeNU3lau+onuNGcTAdpAuZDKnp6upTDLYHaWbU0NLBtSOGFrXVYjjFbChoUtGJQVQkGgDLRXm+ql0NEcJAejOrtlS0tThx0z33hUA63qYBs0on1c7a0HRHYRKI0TwxfEmngSX5BSoOmOrPowsm0dkRtaVr6w1PVKC8Ieg85pWTpfysgK2EJqatwscM5gfbz/5SxtZDOYUlK8V0puRJlJJi3WXEgBw0jorp9IgFFIIaAwodb9jflqBMn4CLpgmN5OejpGOrmTPiWN/+BOP4yRxnfSp6Sns9tJz0ZI/4bzGbZ/gTkYhjdp+JP8/H7b8PCC9rmTB/YT'), 764 765 this.addEntry(dt + 'proxy port', function() 766 { 767 var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;'); 768 cardCell.vertex = true; 769 var label1 = new mxCell('<<proxy>>\np1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;'); 770 label1.geometry.relative = false; 771 label1.vertex = true; 772 cardCell.insert(label1); 773 774 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Proxy Port'); 775 }), 776 777 this.addEntry(dt + 'full port', function() 778 { 779 var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;'); 780 cardCell.vertex = true; 781 var label1 = new mxCell('<<full>>\np1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;paart=1;'); 782 label1.geometry.relative = false; 783 label1.vertex = true; 784 cardCell.insert(label1); 785 786 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Full Port'); 787 }), 788 789 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 100, 790 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 791 '<b>Transmission</b></p><hr/>' + 792 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 793 '<i>flow properties</i></p>' + 794 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 795 'in gearSelect: Gear<br/>' + 796 'in engineTorque: Torque<br/>' + 797 'out wheelsTorque: Torque</p>', 798 'Flow Property', null, null, this.getTagsForStencil(gn, '', dt + 'flow property').join(' ')), 799 800 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 250, 150, 801 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 802 '<b>Transmission</b></p><hr/>' + 803 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 804 '<i>operations</i></p>' + 805 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 806 'prov Boolean selectGear(g : Gear)<br/>' + 807 'reqd Torque getTorque()</p><hr/>' + 808 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 809 '<i>properties</i></p>' + 810 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 811 'prov temperature : Integer<br/>' + 812 'reqd geometry : Spline</p>', 813 'Required and Provided Features', null, null, this.getTagsForStencil(gn, '', dt + 'required provided feature').join(' ')), 814 815 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80, 816 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 817 '<<interfaceBlock>>\n' + 818 '<b>ISpeedObserver</b></p><hr/>' + 819 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 820 'notifySpeedChange(): void</p>', 821 'Interface Block', null, null, this.getTagsForStencil(gn, '', dt + 'interface block').join(' ')), 822 this.addDataEntry(dt + 'item flow', 120, 180, 'Item Flow', 823 '1ZXBbtswDIafRscFjt0Gu8bJ2ks3DEgO21GxGVuYLHkUk9h9+lG2nMRNuhVYVmAHA+JPUhY/UrZIFlXziLIuP9sctEg+iWSB1lK/qpoFaC3iSOUiWYo4jvgR8cMr3mnnjWqJYOgtCXGfsJd6B70CphDJnDVeKAMinok4mUYiSftQR60OoSVVfODllH2ulLVXq6bwtUxc6yo9UQTVg7YHDthaQ6uQ6hO2LC8VsrUK1rrtdrA7Pnh6KDl3VcvMSwfekjWpVWHYzLg2wOOB9oAEzav1d1Io/hFsBYQth4SEgCc6qJzKXvoYpBJUUYZNZkGTrreL40YntrwIeK+jTi5Qn7ElNK7HvkZpXKWcU9b8I+JfxsSVeQ/gbfBeIX7Ubo387gL52uJPXr/kCnkBAytjeeqT9Az1wAH706Vg8jmihzwEQ6PoG5vR5D5Y30MuY8H2zOVN7ztdKP/uEUxnd5jB6H6SxAJoNEdvQI6gJan9ePe/4Xl/wbO+QIng1LPcdGZ0naOGrcfoeNqUKZ46a9ldAz9aKpN6HiLJ+jnUcgP6q3WK/J045g/BTy/cG0tkqyEvldmPAu3O5AurLZ561t0P9Qz9u7syMmsMZBROf/x4/mni7377ifkQMm7ejdl7d2MM9r9tyI36webpP935Rr/xXw=='), 824 this.addDataEntry(dt + 'item flow property', 140, 180, 'Item Flow (Item Property)', 825 '1ZXfb5swEMf/Gj8uIpBGew3J2pdumpQ+bI8OXMCqsZl9SaB//c7YkFDardLSSntA8n3vB/bnfMCSddXcGV6XX3UOkiVfWLI2WqNfVc0apGRxJHKWbFgcR/Sw+PYV77zzRjU3oPAtCbFPOHJ5AK+AKliyIo0WQgGLlyxO5hFLUh9qsZUhtMSKNryZk8+WvHZq1RTuLDPb2krOBEJ1K/WJAvZa4TakuoQ9yRthyNoG66HtKugDbTw9lZS7rXnmpBOVJI1LUSgyMzobmGFDRzAIzavn76Rw+DvQFaBpKSQkLDye6CRyLL30OUgliKIMRZZB49bbxVDozJYWAe/LqJMJ6gu2aJT12B8MV7YS1gqt3on4tzFxoT4QeLiPURuC42kDBu3aHVhMOoDa/HLrDrxfP0cOeQE9RqVpIJL0ogs9IuN3moLKV8Y4/n0wNAJ/kBnNboL1M+QSMdNeuJzpfOdZc+8ecbb6YDIYjS5yUwCOrtgbumFAchTHcfV/YXszYVtPUBqw4onvOjN6maOEvcNo6SIKVdx31qabEHfrRMblKkSidldU8h3I79oKdOMy5PfB98/cO42oqz4v5dljYfRB5WsttTn3rBsd8QT+3d0xMq0UZBh2P3xX/zYMiz8Ow6eQcfVuLD+6G2Ow/21DrtQPMs+/8M43+sP/Bg=='), 826 827 this.createVertexTemplateEntry(s + 'itemFlow;fontStyle=1;flowDir=n;flowType=in;whiteSpace=wrap;align=center;', 828 200, 80, 'eng:Engine', 'Item Flow North In', null, null, this.getTagsForStencil(gn, '', dt + 'item flow north in').join(' ')), 829 this.createVertexTemplateEntry(s + 'itemFlow;fontStyle=1;flowDir=e;flowType=out;whiteSpace=wrap;align=center;', 830 200, 80, 'eng:Engine', 'Item Flow East Out', null, null, this.getTagsForStencil(gn, '', dt + 'item flow east out').join(' ')), 831 832 this.addEntry(dt + 'item flow', function() 833 { 834 var cardCell = new mxCell('eng: engine', new mxGeometry(40, 0, 100, 60), s + 'itemFlow;fontStyle=1;strokeWidth=1;flowDir=e;flowType=none;spacingRight=20;whiteSpace=wrap;align=center;'); 835 cardCell.vertex = true; 836 var cardCell2 = new mxCell('trns: Translation', new mxGeometry(260, 0, 140, 60), s + 'itemFlow;strokeWidth=1;fontStyle=1;flowDir=w;flowType=none;spacingLeft=15;whiteSpace=wrap;align=center;'); 837 cardCell2.vertex = true; 838 var assoc1 = new mxCell('Torque', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=none;exitX=1;exitY=0.5;entryX=0;entryY=0.5;'); 839 assoc1.geometry.relative = true; 840 assoc1.edge = true; 841 var label1 = new mxCell('ep:EP', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=5;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=bottom;labelBackgroundColor=none;fontSize=10'); 842 label1.geometry.relative = true; 843 label1.geometry.x = -1; 844 label1.setConnectable(false); 845 label1.vertex = true; 846 assoc1.insert(label1); 847 var label2 = new mxCell('tp:TP', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=right;spacingRight=5;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=bottom;labelBackgroundColor=none;fontSize=10'); 848 label2.geometry.relative = true; 849 label2.geometry.x = 1; 850 label2.setConnectable(false); 851 label2.vertex = true; 852 assoc1.insert(label2); 853 cardCell.insertEdge(assoc1, true); 854 cardCell2.insertEdge(assoc1, false); 855 var bg = new mxCell( 856 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 857 '<b>c1: Association-1</b></p><hr/>' + 858 '<p style="margin:0px;margin-left:4px;text-align:left;font-size:0.9em;">' + 859 '<<participant>>{end = ep} epInLink : EP[1]<br/>' + 860 '<<participant>>{end = tp} etInLink : TP[1]<hr/></p>' + 861 '<p style="margin:0px;text-align:center;font-size:0.9em;">' + 862 'structure</p>', 863 new mxGeometry(0, 120, 470, 250), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 864 bg.vertex = true; 865 var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=elbowEdgeStyle;elbow=horizontal;dashed=1;'); 866 assoc2.geometry.relative = true; 867 assoc2.geometry.setTerminalPoint(new mxPoint(160, 30), true); 868 assoc2.edge = true; 869 bg.insertEdge(assoc2, false); 870 var cardCell4 = new mxCell('epInLink : EP', new mxGeometry(30, 100, 160, 120), inh + s + 'itemFlowRight;fontStyle=1;spacingRight=40;whiteSpace=wrap;align=center;'); 871 cardCell4.vertex = true; 872 bg.insert(cardCell4); 873 var label3 = new mxCell('ep.1', new mxGeometry(160, 30, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 874 label3.geometry.relative = false; 875 label3.setConnectable(false); 876 label3.vertex = true; 877 cardCell4.insert(label3); 878 var label4 = new mxCell('ep.2', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 879 label4.geometry.relative = false; 880 label4.setConnectable(false); 881 label4.vertex = true; 882 cardCell4.insert(label4); 883 var label5 = new mxCell('ep.3', new mxGeometry(160, 90, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 884 label5.geometry.relative = false; 885 label5.setConnectable(false); 886 label5.vertex = true; 887 cardCell4.insert(label5); 888 var cardCell5 = new mxCell('tpInLink : TP', new mxGeometry(280, 100, 160, 120), inh + s + 'itemFlowLeft;fontStyle=1;spacingLeft=40;whiteSpace=wrap;align=center;'); 889 cardCell5.vertex = true; 890 bg.insert(cardCell5); 891 var label6 = new mxCell('tp.1', new mxGeometry(0, 30, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 892 label6.geometry.relative = false; 893 label6.setConnectable(false); 894 label6.vertex = true; 895 cardCell5.insert(label6); 896 var label7 = new mxCell('tp.2', new mxGeometry(0, 60, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 897 label7.geometry.relative = false; 898 label7.setConnectable(false); 899 label7.vertex = true; 900 cardCell5.insert(label7); 901 var label8 = new mxCell('tp.3', new mxGeometry(0, 90, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10'); 902 label8.geometry.relative = false; 903 label8.setConnectable(false); 904 label8.vertex = true; 905 cardCell5.insert(label8); 906 var assoc3 = new mxCell('Vibration', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.25;entryX=0;entryY=0.25;labelBackgroundColor=none;'); 907 assoc3.geometry.relative = true; 908 assoc3.edge = true; 909 cardCell4.insertEdge(assoc3, true); 910 cardCell5.insertEdge(assoc3, false); 911 bg.insert(assoc3); 912 var assoc4 = new mxCell('Heat', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.5;entryX=0;entryY=0.5;labelBackgroundColor=none;'); 913 assoc4.geometry.relative = true; 914 assoc4.edge = true; 915 cardCell4.insertEdge(assoc4, true); 916 cardCell5.insertEdge(assoc4, false); 917 bg.insert(assoc4); 918 var assoc5 = new mxCell('Current', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.75;entryX=0;entryY=0.75;labelBackgroundColor=none;'); 919 assoc5.geometry.relative = true; 920 assoc5.edge = true; 921 cardCell4.insertEdge(assoc5, true); 922 cardCell5.insertEdge(assoc5, false); 923 bg.insert(assoc5); 924 925 return sb.createVertexTemplateFromCells([cardCell, cardCell2, assoc1, bg, assoc2], 470, 370, 'Item Flow'); 926 }), 927 928 this.addDataEntry(dt + 'item flow', 200, 120, 'Item Flow', 929 '7ZXfasIwFMafJrdSm22wS1unDBwI7gVie2yD+VOSuLY+/U6bVN1WcYNdetGQfOd84ZzfKYTQVDZLw6ryTecgCH0hNDVaO7+TTQpCkDjiOaFzEscRfiReXIlO+2hUMQPK/cYQe8MHEwfwiqte1YqrPaqEznB9X/sc61oRckonsdL5lNDElqzqVNkUXRMT21opJtyBXAhdr2CHZSQ7rdwm2DtTXWLCpmJZJ9ToQ40JXig8Zlg5GBRCZWAcNFe766XQ2hK0BGdaTKl57srQYeQJRCXwohxsAUvErBeKk/cMCzeB1zg7OsJuMv0By4DlR7btj4g0uYA39Cw8JotEuCo8tHnXWNK1zzMmZiFT8jzvbkoE24JYa8sd1xdXDPmrb2Gnq8GUsGxfGH1QeaqFRtJzpRUMU+LHfkgBT6aVgsyF6k9/062pxONTaQO3f2D/MMY+vrO/xf7pH9g/jrGnd/a32D//nT0ez29BH/vyVHwC'), 930 this.addDataEntry(dt + 'item flow', 200, 120, 'Item Flow', 931 '7ZVdb4IwFIZ/TW8N0m3JLgXULHGJmb+gwhk09oO0dYC/fgco6hxmH/HSC0j79rzNOc9LAqGxrJeGlcWrzkAQOic0Nlq7fiXrGIQgYcAzQhMShgE+JFxcOZ12p0HJDCj3G0PYGz6Y2EOvQPmiVlztUCV0hu/5uq+xrhG+pnASO02mhEa2YGWryjpvh5jYxkox4Q7kQujqjecF9hG9a+U23t+6qgIrNiVLW6FCI2pM8FzhNsXWwaDgWwPjoL46Xif52ZagJTjTYEnFM1f4EYMeQVBA301n81wCZnshP3pPtHDhgY3DoyPwJtNvtAxYfmDbbotMozN6w8zGc7KIhKvcY0va0aIWAE+ZmPlaybOsvSsSbAtirS13XJ9fMhhWF+dOl4MrYukuN3qvslgLjbATpRUMQfFDl5MnlGqlIHV+gOMX9VMw4Xgw9UUojUd5gzgexuII73H8I46nG8TxOBYHvcfxjzie/x4Hbk9/ke7sy0/mEw=='), 932 933 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 80, 934 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 935 '<<interface>><br/>' + 936 '<b>ISpeedObserver</b></p><hr/>' + 937 '<p style="margin:0px;margin-top:4px;margin-left:4px;text-align:left;">' + 938 'notifySpeedChange(): void</p>', 939 'Interface', null, null, this.getTagsForStencil(gn, '', dt + 'interface').join(' ')), 940 941 this.addEntry(dt + 'required interface', function() 942 { 943 var cardCell = new mxCell('Transmission', new mxGeometry(90, 0, 160, 60), s + 'port4;fontStyle=1;whiteSpace=wrap;align=center;'); 944 cardCell.vertex = true; 945 var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;html=1;resizable=0;align=left;verticalAlign=bottom;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;'); 946 label1.geometry.relative = false; 947 label1.setConnectable(false); 948 label1.vertex = true; 949 cardCell.insert(label1); 950 var assoc1 = new mxCell('ITransCmd', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=bottom;endArrow=sysMLReqInt;endSize=8;exitX=0;exitY=0.5;'); 951 assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), false); 952 assoc1.geometry.relative = true; 953 assoc1.geometry.x = 1; 954 assoc1.edge = true; 955 cardCell.insertEdge(assoc1, true); 956 var assoc2 = new mxCell('ITransData', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=sysMLProvInt;endSize=12;exitX=0;exitY=0.5;'); 957 assoc2.geometry.setTerminalPoint(new mxPoint(0, 60), false); 958 assoc2.geometry.relative = true; 959 assoc2.geometry.x = 1; 960 assoc2.edge = true; 961 cardCell.insertEdge(assoc2, true); 962 963 return sb.createVertexTemplateFromCells([cardCell, assoc1, assoc2], 250, 60, 'Required Interface'); 964 }), 965 966 this.addEntry(dt + 'provided interface', function() 967 { 968 var cardCell = new mxCell('Transmission', new mxGeometry(90, 0, 160, 60), s + 'port4;fontStyle=1;whiteSpace=wrap;align=center;'); 969 cardCell.vertex = true; 970 var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;html=1;resizable=0;labelBackgroundColor=none;fontSize=10;'); 971 label1.geometry.relative = false; 972 label1.setConnectable(false); 973 label1.vertex = true; 974 cardCell.insert(label1); 975 var assoc1 = new mxCell('ITransCmd', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=bottom;endArrow=sysMLReqInt;endSize=8;exitX=0;exitY=0.5;'); 976 assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), false); 977 assoc1.geometry.relative = true; 978 assoc1.geometry.x = 1; 979 assoc1.edge = true; 980 cardCell.insertEdge(assoc1, true); 981 var assoc2 = new mxCell('ITransData', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=sysMLProvInt;endSize=12;exitX=0;exitY=0.5;'); 982 assoc2.geometry.setTerminalPoint(new mxPoint(0, 60), false); 983 assoc2.geometry.relative = true; 984 assoc2.geometry.x = 1; 985 assoc2.edge = true; 986 cardCell.insertEdge(assoc2, true); 987 988 return sb.createVertexTemplateFromCells([cardCell, assoc1, assoc2], 250, 60, 'Provided Interface'); 989 }) 990 ]; 991 992 this.addPalette('sysmlPorts and Flows', 'SysML / Ports and Flows', expand || false, mxUtils.bind(this, function(content) 993 { 994 for (var i = 0; i < fns.length; i++) 995 { 996 content.appendChild(fns[i](content)); 997 } 998 })); 999 }; 1000 1001 Sidebar.prototype.addSysMLConstraintBlocksPalette = function(expand) 1002 { 1003 var s = 'html=1;shape=mxgraph.sysml.'; 1004 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 1005 var gn = ''; 1006 var dt = 'sysml constraint block '; 1007 var sb = this; 1008 1009 var fns = [ 1010 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 180, 1011 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1012 '<<constraint>><br/>' + 1013 '<b>ConstraintBlock1</b></p><hr/>' + 1014 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 1015 '<i>constraints</i></p>' + 1016 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 1017 '{{L1} x > y }<br/>nested: ConstraintBlock2</p><hr/>' + 1018 '<p style="font-size:10px;margin:0px;margin-top:4px;text-align:center;">' + 1019 '<i>parameters</i></p>' + 1020 '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;">' + 1021 'x: Real<br/>y: Real</p>', 1022 'Constraint Block', null, null, this.getTagsForStencil(gn, '', dt + '').join(' ')), 1023 1024 this.addEntry(dt + 'parametric diagram', function() 1025 { 1026 var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>par</b> Block1</p>', new mxGeometry(0, 0, 300, 170), s + 'package;labelX=120;align=left;spacingLeft=10;overflow=fill;whiteSpace=wrap;strokeWidth=1;recursiveResize=0;'); 1027 bg.vertex = true; 1028 var cardCell2 = new mxCell('C1: Constraint', new mxGeometry(130, 50, 150, 100), inh + s + 'paramDgm;fontStyle=1;whiteSpace=wrap;align=center;'); 1029 cardCell2.vertex = true; 1030 bg.insert(cardCell2); 1031 var label1 = new mxCell('x:', new mxGeometry(0, 25, 0, 0), 'html=1;resizable=0;align=left;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingLeft=22;fontStyle=1;'); 1032 label1.geometry.relative = false; 1033 label1.setConnectable(false); 1034 label1.vertex = true; 1035 cardCell2.insert(label1); 1036 var label2 = new mxCell('y:', new mxGeometry(0, 75, 0, 0), 'html=1;resizable=0;align=left;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingLeft=22;fontStyle=1;'); 1037 label2.geometry.relative = false; 1038 label2.setConnectable(false); 1039 label2.vertex = true; 1040 cardCell2.insert(label2); 1041 var cardCell3 = new mxCell('length: Real', new mxGeometry(30, 65, 20, 20), inh + 'shape=rect;html=1;fontSize=10;verticalLabelPosition=top;verticalAlign=bottom;'); 1042 cardCell3.vertex = true; 1043 bg.insert(cardCell3); 1044 var cardCell4 = new mxCell('width: Real', new mxGeometry(30, 115, 20, 20), inh + 'shape=rect;html=1;fontSize=10;verticalLabelPosition=top;verticalAlign=bottom;'); 1045 cardCell4.vertex = true; 1046 bg.insert(cardCell4); 1047 var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;exitY=0.25;exitX=0;entryY=0.5;entryX=1;'); 1048 assoc1.geometry.relative = true; 1049 assoc1.geometry.x=1; 1050 assoc1.edge = true; 1051 cardCell2.insertEdge(assoc1, true); 1052 cardCell3.insertEdge(assoc1, false); 1053 bg.insert(assoc1); 1054 var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;exitY=0.75;exitX=0;entryY=0.5;entryX=1;'); 1055 assoc2.geometry.relative = true; 1056 assoc2.geometry.x=1; 1057 assoc2.edge = true; 1058 cardCell2.insertEdge(assoc2, true); 1059 cardCell4.insertEdge(assoc2, false); 1060 bg.insert(assoc2); 1061 1062 return sb.createVertexTemplateFromCells([bg], 300, 170, 'Parametric Diagram'); 1063 }), 1064 1065 this.addDataEntry(dt + 'constraint property', 150, 100, 'Constraint Property', 1066 '7VTLbsIwEPwaX1FIinrOo+VCpap8gUkW26ofkW1Kwtd3nRgoDaituPYQyZ7dsXdmIpOsVN3S0pa/mAYkyZ5IVlpj/LhSXQlSkjQRDckqkqYJfiR9vlGdD9WkpRa0/w0hHQkfVO5gRMo5yfLSaOctFdrHE53vZWzgXuGYFbYVjtM2oKpjQcHM9U7JGd5OVcUUNmyN9utIDYQ9Fx7WLa0DsEcOYlQKpnFb48hgEYgjgfXQ3ZQ1QFHTEowCb3ts2YvG89ixGKUnHATjR1oSQepGgJ24Z5dwEY26blo2MQ3nzBF5Ayonfllw4kA3wzZBeV/8O0qXsMX5iiBZ1FTmEVaiaQKtkHQD8tU44YW50r/6Vr7kFbR+Z9bsdFMaadDgShsNx3DEYcgmDOYwF6HZaji8CvZO8hvF1UZrqH3UdPrHfoosvR5ZH6uL+4N5mATT/wdzbzCPfw8Gt+cnbKhdvHCf'), 1067 this.addDataEntry(dt + 'constraint property', 150, 120, 'Constraint Property', 1068 '3VTLboMwEPwaHxMRk0a9xtDmkkpR0x9wwAGrflDbSUi/vmswIPJQK/VS9YDwzu7Y3pkFFCeyXhlalS86ZwLFTyhOjNauXck6YUIgHPEcxSnCOIIH4ec72VmTjSpqmHI/IeCWcKTiwFoE4YUAKqkAtu4sWnjxcfBXIpKagisUL6Oq7sOJ0xVA8wZyrHYTKnjhqzK4BjOADjvAqghvKoFGxHWUaWWdoRx66PAxp4ua6p3x/Q3btmAHJDO4B/SS9HvOuhqg7S55gFWXWDk+AI+UwaWTYFsKxxBb0sqjsi68o1N7tlJMfTcb4yUi+sjMXugT1Ow5GBGTU8kd21Y087wTsPojoBS0vOtrAwVTV0xL5swZSk48d2WoeGi9j0rGi7KjhYGIqG2BoucOYwKLMCm3pya+mpq6FfmVUXElkGGWf9JdE0ZezkGwMCepYHuvrW+ZZ1QsAyx5nnsaEXTHxEZb7ri+Ub++SI95hGbvhdEHlSdaaJjGVGnlsxZk56pYN5ulXs4OevNupV6rmOy1ctvQzax3B0xVLHOhrf47+841fNu135gxvzLj/C/NePyDZkA4/Kub3OhX/gU=') 1069 ]; 1070 1071 this.addPalette('sysmlConstraint Blocks', 'SysML / Constraint Blocks', expand || false, mxUtils.bind(this, function(content) 1072 { 1073 for (var i = 0; i < fns.length; i++) 1074 { 1075 content.appendChild(fns[i](content)); 1076 } 1077 })); 1078 }; 1079 1080 Sidebar.prototype.addSysMLActivitiesPalette = function(expand) 1081 { 1082 var s = 'html=1;shape=mxgraph.sysml.'; 1083 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 1084 var gn = ''; 1085 var dt = 'sysml activity '; 1086 var sb = this; 1087 1088 var fns = [ 1089 this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;', 1090 160, 80, 'Action', 'Action', null, null, this.getTagsForStencil(gn, '', dt + 'action').join(' ')), 1091 this.createVertexTemplateEntry(s + 'callBehAct;whiteSpace=wrap;align=center;', 1092 160, 80, 'action name:\nbehavior name', 'Call Behavior Action', null, null, this.getTagsForStencil(gn, 'callBehAct', dt + 'call behavior action').join(' ')), 1093 this.createVertexTemplateEntry(s + 'accEvent;strokeWidth=2;whiteSpace=wrap;align=center;', 1094 100, 60, 'Event', 'Accept Event Action', null, null, this.getTagsForStencil(gn, 'accEvent', dt + 'accept event action').join(' ')), 1095 this.createVertexTemplateEntry(s + 'timeEvent;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;', 1096 35, 40, '', 'Time Event', null, null, this.getTagsForStencil(gn, 'timeEvent', dt + 'time event').join(' ')), 1097 this.createVertexTemplateEntry(s + 'sendSigAct;strokeWidth=2;whiteSpace=wrap;align=center;', 1098 100, 60, 'Signal', 'Send Signal Action', null, null, this.getTagsForStencil(gn, 'sendSigAct', dt + 'send signal action').join(' ')), 1099 this.createVertexTemplateEntry(s + 'actFinal;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;', 1100 40, 40, '', 'Activity Final', null, null, this.getTagsForStencil(gn, 'actFinal', dt + 'activity final').join(' ')), 1101 this.createVertexTemplateEntry(s + 'actParamNode;align=left;spacingLeft=15;verticalAlign=top;spacingTop=-3;', 1102 300, 135, 'act', 'Activity Parameter Node', null, null, this.getTagsForStencil(gn, 'act', dt + 'activity parameter node').join(' ')), 1103 this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;', 1104 160, 80, '<<controlOperator>>\nCallBehaviorAction', 'Control Operator', null, null, this.getTagsForStencil(gn, '', dt + 'control operator').join(' ')), 1105 this.createVertexTemplateEntry(s + 'package;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;labelX=135;html=1;overflow=fill;', 1106 250, 120, '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>act</b> [ControlOperator]</p>', 'Control Operator', 1107 null, null, this.getTagsForStencil(gn, 'package', dt + 'control operator').join(' ')), 1108 this.addDataEntry(dt + 'decision node', 200, 80, 'Decision Node', 1109 '7ZXJboMwEIafxneWpOo1kDSXVoqUJzBhBFaNB5kh29PXYIclTVS6ST30gDTzz+JhPpBZGBfHteZl/oIpSBauWBhrRLJWcYxBShZ4ImXhkgWBZx4WPN2J+m3UK7kGRVMKAluw57IGq1ihopN0QpXzsjF1jkVSVyyMcirMoEvfmHvQJHZcPvME5AYrQQKViSVIhMUgYSFFpgo7FWFpIu5kE4fj3elbyY2+BiyA9MmkuIJH+3Leyboz5x5ESvlYykFkOY01Xlk/6/r2izKG29XtvYUf7w3SDLbOBZngYdULwxW2MWPnqMUZFXETiHizrmbpduzxGof7BZUutG4bKFRNa421SqGZ0zOebMBEfPeatXqMEnWfWxHXdKnHEtRF24pzM7cfdKCa1xlhqrDWOxh9RhPIaZCcxH7c6hYJV7pBYTp2xH3vCp4ZNgNyWVf8umMnIZ29RzqPsprrlM2X36Z7ATiRpWPxGZam+q9SC7zxj/rwaxDntyCCrOCf4VcZ/jQz4/b3m00fXn9v'), 1110 1111 this.createVertexTemplateEntry(s + 'flowFinal;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;', 1112 40, 40, '', 'Flow Final', null, null, this.getTagsForStencil(gn, 'flowFinal', dt + 'flow final').join(' ')), 1113 this.addDataEntry(dt + 'fork node', 200, 80, 'Fork Node', 1114 '7ZZNb4JAEIZ/DXdYrPZq0XppExMPPa8yhU2XHbKMn7++Czt+QDQ1RpMeJCHZfeeD2feBhCBOis3EyjL/xBR0EI+DOLGI5FfFJgGtAxGqNIhHgRChuwPxfiEaNdGwlBYMXVMgfMFK6iV4xQsVbTULVS7Lemlh4Vq+5VS4KUeRW34rrRPUaJvEOGwup6/AklpI/SHnoKdYKVJoXM4cibA4SRhqlZnCj0pYugiP4+KwuXikRuLzTAALILt1KVzQ9ycO1yql3Es9r+Sgspx7vHKWrPw+O/Q5uuUWbNh58+K/zYM0gxlvQc9xPT4Kp1Y2MbfO0aodGpK6Fk06tLbRDZq6wuLSpFA/vva5Imlpn4ElmEaz+ANffPZ4nzVTu3qESBw8ridrOVzh0i6g9VpcYboFLUmt2q3OmcqlU1Suowi3TKaDwc2aAXFSh8ThqVfB6d0fzv61baNh47touhhcxb+DwF+MCJkCQ4keBuXlCeVWKPHDoPSfUG6F8vIwKIMnlFuhDO4FxW2Pf2I+/fRH7Rc='), 1115 1116 this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=#000000;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;perimeter=ellipsePerimeter;', 1117 40, 40, '', 'Initial Node', null, null, this.getTagsForStencil(gn, '', dt + 'initial node').join(' ')), 1118 this.addDataEntry(dt + 'join node', 200, 80, 'Join Node', 1119 '7ZZNb8IwDIZ/Ta6oNBvsugLjskmTdtg5tKbNltZVahjs189NMigfk5AAaQcqVXLs1076PjlUyFG5mlpVFy+YgRFyIuTIIpKPytUIjBFxpDMhxyKOI35F/PRHte+qUa0sVHRKQ+wblsoswGfEMPlAXTU1pJzo9XpiOPaihtYmiJpC1W1oIeVtkoJKPvm4z+FcGzNCg9YJZeQezi/Bkk6VeVYzMK/YaNJYsWaGRFiywLSFRKWfucVFlXVmzN3TmfFodN72EtacDV/ANVj96YJLBQumgCWQXbPkt0EOfMuXzqjwuTufKUDnRRjy4L2MVOPX+WbQ1mEOgsnHDZeHhu+bC1kOb2EJZoZfk22ia7WrcVyg1d9YkeJC4syDdrPWdaiyR2udCmtgz5KGLH7Ce/hO6TVv+rvdrB9v7GzPsGNmgwubws6lOcFfC0aRXu6OOmZfaH3lm0dbLnEUHF8HJnsASNkcKDTtMdic4iQsd5fH8ntbnenK0h6IDpoKKzhAdwjKTfl3qAKa/tXQ3N/QnIdGXg3N4IbmPDT3V0MzvKE5D83wUmh4uf2f8/Lu794P'), 1120 this.addDataEntry(dt + 'is control', 300, 60, 'Is Control', 1121 'zVTLboMwEPwaXyMCbaMeA0lzqlQpl/bowApbMjYymwD5+q7BQEgTKYdW6gFpd/bh8Qwyi5Ki2VleineTgWLRlkWJNQb7qGgSUIqFgcxYtGFhGNDHwrc71WVXDUpuQeMjA2E/cOLqCD2yTlEa3cMVtsrDAgsit1myKK4ELx1aNLnjvajaqlALWSVGozXUFddCIuxLnrq2mpoI40rmmtKUmIElwJ8MFqG5y76DPPUdmALQttTiB177ywW1zFD4AX/hQIDMhd/y4jFe9Xk+bpqkocCrc1up6IdSbBWn/sqrzQ/BIMth71NQB1NvJyC+ULOrUSyMlWdax52AFXKLa2u7iimBhIutOeoMHJvAjelsqGuj3U6npEy5WnuhDwbRFK61kfg5jFH85eLF83DMXp4dx2U4euKozxypzNGmMPtjHjDJguIoT/NVtyzwox9G0sYwaL3gV6YR1xzQN135Np76kJVPf2zl4MTcpps23jeN2LSjay6ZbKOl/860ZjDNu/bbJlI6vYp9++Wj+Q0='), 1122 this.addDataEntry(dt + 'is stream', 300, 60, 'Is Stream', 1123 'zVTLboMwEPwaXyMCbaMeA0lzqlQpl/bowAos2RjZmwD5+q7BQEgTKYdW6gFpd/bhYQbMokQ1O8Or4l1nIFm0ZVFitMY+Uk0CUrIwEBmLNiwMA3pY+HanuuyqQcUNlPjIQNgPnLg8Qo+sUxS67GGLrfRwgYrIbZYsim3BK4eqJne8F7a1Si6ETXSJRlNXXBcCYV/x1LXV1EQYlyIvKU2JGRgC/MlgEJq77DvIU9+BVoCmpRY/8Nq/XFCLDAs/4F84KEDkhd/y4jFu+zwfN03SUODVua1U9EMptootGuCKrTY/9IIsh71PQR50vZ2A+ELMrkZxoY04k4Dc6WeRG1wb01V0BaRbbPSxzMCRCdxYmQ31UpdupxNSpFyuvc4HjaiVa20Efg5jFH+5ePE8HLMXZ8dxGY6WOOozQ6w+mhRmH8wDHhmQHMVpvuqWA370QwvaGAat1/vKM+KaA/qmK9vGUx9y8ulvnRyMmLt008X7ntGf1I6muWRyjZb+O8+awTNv2m97SOl0J/btl1fmNw=='), 1124 this.addDataEntry(dt + 'is stream', 300, 60, 'Is Stream', 1125 'zVTJboMwEP0aXyMCbaUes58qVeKSHl0YYUtekJkEyNd3DCaQTcohhx6QZt4sfn7PgiUr3ewcL8WXzUGxZMOSlbMW+0g3K1CKxZHMWbJmcRzRx+Ltg+q8q0Yld2DwmYG4HzhydYAeWWQorenhClsVYIGayK3nLFlWgpce1U3hec+qttJqJqsUHXBNDbWQCGnJM99VUw9hXMnCUJoRMXAEhIPBITQPyXdQYL4DqwFdSy1h4LO/W1TLHEUYCPeNBMhChC0fAeNVnxfnTaMyFARx7guV3Ah1IxHkBaQhBfVr680ILCf6dTWKhXXyZA1y5UVF7nDhXFexJZBWS2cPJgdPIPJjJh/qxhq/ExqJ+6FK8Y+PZ+/DtlSePJV5fFbbM7zQurIHl8HFU3hCfgeKozxerronbhj9tpI2xlEbpLyyg7gWgKHpypHzqU+Z9PZ6k/wDlVln0cSABwYR0f00GQ2h2X9nRzPYEfx4tT2Ujj+yvn36n/sD'), 1126 1127 this.addEntry(dt + 'is stream', function() 1128 { 1129 var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;'); 1130 cardCell.vertex = true; 1131 var label1 = new mxCell('{stream}', new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;'); 1132 label1.geometry.relative = false; 1133 label1.setConnectable(false); 1134 label1.vertex = true; 1135 cardCell.insert(label1); 1136 1137 return sb.createVertexTemplateFromCells([cardCell], 250, 100, 'Is Stream'); 1138 }), 1139 this.addDataEntry(dt + 'local pre precondition post postcondition', 150, 180, 'Local Pre- and Postconditions', 1140 '5ZVNb4MwDIZ/Te6QtL33a71s0qQeds7Ag2ghQcEtbX/9HEhbEEWqtHWatAPCfp03kCeGMLEsDhsny/zFpqCZWDOxdNZiGxWHJWjNeKRSJlaM84guxp9GqnFTjUrpwOA9Bt4a9lLvoFW0TaR+dZBYkypU1jA+Y1zEERML0ip0UtHcja3Cow62KpelD41Fui1yLGgtq5jCSp18IZ76GJ39hDeVYk4SJ0VqlRmKNXygH1DKRJnsuclW3lLnCmFLsp+kJlAdU0KrBEdCWAU4hMMoiUYKGDZgC0B3pCF1eBs/ItCKclBZHmyToMmqzbOL9cqVgoD2NmYxwDxPWrYjGIk/9jE6uzMppGeoA5AP53Q2BBzHNp1N27RLMbpBcfoDFCcjzWor/DfdGgy8vwvxuUm72yAe1MzTwTYM+EKawTakoN9tvb4KXdpNjeLcOnWyBqXudbrfRTDp3LlmlLEGLvj8I3rwKrtzCfR+ayhdBtj7BO9A7EBLVPv+7N8BNvv7wMQQ2OTXgFF6PfGaWu9A/AI='), 1141 this.addDataEntry(dt + 'merge node', 200, 80, 'Merge Node', 1142 '7ZXPboMwDMafJncInbRrS7teNqlSnyAUC6KFGAXTf0+/hKQUunbrpE7aYQck53PsON8PKSxJq/3SiLp8wxwUSxYsSQ0i+ajap6AU45HMWTJnnEf2Y/zlRjbuslEtDGi6p4D7gq1QLXjFCw0dVBCaUtQuNCVWWduwZFZSZQedxzbcgiG5EepVZKBW2EiSqG2OsB5kp0oWuvIjZUiElU2Gk+0W2N+cvpPC6EvACsgc7JZQ8OwvF+1kTqWXJkEqQRYljTXR+HXRNzo7Y4NgznWjku+NgryAdViCynC3OAtDz7qcjUs08oiahE3MhLPIuezHHls3tM1gq3NwU0V2pZzvM7F5Lzo9RYXGpjRqdyjofGpMdxjWoL2ylkc3Ycx7Bm7wEYEGW7OB0R9yBxQDSpDcjltd8zyUrlDajj3MOAqYDmO4pw4kTAEUii7A9VPcxXLyeJYnXF+Ra+wN6DOPkxKY/YRv1/Gv8uQXPPmv8Xz65/mbPB/Nzy7PD5zfPnz/PgA='), 1143 this.addDataEntry(dt + 'no buffer', 300, 60, 'No Buffer', 1144 'zZTBboMwDIafJteKwlZpx9JuPU2a1Mt2TMGFSCFGwW2hTz8HApSulXrYoQck+4/t2P4AEa2KemNlmX9iClpE7yJaWUTqrKJegdYiDFQqorUIw4AfEX7cOZ23p0EpLRh6JCHsEo5SH6BTlgkpNJ1cUaO9nFPBza3nIoqrXJZOLerM9T2rmqrQM1Wt0JBFjopPuSLYljJxYScOYk1qlRl2E+4MLAv+ZrAE9d3uW8m3vgEsgGzDIT7hrRsuOKmUcp/gBw5yUFnuqyy8JqvOz4ZK42rY8Nu5vanoz6ZEuJCFG01TO86lZzA+7Pc8Z69mkxjvXe0Y0gy23gW9w9P7KMQXANoztnO06sxLl27nFUlLS2vbEyyBdx1bPJgU3ACBSzNpf27QuJpu+SqReunZ7JAICxdaK/ru09j+cfbstb9mq86ux3k4TOFan0Cs8GATmLxkD3C1oCWp47TULWo+9QsVVwyDxjO64sy9ZkA+6Ar1cOtD9F+ej34Pb0r2Jvn7nPmLbQbQzhlJc9Gn41z3nD3o/+bO7vjv7cIvf82/'), 1145 1146 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 1147 160, 80, 'object node name:\n type name\n[state, state ...]', 'Object Node', null, null, this.getTagsForStencil(gn, '', dt + 'object node').join(' ')), 1148 1149 this.addEntry(dt + 'object node', function() 1150 { 1151 var cardCell = new mxCell('Action', new mxGeometry(0, 0, 120, 60), s + 'isControl;whiteSpace=wrap;align=center;'); 1152 cardCell.vertex = true; 1153 var label1 = new mxCell('pin name: type name\n[state, state ...]', new mxGeometry(0, 30, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;spacingRight=5;'); 1154 label1.geometry.relative = false; 1155 label1.setConnectable(false); 1156 label1.vertex = true; 1157 cardCell.insert(label1); 1158 1159 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Object Node'); 1160 }), 1161 this.addDataEntry(dt + 'optional', 300, 60, 'Optional', 1162 'zZTBboMwDIafJteKwlZpx9J2PU2a1Mt2TMGCSAlGwS3Qp58DAUrXSj3ssAOS/cd2bH+AiDam2VtZ5h+YghbRTkQbi0i9ZZoNaC3CQKUi2oowDPgR4fuD02V3GpTSQkHPJIR9wlnqE/TKOiGFRS9X1Gov52S4ue1SRHGVy9Kppslc34uqrYxeqGqDBVnkqLjOFcGhlIkLqzmINalVVrCbcGdgWfA3gyVoHnbfSb71PaABsi2H+IS3frigVinlPsEPHOSgstxXWXlNVr2fjZWm1bDht3N/U9GvTYlwJY0bTVM3zrWHpdui1KOazWK8d7NjSDM4eBf0EevdJMRXALoztnO06sJLl27nFUlLa2u7EyyBdx1bPBUpuAECl1akw3mBhavplq8SqdeezRGJ0LjQRtHXkMb2t7MXr8M1B3VxPS7DcQrX+gxihSebwOwle4KrBS1Jneel7lHzqZ+ouGIYtJ7RDWfuNQPyQTeox1ufov/y/+gP8OZk75J/zJm/2HYE7ZyJNBf9d5ybgbMH/dfc2Z3+vX349a/5Bw=='), 1163 1164 this.addEntry(dt + 'optional', function() 1165 { 1166 var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;'); 1167 cardCell.vertex = true; 1168 var label1 = new mxCell('<<optional>>', new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;'); 1169 label1.geometry.relative = false; 1170 label1.setConnectable(false); 1171 label1.vertex = true; 1172 cardCell.insert(label1); 1173 1174 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Optional'); 1175 }), 1176 this.addDataEntry(dt + 'overwrite', 300, 60, 'Overwrite', 1177 'zZTBboMwDIafJteKwlZpx9J2PU2a1Mt2TMGCSCFGwS3Qp58DAUrXSj3ssAOS/cd2bH+AiDZFs7eyzD8wBS2inYg2FpF6q2g2oLUIA5WKaCvCMOBHhO8PTpfdaVBKC4aeSQj7hLPUJ+iVdUIKTS9X1Gov51Rwc9uliOIql6VTiyZzfS+qtir0QlUbNGSRo+I6VwSHUiYurOYg1qRWmWE34c7AsuBvBkvQPOy+k3zre8ACyLYc4hPe+uGCWqWU+wQ/cJCDynJfZeU1WfV+NlaaVsOG3879TUW/NiXClSzcaJq6ca495Llqy1sY5WwW5L2bJUOawcG7oI9Y7yYhviLQnbGdo1UX3rp0S69IWlpb251gCbzs2OLJpOAmCFyaSYdzg8bVdNtXidRrD+eIRFi40EbR15DG9rezF6/DNQd1cT0uw3EK1/qMYoUnm8DsLXsCrAUtSZ3npe5h86mfqLhiGLQe0g1o7jUD8kE3rMdbn8L/8g/xD/TmaO+ifwyav9l2JO2cCTUX/XegmwG0J/3X4Nmd/r59+PXP+Qc='), 1178 1179 this.createVertexTemplateEntry(s + 'paramSet;whiteSpace=wrap;align=center;', 1180 160, 100, 'Action', 'Parameter Set', null, null, this.getTagsForStencil(gn, 'paramSet', dt + 'parameter set').join(' ')), 1181 this.createVertexTemplateEntry(s + 'paramActSet;align=left;spacingLeft=15;verticalAlign=top;spacingTop=-3;fontStyle=1;', 1182 250, 120, 'act', 'Parameter Set', null, null, this.getTagsForStencil(gn, 'paramActSet', dt + 'parameter set').join(' ')), 1183 this.addDataEntry(dt + 'probability', 120, 160, 'Probability', 1184 'zVTLboMwEPwaXyNi2uQcoM2llSqlP2DMBqwaG9lOA/n6rsEhb7WRqqoHJO/sjj2eQSZxWrdLw5rqVRcgSfxE4tRo7YZV3aYgJaGRKEicEUoj/Ah9vtGd9t2oYQaU+wmBDoRPJjcwIAvuhFYDbF0nA1y5GsVlUxIntmKNR+u29LontrO1nDRG5ywXUrgOZ7aVcLBqGPeDWxxDjElRKiw5agODQDgbjIP2pv4eCuKXoGtwpsORrShcFSbCHaMKRFntabMAMjsA5cg92IGL4Mh1d+ILd8g88fqO7oqH+86M0HiKy6QfXjXAxVpwNngZkXl24agBK3Ys70tPPHJ475SEtfNbokO4l1wEONfO6RobkuUg37QV/TEX8y9n7VNewvhHafRGFamWGvPIlFYoJllr5VZi53X1N7IYo1BlEtgZfRyz41op4C7cYvzbvsuUXs+0PcuzG+qHX0jy4X8m6XRzf4xHpHszfPfUPw9wrO9IEMvDK9j3Th7JLw=='), 1185 this.addDataEntry(dt + 'probability', 120, 160, 'Probability', 1186 'zVRdb4MgFP01PK6x0I/nqVtfuqRJ9wdQqZIh1yDttL9+gFRb22Zrsix7MOGec0+4nCMgEpXNStGqeIOMCUReEIkUgO5WZRMxIRAOeIZIjDAOzIfw6x126tigoopJ/RMB7gQHKvasQ2iqO6zWrfBYoUszWTxFJKwLWlm0bHI79KRu61JMjGijIDE8FTyXhhdsp217RVMu87Wr4rlBDkxpnlLx7Bs1VEPfuy3iJ2KQHUi99SPYjf2gRs2au4d1kD/pikHJtGpNyyfPdOE7vCFBwXhenGQLD9K6A/JeO3hnFt6+21aSKyvRMrTzGWNowgXXdhTHLBAm08CaYZu3FUv5zniiOUjbsoyvElCs5keauNIKzxIZOT72NwGtoTSEoAkTG6i52+aqfz2iL3UhTT9yBXuZRSBAGV6CZKeY+NGlFAxBhl4d43mfXQpSslT7U/S/5neZ4tuZNqM8266e/UKSs/+ZZHdTHozxTPRoht1l/OsA+/qBBE05PJmOu3hRvwA='), 1187 1188 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 1189 120, 60, '<<continuous>>\nObject Node', 'Rate', null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')), 1190 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 1191 120, 60, '<<discrete>>\nObject Node', 'Rate', null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')), 1192 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 1193 140, 120, '{ rate = constant }\n{ rate = distribution }\n<<continuous>>\n<<discrete>>\nObject Node', 'Rate', 1194 null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')), 1195 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 1196 140, 80, 1197 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1198 'Object Node</p><hr/>' + 1199 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1200 '<<rate>><br/>' + 1201 'rate = constant<br/>' + 1202 'rate = distribution</p>', 1203 'Rate', null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')), 1204 1205 this.addEntry(dt + 'rate', function() 1206 { 1207 var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;'); 1208 cardCell.vertex = true; 1209 var label1 = new mxCell( 1210 '{ rate = constant }\n{ rate = distributuion}\n<<continuous>>\n<<discrete>>', 1211 new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;'); 1212 label1.geometry.relative = false; 1213 label1.setConnectable(false); 1214 label1.vertex = true; 1215 cardCell.insert(label1); 1216 1217 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Rate'); 1218 }), 1219 this.addDataEntry(dt + 'rate', 300, 60, 'Rate', 1220 '7ZVNj5swEIZ/ja8RgTarHgO73dNKK+XSHh0YgbXGg+xhA/vrOwZDlnxUqOqhhx5QPK/H43dGD0EkWd09W9lUL1iAFsmTSDKLSOOq7jLQWsSRKkTyKOI44kfE3+/sbofdqJEWDK05EI8H3qVuYVT2OSk0o+yo10GuqGZzj1uRpK6SjVfrrvS+N653td4ol6Ehi5yVnipFcGhk7tNOnMSa1Ko0HObsDCwL4WawBN1d94MUrD8D1kC255Rw4NvYXHRSBVXhQGg4qkCVVaiyC5p0Y1zOlc6j4UWYzu1JJVeTEg/cQ2QlAf8MUpSjcSTZPAsPLOxEnGwj3+x1bqEcWXVsqfXzXmbHO1n7oWm6ivgKUqbF1s16uciaojXF2ENuwZv6XakLFKAo4RBC0Ec8PZ2F9BMnwx6vK7Tqg11LjwaPx9Le2mEHG2AkUoutKcDP2fsFU0z7Bo2v6RlRudT7gBChNwedoh/TGV7/9OvNV9+aPIJOZf5WDpUz1GjP1QYHB/Xh7W/juUHf1QJDh63NYfGarCDTgpak3pelbnEXjr6iGnDpA2UXpLLXEigkXcA637qK3y//+f1Dfif8lmzeZPcOqfy/2M+o+mAtq3zfP0dqN5EaUP3b5HJ4/v6N6Z8/j78A'), 1221 1222 this.addEntry(dt + 'control flow', function() 1223 { 1224 var cardCell = new mxCell('', new mxGeometry(0, 0, 60, 40), 'shape=rect;html=1;rounded=1;whiteSpace=wrap;'); 1225 cardCell.vertex = true; 1226 var cardCell2 = new mxCell('', new mxGeometry(100, 0, 60, 40), 'shape=rect;html=1;rounded=1;whiteSpace=wrap;'); 1227 cardCell2.vertex = true; 1228 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;html=1;elbow=horizontal;endArrow=open;labelBackgroundColor=none;endSize=12;'); 1229 edge1.geometry.relative = true; 1230 edge1.edge = true; 1231 cardCell.insertEdge(edge1, true); 1232 cardCell2.insertEdge(edge1, false); 1233 1234 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 160, 60, 'Control Flow'); 1235 }), 1236 this.addDataEntry(dt + 'control flow', 160, 60, 'Control Flow', 1237 'zVNNb4MwDP01ufNR7d7Srqed+AUpsUi0ECMTCu2vnyEZDGnVusu0QyT72c/4PRKRF814JtnqN1RgRX4SeUGIPkTNWIC1IkuMEvlRZFnCR2SvD6rpXE1aSeD8M4QsEK7S9hCQAHT+ZiPQadlOIUHFIw/aN7zlMeWQsHcKVMwGbTyUraym5oEVMRanA3kYH244Q3G9M2ADnm7cMhjldeh4CSISDabWkbWLmOxCXi/MVS4HUfH36vP/q/6TkESZf+DG7mc3QNVQxhTsBYfTCnz1Zq5xrJHMHZ2XdgKd2hPNOLbgGLHyAvYgq/d6NrNAi8RVh26ap2SnF3+ZXJr79N00W6yd1tkY22FPFWyutpdUg9/87yfsJ7DSm+t2+i/M5XR9xHNt88Y/AA=='), 1238 this.addDataEntry(dt + 'object flow', 260, 60, 'Object Flow', 1239 '3ZVNb8IwDIZ/Te4lZdxHYZw49bBzaKwmIo0rN1Dg189tM1g10JDQkLZDJft1X8d5+hGRZtVhRao2a9TgRLoUaUaIYYiqQwbOCZlYLdKFkDLhS8i3G9VJX01qReDDPQY5GPbK7WBQBqEJRxeFxqi6CwkKbjk3oeIpFxMOCXdeg45ZEwi38G51MKxIVlpjA+S1Kjp7y3tkLa4HFOBwc+ZeigOvACsIdORb2tibq7NhW4kBW5romkZNNUNenp0XABxEBtd5pI/w+H0Cn4YkbvUJRKZ/6Q2JBvlEPi8/8wFdQh5TcBtslxfhK62+xrFBsif0QblO9PqVqNexBs+KUxtwc1Vsyx5vhg6Jqx49XIXMHXJ76hafyDPfbqYR3QZ3VMDorxAUlRBGH8Ydz4DAqWD34+6PEJ79Q8Lpd8LTpxHm9HLC9LXRAfQB'), 1240 1241 this.addEntry(dt + 'object flow', function() 1242 { 1243 var cardCell = new mxCell('', new mxGeometry(0, 0, 60, 40), s + 'objFlowR;strokeWidth=2;whiteSpace=wrap;'); 1244 cardCell.vertex = true; 1245 var cardCell2 = new mxCell('', new mxGeometry(140, 0, 60, 40), s + 'objFlowL;strokeWidth=2;whiteSpace=wrap;'); 1246 cardCell2.vertex = true; 1247 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;html=1;elbow=horizontal;endArrow=open;labelBackgroundColor=none;strokeWidth=2;endSize=12;'); 1248 edge1.geometry.relative = true; 1249 edge1.edge = true; 1250 cardCell.insertEdge(edge1, true); 1251 cardCell2.insertEdge(edge1, false); 1252 1253 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 200, 60, 'Object Flow'); 1254 }), 1255 1256 this.createVertexTemplateEntry(s + 'objFlowR;whiteSpace=wrap;', 1257 120, 60, '', 'Object Flow', null, null, this.getTagsForStencil(gn, 'objFlowR', dt + 'object flow').join(' ')), 1258 this.createVertexTemplateEntry(s + 'objFlowL;whiteSpace=wrap;', 1259 120, 60, '', 'Object Flow', null, null, this.getTagsForStencil(gn, 'objFlowL', dt + 'object flow').join(' ')), 1260 this.addDataEntry(dt + 'probability', 350, 80, 'Probability', 1261 '7ZXbboMwDIafhnsKZb3uabvZpEp9ggAeiRZiFExPTz+H0FK2Vuu0TdvFLpCc3wdsf0EE8bzcPVhRySfMQQfxMojnFpG8Ve7moHUQhSoP4kUQRSE/QXR/xTtqvWElLBi6JSHyCRuhG/CKF2ra606opaicaSWWaVMH8UxSyY0uRmxupSJYVyJzEVseg7UNWFKZ0I8iBb3CWpFCw+4UibA8C5hqVZjSd0roUrtu2A+7qxO1UjfOA2AJZPccckxIEp+y9+exX0C4VTnJoSRBFZKGmqj9uTgV7rfHRrfAy8uMP14m5AWsuyPoFLfLXjjfa+tjW6JVBzQk2DETbl+OhG97uMfzBYPJp9a2BQwaV9piY3JwfYZ80o7MTGQvRavPUaPtY2sSlo75WIE5amt1cH2PohMpN86AU42NzWBwt25AZ0ELUpthqUskutQVKq7YI58kwxRutgDqot7wO732JqTj90gnMzeUxVSkSity/bceH7SuIFPPTKW99OyaLL58CY6cb0TeIfsMcs7+q3DjJBx8z3fhT7FO/ln/FuvvZsvH/h/qw89/sa8='), 1262 this.addDataEntry(dt + 'probability', 250, 60, 'Probability', 1263 '7VRNb4MwDP01uVYU1vVc6NrTpGlctmMAF7IFjEJaYL9+Dkk/aJlU7bTDkBD284t5PIewICq7reJ18YwZSBY8sSBSiNpGZReBlMz3RMaCNfN9j27mb36ozoeqV3MFlb5ngW8XHLjcg0VWqRZYWbjRvXRwoUsSt56zIGwKXhu07HKje9b0TSlnmHxsJLavRGgLoSGueWpYLXEI41LkFaUpCQNFgHsxKA3dj+IHyCnfApagVU+UVmS6cIxH+4FeASIv3LIjxhub56elZysocG5MOxPcOMOWoZGnMOGJkEIbJUPFkuIaUrETKbf+eWy5vnERshxil1ZY0SO8MPbGI+MONZQrV0hQayypAFW2UgpbwrCGyiKx+DJ9575JO6HfXFsTv1PszRaU7YSUEUpUg6JgN1yES56ADHn6mSvcV9mR4lTaLzHyR7NqcK9SGG2lO8Y3nrcCSZYdxo2nJucavaCg/qcu/uJq2JqrHLRjXc37JOKuLfDwB7eAxvp//pPz76f//V9vB0rP57ClXx7T3w=='), 1264 this.addDataEntry(dt + 'probability', 250, 60, 'Probability', 1265 '3VRNb4MwDP01XCcK23ou7dbTPiQu2zGAC9lCjIJb6H79HJK2o2ulqqdpSAj72THPfoYgntf90oimesICVBA/BPHcIJKz6n4OSgVRKIsgXgRRFPIdRI9nopMhGjbCgKZLDkTuwEaoNTjkJfuAnBh7Zj4u2tJW+WhbicaaxubESVdJgrQRucU67oIxoWSp2c2ZAhgG/CvAEPRnaQ6Q57gErIHMllM6WVDlM+5dK2EFsqz8sR0mWueX+6OHptnwfZ+eQfxrBsE0sfQMZiKTSpJlMkRcUtpALlcyFyRR29B08WtQUJSQelej5kdSUc0UFpNTM7LT4YJq5gMZEmHNAdDFzBjsGMMGtENS+WXrTiLr9pLefFlrv7Md3sTsraRSc1RoBkbxargYVyIDlYj8szS41sUuxbN0nVj6I61aXJscRktzgXxjvQ0oHtlmXPiUcr7QK0pNhyrR3ZHYJEwJ5LOO9N6TuGgFbv/gChA21+s//c/6b09/+1evA7uHP65L//lD/gY='), 1266 1267 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=top;labelBackgroundColor=none;', 160, 0, 1268 '{ rate = constant }\n{rate = distribution}\n<<continuous>>\n<<discrete>>', 1269 'Rate', null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')), 1270 1271 this.addEntry(dt + 'in block definition diagram activity association', function() 1272 { 1273 var bg = new mxCell('bdd', new mxGeometry(0, 0, 330, 250), s + 'package;labelX=45;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;strokeWidth=1;recursiveResize=0;'); 1274 bg.vertex = true; 1275 var cardCell2 = new mxCell('<<activity>>\nactivity name', new mxGeometry(30, 40, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1276 cardCell2.vertex = true; 1277 bg.insert(cardCell2); 1278 var cardCell3 = new mxCell('<<activity>>\nactivity name', new mxGeometry(30, 160, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1279 cardCell3.vertex = true; 1280 bg.insert(cardCell3); 1281 var assoc1 = new mxCell('action\nname', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;endFill=0;startArrow=diamondThin;startFill=1;startSize=12;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1282 assoc1.geometry.relative = true; 1283 assoc1.geometry.x=1; 1284 assoc1.edge = true; 1285 cardCell2.insertEdge(assoc1, true); 1286 cardCell3.insertEdge(assoc1, false); 1287 bg.insert(assoc1); 1288 var cardCell4 = new mxCell('<<activity>>\nactivity name', new mxGeometry(180, 40, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1289 cardCell4.vertex = true; 1290 bg.insert(cardCell4); 1291 var cardCell5 = new mxCell('<<block>>\nblock name', new mxGeometry(180, 160, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1292 cardCell5.vertex = true; 1293 bg.insert(cardCell5); 1294 var assoc2 = new mxCell('object\nnode\nname', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;endFill=0;startFill=1;startSize=12;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1295 assoc2.geometry.relative = true; 1296 assoc2.geometry.x=1; 1297 assoc2.edge = true; 1298 cardCell4.insertEdge(assoc2, true); 1299 cardCell5.insertEdge(assoc2, false); 1300 bg.insert(assoc2); 1301 1302 return sb.createVertexTemplateFromCells([bg], 400, 250, 'In Block Definition Diagrams, Activity, Association'); 1303 }), 1304 1305 this.createVertexTemplateEntry(s + 'actPart;strokeWidth=3;verticalAlign=top;rotation=-90;whiteSpace=wrap;', 1306 100, 100, 'Partition Name', 'Activity Partition', null, null, this.getTagsForStencil(gn, 'actPart', dt + 'activity partition').join(' ')), 1307 this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;strokeWidth=2;verticalAlign=top;whiteSpace=wrap;align=center;', 1308 140, 50, '(Partition Name)\nAction', 'Activity Partition', null, null, this.getTagsForStencil(gn, '', dt + 'activity partition').join(' ')), 1309 1310 this.addEntry(dt + 'interruptible activity region', function() 1311 { 1312 var cardCell = new mxCell('region name', new mxGeometry(0, 0, 160, 60), 'shape=rect;html=1;rounded=1;verticalAlign=top;dashed=1;strokeWidth=2;whiteSpace=wrap;align=center;'); 1313 cardCell.vertex = true; 1314 var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;edgeStyle=none;align=center;verticalAlign=bottom;exitX=1;exitY=0.5;fillColor=#ffffff;'); 1315 assoc1.geometry.setTerminalPoint(new mxPoint(250, 30), false); 1316 assoc1.geometry.relative = true; 1317 assoc1.geometry.x = 1; 1318 assoc1.edge = true; 1319 cardCell.insertEdge(assoc1, true); 1320 1321 return sb.createVertexTemplateFromCells([cardCell, assoc1], 250, 60, 'Interruptible Activity Region'); 1322 }), 1323 1324 this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;dashed=1;strokeWidth=2;verticalAlign=top;whiteSpace=wrap;align=center;', 1325 160, 60, '<<structured>> node name', 'Structured Activity Node', null, null, this.getTagsForStencil(gn, '', dt + 'structured activity node').join(' ')) 1326 ]; 1327 1328 this.addPalette('sysmlActivities', 'SysML / Activities', expand || false, mxUtils.bind(this, function(content) 1329 { 1330 for (var i = 0; i < fns.length; i++) 1331 { 1332 content.appendChild(fns[i](content)); 1333 } 1334 })); 1335 }; 1336 1337 Sidebar.prototype.addSysMLInteractionsPalette = function(expand) 1338 { 1339 var s = 'html=1;shape=mxgraph.sysml.'; 1340 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 1341 var gn = ''; 1342 var dt = 'sysml interaction '; 1343 var sb = this; 1344 1345 var fns = [ 1346 this.createVertexTemplateEntry(s + 'package;overflow=fill;labelX=95;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;', 160, 80, 1347 '<p style="margin:0px;margin-top:4px;margin-left:5px;text-align:left;"><b>sd</b> Interaction1</p>', 1348 'Sequence Diagram', null, null, this.getTagsForStencil(gn, 'package', dt + 'sequence diagram').join(' ')), 1349 1350 this.addEntry(dt + 'lifeline', function() 1351 { 1352 var cardCell = new mxCell('b1:Block1', new mxGeometry(0, 0, 160, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1353 cardCell.vertex = true; 1354 var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;dashed=1;endArrow=none;align=center;verticalAlign=bottom;exitX=0.5;exitY=1;'); 1355 assoc1.geometry.setTerminalPoint(new mxPoint(80, 150), false); 1356 assoc1.geometry.relative = true; 1357 assoc1.geometry.x = 1; 1358 assoc1.edge = true; 1359 cardCell.insertEdge(assoc1, true); 1360 1361 return sb.createVertexTemplateFromCells([cardCell, assoc1], 160, 150, 'Lifeline'); 1362 }), 1363 this.addDataEntry(dt + 'execution specification', 160, 220, 'Execution Specification', 1364 'xZTbboMwDIafJveU7NDbQrdeTZrUJ8iIR6IFgkJa6NvPJS40W6sxddKQkOLTj/1hhfG86jdONOrFSjCMPzGeO2t9OFV9DsawNNGS8TVL0wRflj5fiS6GaNIIB7WfU5CGgr0wOwietwXjq8zY4oPEWn8wFGuVaI5HBwWqZ8pX2PAaC7JOaQ/bRhTHcIfjoE8YXdZoFtgLOHTQt8B56K/2O7io2Q3YCrw7YEqnpVeU8RBmShToUlHZySfaYJdj6TQ9HgjAZRj8G4xfEHjXxuTWWDckchieG4emgkea7UDJCdlnTNILSJZ/gOTuZyQgS9iSWdsaYixStAokGVDLlXO2mzKD2lEiYtPanSsgWlEvXAk++lEzCDowwut9rH4LkPv/BzJ/+njhZrMgoVerUX9UWcZbOK7cSSH8ICr6AnTs6RJjNKcLL6Sf34ef'), 1365 this.addDataEntry(dt + 'execution specification', 160, 220, 'Execution Specification', 1366 'zZTNbsIwDMefJvfSbBNXKBsnpEl9giyxmmhpU6WBlrefIaaQUaRKm7QdKsVf/9q/WGG8qIetF63eOQWW8VfGC+9ciKd6KMBalmdGMb5heZ7hx/K3B9HFOZq1wkMT5hTkseAg7B6i52PB+GptnfwksS4cLcU6LdrT0YNE9bUONTa8wYJ1r02AshXyFO5xHPQJa6oGTYm9gEcH/Qt8gOFhv2cXNbsFV0PwR0zpjQqaMl7iTJkGU2kqu/hEF+1qLL1OjwcCMA2D38GAAWTZgvxPJKiALjY7UnJG9i2ofALU8hdAPd2BugMEqoKSzMY1kEJSotOgyIBGrbx3/TUzqp0kEjid23sJyeIG4SsIyfXNQOjBimAOqfpPgDz/PZD506cbN5sFCb07g/qjyjJdw3EtLwrxgqjoG9CxpynGaF6fwZh++0p+AQ=='), 1367 1368 this.addEntry(dt + 'use', function() 1369 { 1370 var cardCell = new mxCell('Interaction3', new mxGeometry(0, 0, 160, 60), s + 'package;labelX=40;whiteSpace=wrap;align=center;'); 1371 cardCell.vertex = true; 1372 var label1 = new mxCell('ref', new mxGeometry(0, 0, 0, 0), 'html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;spacingLeft=5;spacingTop=-2;fontStyle=1;'); 1373 label1.geometry.relative = false; 1374 label1.setConnectable(false); 1375 label1.vertex = true; 1376 cardCell.insert(label1); 1377 1378 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Interaction Use'); 1379 }), 1380 1381 this.addEntry(dt + 'combined fragment', function() 1382 { 1383 var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>sd</b> Interaction1</p>', new mxGeometry(0, 0, 350, 320), s + 'package;labelX=100;html=1;overflow=fill;strokeWidth=1;recursiveResize=0;'); 1384 bg.vertex = true; 1385 var cardCell2 = new mxCell('b1: Block1', new mxGeometry(30, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1386 cardCell2.vertex = true; 1387 bg.insert(cardCell2); 1388 var cardCell3 = new mxCell('b2: Block2', new mxGeometry(140, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1389 cardCell3.vertex = true; 1390 bg.insert(cardCell3); 1391 var cardCell4 = new mxCell('b3: Block3', new mxGeometry(250, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1392 cardCell4.vertex = true; 1393 bg.insert(cardCell4); 1394 var cardCell5 = new mxCell('alt', new mxGeometry(20, 90, 200, 160), inh + s + 'package;labelX=35;fontStyle=1;align=left;verticalAlign=top;spacingLeft=5;spacingTop=-3;'); 1395 cardCell5.vertex = true; 1396 bg.insert(cardCell5); 1397 var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1398 assoc1.geometry.setTerminalPoint(new mxPoint(70, 300), false); 1399 assoc1.geometry.relative = true; 1400 assoc1.edge = true; 1401 cardCell2.insertEdge(assoc1, true); 1402 bg.insert(assoc1); 1403 var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1404 assoc2.geometry.setTerminalPoint(new mxPoint(180, 300), false); 1405 assoc2.geometry.relative = true; 1406 assoc2.edge = true; 1407 bg.insert(assoc2); 1408 cardCell3.insertEdge(assoc2, true); 1409 var assoc3 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1410 assoc3.geometry.setTerminalPoint(new mxPoint(290, 300), false); 1411 assoc3.geometry.relative = true; 1412 assoc3.edge = true; 1413 bg.insert(assoc3); 1414 cardCell4.insertEdge(assoc3, true); 1415 var assoc4 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1416 assoc4.geometry.setTerminalPoint(new mxPoint(20, 170), false); 1417 assoc4.geometry.setTerminalPoint(new mxPoint(220, 170), true); 1418 assoc4.geometry.relative = true; 1419 assoc4.edge = true; 1420 bg.insert(assoc4); 1421 var assoc5 = new mxCell('[if x < 10]', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;endSize=12;'); 1422 assoc5.geometry.setTerminalPoint(new mxPoint(70, 150), true); 1423 assoc5.geometry.setTerminalPoint(new mxPoint(180, 150), false); 1424 assoc5.geometry.relative = true; 1425 assoc5.geometry.x = -1; 1426 assoc5.edge = true; 1427 bg.insert(assoc5); 1428 var label1 = new mxCell('msg1', new mxGeometry(1, 0, 0, 0), 'align=right;html=1;verticalAlign=bottom;labelBackgroundColor=none;'); 1429 label1.geometry.relative = true; 1430 label1.setConnectable(false); 1431 label1.vertex = true; 1432 assoc5.insert(label1); 1433 var assoc6 = new mxCell('[else]', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;align=right;endSize=12;'); 1434 assoc6.geometry.setTerminalPoint(new mxPoint(70, 230), true); 1435 assoc6.geometry.setTerminalPoint(new mxPoint(180, 230), false); 1436 assoc6.geometry.relative = true; 1437 assoc6.geometry.x = -1; 1438 assoc6.edge = true; 1439 bg.insert(assoc6); 1440 var label2 = new mxCell('msg2', new mxGeometry(1, 0, 0, 0), 'align=right;html=1;verticalAlign=bottom;labelBackgroundColor=none;'); 1441 label2.geometry.relative = true; 1442 label2.setConnectable(false); 1443 label2.vertex = true; 1444 assoc6.insert(label2); 1445 bg.insert(assoc6); 1446 var assoc7 = new mxCell('msg3', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;endSize=12;'); 1447 assoc7.geometry.setTerminalPoint(new mxPoint(70, 290), true); 1448 assoc7.geometry.setTerminalPoint(new mxPoint(290, 290), false); 1449 assoc7.geometry.relative = true; 1450 assoc7.edge = true; 1451 bg.insert(assoc7); 1452 1453 return sb.createVertexTemplateFromCells([bg], 350, 320, 'Combined Fragment'); 1454 }), 1455 1456 this.addDataEntry(dt + 'state invariant configuration', 120, 220, 'State Invariant / Continuations', 1457 'xVTLboMwEPwaXyMCpfeEtDlFqpRTjxbeYksGI9sJ8Pdd4gVCHhJSpfSAvM9hZ7wyS7Ky3Vtey4MRoFnywZLMGuODVbYZaM3iSAmW7FgcR/ix+PNJdn3JRjW3UPklDXFoOHN9ghBhyeY7BJ3vNAWd5HVvWsgRdit9iZPu1mg2Unk41jzv0w3ywBjXqqjQzXEIsBign4D10D4d9BKiKfdgSvC2w5JGCS+pgshEElQhqS2lGHfBL8bWiTYaxPyxCsmdCnV/IMP0Toor7oMqZVv0F7hynSv1Kjc9o+0PHkdqe4lQHWUjEuQVwr3dr8+tXiAKGHSoTAXz9RHcSRDkQCU21ppmqgxoPcRMDWdONofZBntuC/Cz61ygmQXNvTrP0f8iSPr/gixnP1+xxVoQ0JdRiD+ivNM60RoOD8+IEC6Imm4EHWd6pDG603sYyq+fy18='), 1458 this.addDataEntry(dt + 'coregion', 250, 220, 'Coregion', 1459 '1ZZbb4IwFIB/TV8NUJjuUXHzackSH/bcwRk0K5S09bZfv0ILCmjmJmpmYtJz5ZzvlFKEw2y7EKRIX3gMDOEnhEPBuTKrbBsCY8hzaIzwHHmeo//Iez5hdSurUxABuTonwDMBa8JWYDQSBbMVCuYIT2fGKNWO1caUFOVSQKTTz1KV6Yrnrl5uUqpgWZCoNG90P1pHGE1yLUa6GBBaYR8GQsH2ZMGVyla7AJ6BEjvtsqGxSq2HY5pyUqBJasMCqyPSyEkTum9fLyyB4zRwj0aPwEHLNYxsm5TzG8mdzNgo4gISyvPSQQn+CW+2cHwhABvg2z53HRYHfLwjeMYD4PF/xlMz0YG0kNDeIx+UsZAzLipf7FS/gahM2lTcSY+K34fiX84k+D9M/FsxefiZCcQJLK2Y87wDJSYyhdgKkMdTIfhm72mylSlaZCRfiQha55oiIoF2Y2fwE8CIout29kuAjO8PxO8DCe4HZHJ/IFfo3oa+cqozNq9h0D6wm9O5zmBGYoM6CJsqzqL62KOa4WG5Sl2sqnW8gPIrV55RNCJsar/271wpntXOS/pVPsn1frVNrz+V7ljc643FdfpzGXi/X30uN3tbenPp3uv+PBct7u/Vxv3w2v0N'), 1460 this.addDataEntry(dt + 'creation destruction event', 250, 220, 'Creation/Destruction Event', 1461 '1Zdtb4MgEIB/jd8VtNs+tt3LlzVZ0l9A9aZkKAZZbffrh4J2SJfZ9W0zacLdcVfuOTzEw/N88yRImS14AszDDx6eC86lHuWbOTDmIZ8mHr73EPLVz0OP31iD1uqXREAhxzgg7bAm7B20ZhV4eDpjPH4zwSq5ZcZWZaRshgJiFX2WyVwt+F45zOqMSliWJG7MtUpH6QijaaHEWK0FhFKY/wIhYfPteluVWewT8Byk2KopNU1kZmb4Oic/A5pmxg0bHam0nPauu+zVwADYDwO7MFAHA/0lGJ1DZJLeajk04iVYhQ6rnwC9UsbmnHHRWjG0jw3uFEzubCY3LhO0B0nP6Rgm0XgmypGWFbhY/PY5OZbw1qISYYdK6EIJj0cy+TdIgk4+O5Obn5lAksLSiAUvGigJqTJITPpQJFMheL0zO2yaEBaZir+LGKy2L4lIQVqbdwQ/AYxIurajHwPk9vpAIhfI5HpA7q4P5AzZG9cXTlXE/jUcnGF9d+4i6JIYpwHCfhWjqAa+gzUWQCSMgfuFJy9BneSzpvnQmLCpOdlXXEqe66lL+tH4BugUGxFfqhTDWgRnrEVw2BYHtuL1w06xpx7tFCV2dTm2EhO3EuHVKhGdrxLuFeDA96HaVovnjYW7SczuR4exvxxof9B+ht+BvwatxN01Tk//esv7BA=='), 1462 this.addDataEntry(dt + 'duration constraint', 250, 250, 'Duration Constraint', 1463 'zZbNjpswEMefxpdKQXwsjXoMod1DVW2ltA/g4hFYMhjZzibp03ccuwnBREFbVO0himfsGWZ+/5GBZNv2+Kxo33yTDATJPpNsq6Q0btUetyAESWPOSFaSNI3xR9Ivd3aT827cUwWdmROQuoBXKvbgPCTb/NSgnF+bk/B+3dDeLhVUmLloTIvFlgkuDw03sOtpZbcP2Ar6qOB1h2aFdWCyrPDPAWXgeLfWs8sX+gyyBaNOeOTAmWn8idj1EzfA68aH5d5HtbPrS+i1c1z45qdBZCGIdcGiKPvAyLoMaAza/wumPdZWxkifdCsixlvoNJcIoVDSUHNelqtPMTosBl5RsfGUjLTMNCLkXf3DGuUq/xdiPmDl1Y9PI3qPiD4tQPQpJDqmCKyGnTc72eFfwahugHm00LGNUvJw3R5wd9lsihs6Wu5VBTfTPQOYAoESvd6mmureh36XHDNeQOe3nIOJNFTVYHzQCOGlillU84DqFu8N9Nh9tldu0GaAHpAcYJY9dBMD+ksaI1t3dMd/2zRJel+D/w58PeLthiDgHaR5lGc53T6GulHFXva2GLxp4ihKsqmLZjHl/O1SeLvM36+ayUwZHsoZJLozF2/Qcx3o+fJ1cfEm3gvvWLY0Xkq28evnzbKhef2WcseHn1p/AA=='), 1464 this.addDataEntry(dt + 'duration constraint', 250, 200, 'Time Constraint', 1465 '3ZbbUoMwEIafJpcyHFq5LqC9cJw6U18gJStkDIQJoQef3kBiQZFprVSrF0yzm/13tv9HMiAvzLZzgYv0nhNgyLtBXig4l3qVbUNgDLk2JciLkOva6kHu7cCu0+zaBRaQy2MErhasMatAZ3SilDtmEkASWJow57n6CVKZqUkjRy0JLlMgJoCczITgm7ZSd6tbDA7YpMx0c+AZSLFTJQIYlnT9XodLHSb7ur30gVPV0bW35o/Z7xUlr0QMpqhryIBu9xZ+6COxSED2+qhFZ/o21dj9ufXev7XeO9V778fMn/TMD7Egi6qeBvmBbVmOh/zoi0Q6EHgBucqsQUgaYzZjNFFxtOJS8kxtlAWOaZ4EJo6mWr6kL3Vrx72Es2MwOJPjMBzk2Ws08GKcwHPa47m4Gx2e5EVL7rEOLhqbPxY252zYrvt3oB9Iy1J9g++dP7OJDTpBk1SZHzC8Ahbg+DkRvMpJyBkXY1yZxroro/htkkPC8cj5PXKy8XEzGjIGT3+I2KGr7ujDNz3XnanC9rtSl3c/O18B'), 1466 this.addDataEntry(dt + 'message', 250, 250, 'Message', 1467 'zZbfboIwFMafhmS7gzJ1t4LTqyVLeIIKJ9CsUFKqyJ5+B1tUQDNHCHpB6L/zcc7vowXL9dPDRtI8+RQRcMv9sFxfCqF0Kz34wLlFbBZZ7soixMbLIusbs85x1s6phEzdE0B0wJ7yHeiRrWO5S4+L8NuIFariZq5IaF43JYSo7iUqxYRXGOCVCVMQ5DSsp0ssB8coZ3GG3RBzAYkD5lkgFRxu5nscMsluQKSgZIVLShapxKywdU12AixOTJhrxmih+/Ep9Fw9NgyA6zDcPgzSwCDPBKMJmJmip4Dz1oPTIwJRDIHpZiLDmxfRIoHIcLlABFm0lFKU55VarZZo0SjETobQelnvACSBU8X2balr1ZvQL8FQ8QS24VqZ5846/BSVMSgT1EF4yuIuqrPHU3WnokrsybDOe1hpUWVhgHuQ8nsIX4cqcsA97NWbloWUL82e3gqlRKqXBuynlnHIbfiTv7+LDmftfo/zn4Z1dcbza9Hzq7bLp5y/IC2avg73bFuf3v8wDbtrxhuhZ7HQmY/kYU9oPBPfB51lo+y0tmmt4/FhDvaOO3ughd2vUVdnsIPYPf9p6uWXP6K/'), 1468 1469 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=sysMLLost;endSize=12;verticalAlign=bottom;', 1470 160, 0, 'lost', 'Lost Message', null, this.getTagsForStencil(gn, '', dt + 'lost message').join(' ')), 1471 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=bottom;startArrow=sysMLFound;startSize=12;', 1472 160, 0, 'found', 'Found Message', null, this.getTagsForStencil(gn, '', dt + 'found message').join(' ')), 1473 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;dashed=1;strokeWidth=2;', 1474 160, 0, '', 'General Ordering', null, this.getTagsForStencil(gn, '', dt + 'general ordering').join(' ')) 1475 ]; 1476 1477 this.addPalette('sysmlInteractions', 'SysML / Interactions', expand || false, mxUtils.bind(this, function(content) 1478 { 1479 for (var i = 0; i < fns.length; i++) 1480 { 1481 content.appendChild(fns[i](content)); 1482 } 1483 })); 1484 }; 1485 1486 Sidebar.prototype.addSysMLStateMachinesPalette = function(expand) 1487 { 1488 var s = 'shape=mxgraph.sysml.'; 1489 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 1490 var gn = ''; 1491 var dt = 'sysml state machine '; 1492 var sb = this; 1493 1494 var fns = [ 1495 this.addDataEntry(dt + 'choice pseudo state', 150, 100, 'Choice Pseudo State', 1496 'zZXbcoIwEIafJvcctPeC1ulFZ5zxCYLZQqaBZUJQ9OmbkKCgMqVjnfaCmd1/k+zyfxxIGOfNWtIye0cGgoQrEsYSUdkob2IQggQeZyRckiDw9EWC15Gq31a9kkoo1JQNgd2wp6IGq1ihUkfhhCqjpQllhnlSVySMMpXrQZe+DgVNQGyw4opjYRbxNNONIyp4anIBHybdg1R8R8XCyTlnTJ9ve+saNKPzt5Ibfg2Yg5JHveTo5re35x04U5mVZk7KwM7S12hl8/R80MUbHTh77lsVfm8VsBS2LgWR4GF1EfqutTUdZyj5CQtFRc+yzsJrzxJUCnNdkFgXDMxUXkcgorvPtNVjFCh1qcDCNIWCLaRsm2EJhVW2/GQm9LWvkb0HM/iAgKIyBTV4RiZAkSCo4vvhUfc8d1s3yPWJgdcMYXY7KqzlDtyiK1DnrpPYzW7ZzaM3RoIXYaw2ZnhkvnwYaMfsDs5bEj/kOIGaNeyPqLk30veuKNpH6TcozkcppsbhpyF0H7HHCI6+zv8YrT9/FludXn5ydnn/H/gF'), 1497 1498 this.addEntry(dt + 'composite state', function() 1499 { 1500 var bg = new mxCell('CompositeState1', new mxGeometry(0, 0, 220, 190), s + 'compState;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=18;strokeWidth=1;recursiveResize=0;'); 1501 bg.vertex = true; 1502 var cardCell2 = new mxCell('', new mxGeometry(20, 50, 20, 20), 'shape=ellipse;html=1;fillColor=#000000;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;'); 1503 cardCell2.vertex = true; 1504 bg.insert(cardCell2); 1505 var cardCell3 = new mxCell('State1', new mxGeometry(80, 60, 100, 40), inh + 'shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;'); 1506 cardCell3.vertex = true; 1507 bg.insert(cardCell3); 1508 var cardCell4 = new mxCell('State2', new mxGeometry(80, 130, 100, 40), inh + 'shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;'); 1509 cardCell4.vertex = true; 1510 bg.insert(cardCell4); 1511 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=open;endSize=12;'); 1512 edge1.geometry.relative = true; 1513 edge1.edge = true; 1514 cardCell2.insertEdge(edge1, true); 1515 cardCell3.insertEdge(edge1, false); 1516 bg.insert(edge1); 1517 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=open;endSize=12;'); 1518 edge2.geometry.relative = true; 1519 edge2.edge = true; 1520 cardCell3.insertEdge(edge2, true); 1521 cardCell4.insertEdge(edge2, false); 1522 bg.insert(edge2); 1523 1524 return sb.createVertexTemplateFromCells([bg], 220, 190, 'Composite State'); 1525 }), 1526 1527 this.createVertexTemplateEntry(s + 'compState;html=1;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=18;', 1528 200, 160, 'CompositeState1', 'Composite State', null, null, this.getTagsForStencil(gn, 'compState', dt + 'composite state').join(' ')), 1529 this.createVertexTemplateEntry('ellipse;html=1;labelPosition=left;verticalLabelPosition=bottom;spacingBottom=10;align=right;verticalAlign=bottom;resizable=0;', 1530 20, 20, 'again', 'Entry Point', null, null, this.getTagsForStencil(gn, 'compState', dt + 'entry point').join(' ')), 1531 1532 this.addEntry(dt + 'exit point', function() 1533 { 1534 var cardCell = new mxCell('aborted', new mxGeometry(0, 10, 20, 20), s + 'flowFinal;labelPosition=right;verticalLabelPosition=top;spacingTop=5;spacingLeft=3;align=left;verticalAlign=top;resizable=0;'); 1535 cardCell.vertex = true; 1536 1537 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Exit Point'); 1538 }), 1539 1540 this.createVertexTemplateEntry(s + 'actFinal;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;', 1541 40, 40, '', 'Final State', null, null, this.getTagsForStencil(gn, 'actFinal', dt + 'final state').join(' ')), 1542 this.createVertexTemplateEntry('shape=ellipse;html=1;fontSize=18;align=center;', 1543 40, 40, 'H*', 'History, Deep Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'history deep pseudo state').join(' ')), 1544 this.createVertexTemplateEntry('shape=ellipse;html=1;fontSize=18;align=center;', 1545 40, 40, 'H', 'History, Shallow Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'history shallow pseudo state').join(' ')), 1546 this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=#000000;fontSize=18;fontColor=#ffffff;', 1547 40, 40, '', 'Initial Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'initial pseudo state').join(' ')), 1548 this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=#000000;fontSize=18;fontColor=#ffffff;', 1549 40, 40, '', 'Junction Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'junction pseudo state').join(' ')), 1550 this.createVertexTemplateEntry(s + 'accEvent;flipH=1;whiteSpace=wrap;align=center;', 1551 140, 40, 'Req(Id)', 'Receive Signal Action', null, null, this.getTagsForStencil(gn, 'accEvent', dt + 'receive signal action').join(' ')), 1552 this.createVertexTemplateEntry(s + 'sendSigAct;whiteSpace=wrap;align=center;', 1553 140, 40, 'TurnOn', 'Send Signal Action', null, null, this.getTagsForStencil(gn, 'sendSigAct', dt + 'send signal action').join(' ')), 1554 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 1555 140, 40, 'MinorReq := Id;', 'Action', null, null, this.getTagsForStencil(gn, '', dt + 'action').join(' ')), 1556 this.createVertexTemplateEntry(s + 'region;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=25;', 1557 200, 160, 'S', 'Region', null, null, this.getTagsForStencil(gn, '', dt + 'region').join(' ')), 1558 this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;', 1559 100, 40, 'State1', 'Simple State', null, null, this.getTagsForStencil(gn, '', dt + 'simple state').join(' ')), 1560 1561 this.createVertexTemplateEntry(s + 'simpleState;html=1;overflow=fill;whiteSpace=wrap;align=center;', 200, 100, 1562 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1563 'State2<hr/></p>' + 1564 '<p style="margin:0px;margin-left:8px;text-align:left;">entry / entryActivity<br/>do / doActivity<br/>exit / exitActivity</p>', 1565 'Simple State', null, null, this.getTagsForStencil(gn, 'simpleState', dt + 'simple state').join(' ')), 1566 1567 this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;', 1568 120, 40, 'State1, State2', 'State List', null, null, this.getTagsForStencil(gn, '', dt + 'state list').join(' ')), 1569 1570 this.addEntry(dt + 'state machine', function() 1571 { 1572 var cardCell = new mxCell('ReadAmountSM', new mxGeometry(0, 0, 160, 120), s + 'stateMachine;verticalAlign=top;whiteSpace=wrap;align=center;'); 1573 cardCell.vertex = true; 1574 var label1 = new mxCell('aborted', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;verticalAlign=top;align=left;labelBackgroundColor=none;spacingLeft=5;spacingTop=-2;'); 1575 label1.geometry.relative = false; 1576 label1.setConnectable(false); 1577 label1.vertex = true; 1578 cardCell.insert(label1); 1579 1580 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'State Machine'); 1581 }), 1582 1583 this.createVertexTemplateEntry(s + 'x;', 1584 40, 40, '', 'Terminate Node', null, null, this.getTagsForStencil(gn, 'x', dt + 'terminate node').join(' ')), 1585 1586 this.addEntry(dt + 'submachine state', function() 1587 { 1588 var cardCell = new mxCell('ReadAmount :\nReadAmountSM', new mxGeometry(0, 0, 160, 120), s + 'submState;whiteSpace=wrap;align=center;'); 1589 cardCell.vertex = true; 1590 var label1 = new mxCell('aborted', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;verticalAlign=bottom;align=left;labelBackgroundColor=none;spacingLeft=5;spacingBottom=2;'); 1591 label1.geometry.relative = false; 1592 label1.setConnectable(false); 1593 label1.vertex = true; 1594 cardCell.insert(label1); 1595 1596 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Submachine State'); 1597 }), 1598 1599 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;strokeWidth=3;verticalAlign=bottom;', 1600 160, 0, 'trigger[guard]/activity', 'Transition', null, this.getTagsForStencil(gn, '', dt + 'transition').join(' ')) 1601 ]; 1602 1603 this.addPalette('sysmlState Machines', 'SysML / State Machines', expand || false, mxUtils.bind(this, function(content) 1604 { 1605 for (var i = 0; i < fns.length; i++) 1606 { 1607 content.appendChild(fns[i](content)); 1608 } 1609 })); 1610 }; 1611 1612 Sidebar.prototype.addSysMLUseCasesPalette = function(expand) 1613 { 1614 var s = 'html=1;shape=mxgraph.sysml.'; 1615 var gn = ''; 1616 var dt = 'sysml use case '; 1617 var sb = this; 1618 1619 var fns = [ 1620 this.createVertexTemplateEntry('shape=ellipse;html=1;strokeWidth=3;fontStyle=1;whiteSpace=wrap;align=center;perimeter=ellipsePerimeter;', 1621 120, 60, 'UseCaseName', 'Use Case', null, null, this.getTagsForStencil(gn, '', dt + 'use case').join(' ')), 1622 1623 this.addEntry(dt + '', function() 1624 { 1625 var cardCell = new mxCell('\nextension points\np1, p2', new mxGeometry(0, 0, 160, 80), s + 'useCaseExtPt;whiteSpace=wrap;align=center;'); 1626 cardCell.vertex = true; 1627 var label1 = new mxCell('UseCaseName', new mxGeometry(80, 17, 0, 0), 'resizable=0;html=1;verticalAlign=middle;align=center;labelBackgroundColor=none;fontStyle=1;'); 1628 label1.geometry.relative = false; 1629 label1.setConnectable(false); 1630 label1.vertex = true; 1631 cardCell.insert(label1); 1632 1633 return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Use Case'); 1634 }), 1635 1636 this.createVertexTemplateEntry('shape=umlActor;html=1;verticalLabelPosition=bottom;verticalAlign=top;align=center;', 1637 30, 60, 'ActorName', 'Actor', null, null, this.getTagsForStencil(gn, 'umlActor', dt + '').join(' ')), 1638 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;html=1;whiteSpace=wrap;align=center;', 80, 40, 1639 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1640 '<<actor>><br/>' + 1641 '<b>ActorName</b></p>', 1642 'Actor', null, null, this.getTagsForStencil(gn, '', dt + '').join(' ')), 1643 this.createVertexTemplateEntry('shape=rect;html=1;verticalAlign=top;fontStyle=1;whiteSpace=wrap;align=center;', 1644 120, 60, 'SubjectName', 'Subject', null, null, this.getTagsForStencil(gn, '', dt + 'subject').join(' ')), 1645 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;', 1646 160, 0, '', 'Communication Path', null, this.getTagsForStencil(gn, '', dt + 'communication path').join(' ')), 1647 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;', 1648 160, 0, '<<include>>', 'Include', null, this.getTagsForStencil(gn, '', dt + 'include').join(' ')), 1649 this.createEdgeTemplateEntry('edgeStyle=none;html=1;startArrow=open;endArrow=none;startSize=12;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;', 1650 160, 0, '<<extend>>', 'Extend', null, this.getTagsForStencil(gn, '', dt + 'extend').join(' ')), 1651 this.addDataEntry(dt + 'extend condition', 250, 80, 'Extend with Condition', 1652 'tVTLjtswDPwaXQvH2kevsbfdSwsUyKU9KjFrC5VFQ1Y2Tr++pMRknWyyj0MPgcUhh6JmFCld99NjMEP3HRtwSn9Rug6IMa/6qQbnVFnYRukHVZYF/VT59Up2kbLFYAL4+B5CmQlPxm0hIzX6xkaLXuklZdR9tUZ0YDwFMA0BxpGT91R7p0q9KJSuYIrgE0x7o+WtmTvQODV/ZZcx7p3sMnZm4KXHSJ9qtH85WtzyejAb69tv8JtPwIhxtqVxHlyCql1nI6yoiik7ko4wOQaECNNVKRIkOjwC9hDDnkqEIEoVO9vETiAtWAe27aTLjWBmzHF77PSsMy1E6suy6xeyk5qm55O4mI4zj5K8zRFrTyokOtP3IFnIc1dd7B0LTEsWyW6MW0rJGmPEnhIBt74BnpA9dWYNrjKbP23Ca3QYkmGeDaN5liHgjhAcwGdkJS6SyFVjxi71WhzHg6aFj3oTwJlon055l5QX6o90+8pinys+n3kVTWghStH8b3HgHS7PnRCv9BlxGzbwok+y/Tj9u27CzYWbcOYl67aSUOSf2TlzQpIf8fHEJphs/Mm0T7cS/XrdwCzDyUvyHz09eFO87s0Vj9/2hsLnhzeXz9/lfw=='), 1653 1654 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=block;endFill=0;endSize=12;verticalAlign=bottom;', 1655 160, 0, '', 'Generalization', null, this.getTagsForStencil(gn, '', dt + 'generalization').join(' ')) 1656 ]; 1657 1658 this.addPalette('sysmlUse Cases', 'SysML / UseCases', expand || false, mxUtils.bind(this, function(content) 1659 { 1660 for (var i = 0; i < fns.length; i++) 1661 { 1662 content.appendChild(fns[i](content)); 1663 } 1664 })); 1665 }; 1666 1667 Sidebar.prototype.addSysMLAllocationsPalette = function(expand) 1668 { 1669 var s = 'html=1;shape=mxgraph.sysml.'; 1670 var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;'; 1671 var gn = ''; 1672 var dt = 'sysml allocation '; 1673 var sb = this; 1674 1675 var fns = [ 1676 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;html=1;whiteSpace=wrap;align=center;', 120, 60, 1677 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1678 '<<allocated>><br/>' + 1679 '<b>Named<br/>Element</b></p>', 1680 'Allocated Stereotype', null, null, this.getTagsForStencil(gn, '', dt + 'allocated stereotype').join(' ')), 1681 1682 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;', 200, 120, 1683 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1684 '<b>BlockName</b></p><hr/>' + 1685 '<p style="font-size:10px;margin:0px;text-align:center;"><i>allocatedFrom</i></p>' + 1686 '<p style="margin:0px;margin-left:8px;text-align:left;"><<elementType>> ElementName</p><hr/>' + 1687 '<p style="font-size:10px;margin:0px;text-align:center;"><i>allocatedTo</i></p>' + 1688 '<p style="margin:0px;margin-left:8px;text-align:left;"><<elementType>> ElementName</p>', 1689 'Allocation derived properties (Block)', null, null, this.getTagsForStencil(gn, '', dt + 'derived property block').join(' ')), 1690 this.addDataEntry(dt + 'derived property comment', 270, 140, 'Allocation derived properties (Comment)', 1691 'xVRNb+MgEP01HCPZOK16rZO2l3Yv6R8g9sRGHQzF5Ku/fgdM7bKJpVZa7R4sz7xhhuHxGFas1OnJCtO+6BqQFQ+sWFmt3WCp0woQGc9kzYo14zyjj/HHmWgeopkRFjr3nQQ+JBwE7mFAGL9FSi0Nwb074wDfvu99S6UStpEdK+4zcxrdhdOGoDzBEHZuAh2c3EKgbHzuECqnqmQ18R/23n4CAlFXwkH9aLX6jNJpthcZ1p9xAoWijkq89ABBETevZwNjIE2KXvYwrPwlFMztMtPsq/7/rdIeZtqEJ5fJ+1YYb3ba0a9snSLhrXMye/nhA/mNt42oZNc8h9ta34QThgtcxwv8kqcPYHeoj+TuJCmsKI+tdLChEr7ekQT+Jb+iZsGOnVEu6WNWwQGK8n0CrcDZMy2JCctB4NlR1q6Noi4i1oJs2ljlLmKiH/xmrDQ9DzLiC7n+WoqL15IwP8OyhcqztdOd28Ro/i8IOsdodslQzq8wtPwLDC2vzJM/aLF639Xg12ephlBsAUtRvTVhyUqjtkGknRcpdPW9tUFhEalF34Y6+UgU1A0kNPV6bytIZp2j+QQuudBvkGkBhZOHtPoPmCJ3muohlgz93w=='), 1692 1693 this.addEntry(dt + 'derived property internal block diagram', function() 1694 { 1695 var bg = new mxCell( 1696 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1697 '<<block>><br/>' + 1698 '<b>BlockName</b></p><hr/>', 1699 new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;verticalAlign=top;recursiveResize=0;'); 1700 bg.vertex = true; 1701 var cardCell2 = new mxCell( 1702 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1703 '<b>PartName</b><hr/></p>' + 1704 '<p style="font-size:10px;margin:0px;text-align:center;"><i>allocatedFrom</i></p>' + 1705 '<p style="margin:0px;margin-left:8px;text-align:left;"><<elementType>> ElementName</p>', 1706 new mxGeometry(20, 60, 210, 80), inh + 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;'); 1707 cardCell2.vertex = true; 1708 bg.insert(cardCell2); 1709 1710 return sb.createVertexTemplateFromCells([bg], 250, 160, 'Allocation derived properties (Internal Block Diagram)'); 1711 }), 1712 1713 this.createVertexTemplateEntry(s + 'simpleState;html=1;overflow=fill;whiteSpace=wrap;align=center;', 200, 100, 1714 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1715 '<b>ActivityName</b><hr/></p>' + 1716 '<p style="font-size:10px;margin:0px;text-align:center;"><i>allocatedTo</i></p>' + 1717 '<p style="margin:0px;margin-left:8px;text-align:left;"><<elementType>> ElementName</p>', 1718 'Allocation Derived Properties (Activity Diagram)', null, null, this.getTagsForStencil(gn, '', dt + 'derived property activity diagram').join(' ')), 1719 1720 this.addEntry(dt + 'activity partition', function() 1721 { 1722 var cardCell = new mxCell( 1723 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1724 '<<allocate>><br/>:ElementName<hr/></p>', 1725 new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;verticalAlign=top;'); 1726 cardCell.vertex = true; 1727 var cardCell2 = new mxCell('ActionName', new mxGeometry(65, 70, 120, 60), s + 'cont;fontStyle=1;whiteSpace=wrap;align=center;'); 1728 cardCell2.vertex = true; 1729 1730 return sb.createVertexTemplateFromCells([cardCell, cardCell2], 250, 160, 'Allocation Activity Partition'); 1731 }), 1732 1733 this.addEntry(dt + 'general', function() 1734 { 1735 var cardCell = new mxCell('Client', new mxGeometry(0, 0, 100, 60), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 1736 cardCell.vertex = true; 1737 var cardCell2 = new mxCell('Supplier', new mxGeometry(200, 0, 100, 60), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;'); 1738 cardCell2.vertex = true; 1739 var edge1 = new mxCell('<<allocate>>', new mxGeometry(0, 0, 0, 0), 'rounded=0;html=1;verticalAlign=top;labelBackgroundColor=none;endArrow=open;dashed=1;endSize=12;'); 1740 edge1.geometry.relative = true; 1741 edge1.edge = true; 1742 cardCell.insertEdge(edge1, true); 1743 cardCell2.insertEdge(edge1, false); 1744 1745 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 300, 60, 'Allocation (General)'); 1746 }) 1747 ]; 1748 1749 this.addPalette('sysmlAllocations', 'SysML / Allocations', expand || false, mxUtils.bind(this, function(content) 1750 { 1751 for (var i = 0; i < fns.length; i++) 1752 { 1753 content.appendChild(fns[i](content)); 1754 } 1755 })); 1756 }; 1757 1758 Sidebar.prototype.addSysMLRequirementsPalette = function(expand) 1759 { 1760 var s = 'html=1;shape=mxgraph.sysml.'; 1761 var gn = ''; 1762 var dt = 'sysml requirement '; 1763 var sb = this; 1764 1765 var fns = [ 1766 this.createVertexTemplateEntry(s + 'package;overflow=fill;labelX=110;strokeWidth=2;align=center;', 160, 80, 1767 '<p style="margin:0px;margin-top:4px;margin-left:7px;text-align:left;"><b>req</b> ReqDiagram</p>', 1768 'Requirement Diagram', null, null, this.getTagsForStencil(gn, 'package', dt + 'diagram').join(' ')), 1769 1770 this.createVertexTemplateEntry('shape=rect;overflow=fill;html=1;whiteSpace=wrap;align=center;', 200, 100, 1771 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1772 '<<requirement>><br/><b>Requirement Name</b><hr/></p>' + 1773 '<p style="margin:0px;margin-left:8px;text-align:left;">text="The system shall do"<br/>Id="62j32."</p>', 1774 'Requirement', null, null, this.getTagsForStencil(gn, 'package', dt + '').join(' ')), 1775 1776 this.createVertexTemplateEntry('shape=rect;overflow=fill;html=1;whiteSpace=wrap;align=center;', 200, 100, 1777 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 1778 '<<testCase>><br/><b>TestCaseName</b><hr/></p>', 1779 'Test Case', null, null, this.getTagsForStencil(gn, 'package', dt + 'test case').join(' ')), 1780 this.addDataEntry(dt + 'containment relationship', 300, 180, 'Requirement Containment Relationship', 1781 '5ZXfboIwFMafpvdQnNkuB27ezMTEJ6hwQpsVykoR2dPvtBRdjSYmy5zJLkjOn37fob8GSpKs2i81a/hKFSBJ8kKSTCtlxqjaZyAloZEoSLIglEb4EPp6oRu7btQwDbW5RkBHwY7JDsYKoXNWNSRJJRqkYabhoxMaKms+Ncpg2ZQRmsQRhuvxTdyQ1gzSD2k5a2yoIbcCbirc+SLGsOfCwKZhuW33yAVrTIqyxjRHK9BugHtp0Ab2FzfuSn7XS1AVGD3gEi94GrlEvSgM9wLPKuIgSu5d5r7G2jEvD05Hqhh4sOchJ78MOeNCFvE9QR5OiN6C8uwWlOk9UZ4Ej57eX1B/OEP9hJBWXV2AXR+FgCTbgkxZ/l66JZmSCpEsalWjMoW6eNZa9d8qRQkb7wtyq/qXYyF1BWxYlCJnOCNtDdNm8miHdvW2xmGZsljH5kZ8WrOYHk7CzgjOoVWdziH4W6KyBBN821eclgbJjNiF7j9BP//n6Gc3Q4/p8Up2veDG/gI='), 1782 1783 this.addEntry(dt + 'copy dependency', function() 1784 { 1785 var cardCell = new mxCell('<<requirement>>\nSlave', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1786 cardCell.vertex = true; 1787 var cardCell2 = new mxCell('<<requirement>>\nMaster', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1788 cardCell2.vertex = true; 1789 var edge1 = new mxCell('<<copy>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;'); 1790 edge1.geometry.relative = true; 1791 edge1.edge = true; 1792 cardCell.insertEdge(edge1, true); 1793 cardCell2.insertEdge(edge1, false); 1794 1795 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Copy Dependency'); 1796 }), 1797 1798 this.addEntry(dt + 'master callout', function() 1799 { 1800 var cardCell = new mxCell('Master\n<<requirement>> Master', new mxGeometry(0, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;'); 1801 cardCell.vertex = true; 1802 var cardCell2 = new mxCell('<<requirement>> Slave', new mxGeometry(200, 0, 160, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1803 cardCell2.vertex = true; 1804 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1805 edge1.geometry.relative = true; 1806 edge1.edge = true; 1807 cardCell.insertEdge(edge1, true); 1808 cardCell2.insertEdge(edge1, false); 1809 1810 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Master Callout'); 1811 }), 1812 1813 this.addEntry(dt + 'derive dependency', function() 1814 { 1815 var cardCell = new mxCell('<<requirement>>\nClient', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1816 cardCell.vertex = true; 1817 var cardCell2 = new mxCell('<<requirement>>\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1818 cardCell2.vertex = true; 1819 var edge1 = new mxCell('<<deriveReq>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;edgeStyle=none;endSize=12;dashed=1;'); 1820 edge1.geometry.relative = true; 1821 edge1.edge = true; 1822 cardCell.insertEdge(edge1, true); 1823 cardCell2.insertEdge(edge1, false); 1824 1825 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Dependency'); 1826 }), 1827 1828 this.addEntry(dt + 'derive callout', function() 1829 { 1830 var cardCell = new mxCell('<<requirement>>\nReqA', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1831 cardCell.vertex = true; 1832 var cardCell2 = new mxCell('Derived\n<<requirement>> ReqB', new mxGeometry(200, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;'); 1833 cardCell2.vertex = true; 1834 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=none;dashed=1;'); 1835 edge1.geometry.relative = true; 1836 edge1.edge = true; 1837 cardCell.insertEdge(edge1, true); 1838 cardCell2.insertEdge(edge1, false); 1839 1840 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Callout'); 1841 }), 1842 1843 this.addEntry(dt + 'derive callout', function() 1844 { 1845 var cardCell = new mxCell('DerivedFrom\n<<requirement>> ReqA', new mxGeometry(0, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;'); 1846 cardCell.vertex = true; 1847 var cardCell2 = new mxCell('<<requirement>>\nReqB', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1848 cardCell2.vertex = true; 1849 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1850 edge1.geometry.relative = true; 1851 edge1.edge = true; 1852 cardCell.insertEdge(edge1, true); 1853 cardCell2.insertEdge(edge1, false); 1854 1855 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Callout'); 1856 }), 1857 1858 this.addEntry(dt + 'satisfy dependency', function() 1859 { 1860 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1861 cardCell.vertex = true; 1862 var cardCell2 = new mxCell('<<requirement>>\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1863 cardCell2.vertex = true; 1864 var edge1 = new mxCell('<<satisfy>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;'); 1865 edge1.geometry.relative = true; 1866 edge1.edge = true; 1867 cardCell.insertEdge(edge1, true); 1868 cardCell2.insertEdge(edge1, false); 1869 1870 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Dependency'); 1871 }), 1872 1873 this.addEntry(dt + 'satisfy callout', function() 1874 { 1875 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1876 cardCell.vertex = true; 1877 var cardCell2 = new mxCell('Satisfies\n<<requirement>> ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1878 cardCell2.vertex = true; 1879 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1880 edge1.geometry.relative = true; 1881 edge1.edge = true; 1882 cardCell.insertEdge(edge1, true); 1883 cardCell2.insertEdge(edge1, false); 1884 1885 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Callout'); 1886 }), 1887 1888 this.addEntry(dt + 'satisfy callout', function() 1889 { 1890 var cardCell = new mxCell('SatisfiedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1891 cardCell.vertex = true; 1892 var cardCell2 = new mxCell('<<requirement>>\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1893 cardCell2.vertex = true; 1894 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1895 edge1.geometry.relative = true; 1896 edge1.edge = true; 1897 cardCell.insertEdge(edge1, true); 1898 cardCell2.insertEdge(edge1, false); 1899 1900 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Callout'); 1901 }), 1902 1903 this.addEntry(dt + 'verify dependency', function() 1904 { 1905 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1906 cardCell.vertex = true; 1907 var cardCell2 = new mxCell('<<requirement>>\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1908 cardCell2.vertex = true; 1909 var edge1 = new mxCell('<<verify>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;'); 1910 edge1.geometry.relative = true; 1911 edge1.edge = true; 1912 cardCell.insertEdge(edge1, true); 1913 cardCell2.insertEdge(edge1, false); 1914 1915 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Dependency'); 1916 }), 1917 1918 this.addEntry(dt + 'verify callout', function() 1919 { 1920 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1921 cardCell.vertex = true; 1922 var cardCell2 = new mxCell('Verifies\n<<requirement>> ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1923 cardCell2.vertex = true; 1924 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1925 edge1.geometry.relative = true; 1926 edge1.edge = true; 1927 cardCell.insertEdge(edge1, true); 1928 cardCell2.insertEdge(edge1, false); 1929 1930 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Callout'); 1931 }), 1932 1933 this.addEntry(dt + 'verify callout', function() 1934 { 1935 var cardCell = new mxCell('VerifiedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1936 cardCell.vertex = true; 1937 var cardCell2 = new mxCell('<<requirement>>\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1938 cardCell2.vertex = true; 1939 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1940 edge1.geometry.relative = true; 1941 edge1.edge = true; 1942 cardCell.insertEdge(edge1, true); 1943 cardCell2.insertEdge(edge1, false); 1944 1945 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Callout'); 1946 }), 1947 1948 this.addEntry(dt + 'refine dependency', function() 1949 { 1950 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1951 cardCell.vertex = true; 1952 var cardCell2 = new mxCell('<<requirement>>\nClient', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1953 cardCell2.vertex = true; 1954 var edge1 = new mxCell('<<refine>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;'); 1955 edge1.geometry.relative = true; 1956 edge1.edge = true; 1957 cardCell.insertEdge(edge1, true); 1958 cardCell2.insertEdge(edge1, false); 1959 1960 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Dependency'); 1961 }), 1962 1963 this.addEntry(dt + 'refine dependency', function() 1964 { 1965 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1966 cardCell.vertex = true; 1967 var cardCell2 = new mxCell('Refines\n<<requirement>> ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1968 cardCell2.vertex = true; 1969 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1970 edge1.geometry.relative = true; 1971 edge1.edge = true; 1972 cardCell.insertEdge(edge1, true); 1973 cardCell2.insertEdge(edge1, false); 1974 1975 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout'); 1976 }), 1977 1978 this.addEntry(dt + 'refine dependency', function() 1979 { 1980 var cardCell = new mxCell('RefinedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 1981 cardCell.vertex = true; 1982 var cardCell2 = new mxCell('<<requirement>>\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1983 cardCell2.vertex = true; 1984 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 1985 edge1.geometry.relative = true; 1986 edge1.edge = true; 1987 cardCell.insertEdge(edge1, true); 1988 cardCell2.insertEdge(edge1, false); 1989 1990 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout'); 1991 }), 1992 1993 this.addEntry(dt + 'trace dependency', function() 1994 { 1995 var cardCell = new mxCell('<<requirement>>\nClient', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1996 cardCell.vertex = true; 1997 var cardCell2 = new mxCell('<<requirement>>\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 1998 cardCell2.vertex = true; 1999 var edge1 = new mxCell('<<trace>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;'); 2000 edge1.geometry.relative = true; 2001 edge1.edge = true; 2002 cardCell.insertEdge(edge1, true); 2003 cardCell2.insertEdge(edge1, false); 2004 2005 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Trace Dependency'); 2006 }), 2007 2008 this.addEntry(dt + 'refine callout', function() 2009 { 2010 var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2011 cardCell.vertex = true; 2012 var cardCell2 = new mxCell('TracedFrom\n<<requirement>> ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 2013 cardCell2.vertex = true; 2014 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 2015 edge1.geometry.relative = true; 2016 edge1.edge = true; 2017 cardCell.insertEdge(edge1, true); 2018 cardCell2.insertEdge(edge1, false); 2019 2020 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout'); 2021 }), 2022 2023 this.addEntry(dt + 'trace callout', function() 2024 { 2025 var cardCell = new mxCell('TracedTo\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;'); 2026 cardCell.vertex = true; 2027 var cardCell2 = new mxCell('<<requirement>>\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2028 cardCell2.vertex = true; 2029 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;'); 2030 edge1.geometry.relative = true; 2031 edge1.edge = true; 2032 cardCell.insertEdge(edge1, true); 2033 cardCell2.insertEdge(edge1, false); 2034 2035 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Trace Callout'); 2036 }) 2037 ]; 2038 2039 this.addPalette('sysmlRequirements', 'SysML / Requirements', expand || false, mxUtils.bind(this, function(content) 2040 { 2041 for (var i = 0; i < fns.length; i++) 2042 { 2043 content.appendChild(fns[i](content)); 2044 } 2045 })); 2046 }; 2047 2048 Sidebar.prototype.addSysMLProfilesPalette = function(expand) 2049 { 2050 var s = 'shape=mxgraph.sysml.'; 2051 var gn = ''; 2052 var dt = 'sysml profile '; 2053 var sb = this; 2054 2055 var fns = [ 2056 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 2057 160, 80, '<<stereotype>>\nStereotypeName', 'Stereotype', null, null, this.getTagsForStencil(gn, '', dt + 'stereotype').join(' ')), 2058 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 2059 160, 80, '<<metaclass>>\nMetaClassName', 'Metaclass', null, null, this.getTagsForStencil(gn, '', dt + 'metaclass').join(' ')), 2060 this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;', 2061 160, 100, '<<profile>>\nProfileName', 'Profile', null, null, this.getTagsForStencil(gn, '', dt + 'profile').join(' ')), 2062 this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;', 2063 160, 100, '<<modelLibrary>>\nLibraryName', 'Model Library', null, null, this.getTagsForStencil(gn, '', dt + 'model library').join(' ')), 2064 2065 this.addEntry(dt + 'extension', function() 2066 { 2067 var cardCell = new mxCell('<<metaclass>>\nMetaClassName', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2068 cardCell.vertex = true; 2069 var cardCell2 = new mxCell('<<stereotype>>\nStereotypeName', new mxGeometry(0, 120, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2070 cardCell2.vertex = true; 2071 var edge1 = new mxCell('{required}', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;endFill=1;edgeStyle=none;endSize=12;labelBackgroundColor=none;align=left;'); 2072 edge1.geometry.relative = true; 2073 edge1.edge = true; 2074 cardCell.insertEdge(edge1, false); 2075 cardCell2.insertEdge(edge1, true); 2076 2077 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 120, 180, 'Extension'); 2078 }), 2079 2080 this.addEntry(dt + 'generalization', function() 2081 { 2082 var cardCell = new mxCell('<<stereotype>>\nStereotypeName', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2083 cardCell.vertex = true; 2084 var cardCell2 = new mxCell('<<stereotype>>\nStereotypeName', new mxGeometry(0, 120, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;'); 2085 cardCell2.vertex = true; 2086 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;endFill=0;edgeStyle=none;endSize=12;labelBackgroundColor=none;align=left;'); 2087 edge1.geometry.relative = true; 2088 edge1.edge = true; 2089 cardCell.insertEdge(edge1, false); 2090 cardCell2.insertEdge(edge1, true); 2091 2092 return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 120, 180, 'Generalization'); 2093 }), 2094 2095 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;', 2096 160, 0, '<<apply>>{strict}', 'Profile Application', null, this.getTagsForStencil(gn, '', dt + 'profile application').join(' ')), 2097 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=top;', 2098 160, 0, '<<reference>>', 'Metamodel Reference', null, this.getTagsForStencil(gn, '', dt + 'metamodel reference').join(' ')), 2099 this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=bottom;', 2100 160, 0, 'propertyName', 'Unidirectional Association', null, this.getTagsForStencil(gn, '', dt + 'unidirectional association').join(' ')) 2101 ]; 2102 2103 this.addPalette('sysmlProfiles', 'SysML / Profiles', expand || false, mxUtils.bind(this, function(content) 2104 { 2105 for (var i = 0; i < fns.length; i++) 2106 { 2107 content.appendChild(fns[i](content)); 2108 } 2109 })); 2110 }; 2111 2112 Sidebar.prototype.addSysMLStereotypesPalette = function(expand) 2113 { 2114 var s = 'html=1;shape=mxgraph.sysml.'; 2115 var gn = ''; 2116 var dt = 'sysml stereotype '; 2117 var sb = this; 2118 2119 var fns = [ 2120 this.addDataEntry(dt + 'note', 320, 150, 'Stereotype Note', 2121 '3ZZdb5swFIZ/DZeVwCTRbgPpetNOkSLt3oETsGYwM4ck7NfvGDtQAkk7tdKkXkSx3/Nh8/Aa8MK4OD9pXuUvKgXphY9eGGul0I6KcwxSeswXqRduPMZ8+nns+41o0EX9imso8T0FzBYcuWzAKh5bSSqNKpJrbKWVV78bs6Wo4DoTpReu/ercTx9QVSQFI03CAQcR4YwPXIrM1NpQNHSlUeb+u7X3rwReUO9ITmc1ggaFbQU/eAF9bFw3bqsNCNd6q1UFGtuuONz8NAR2qEWZzaa/NBLFvZqYeL3VJFJKAi9HbVweZe2vMZBWDRob3RBW57wyw1IhGBrij5kFSzOueEJbeO4wb4ySYyFNlIbqCPog1YmmB0FeCKNTLhB2VGManMiK/XKUSjfuprU6yfnqCVQBqFtKcQUL6zz/JFLMndu+OS0HkeWuy0XjtZ1nfafBtzRw1p23cTix8aOEwmyUrTwWBj5dkqV9g6KGxFA+qBJ3LhqMuc1RcobeJLQS6A9ia100mHKbw7b4BGyLL4DNFVwedP8D43KCccsxnwWnVVOmYOoMW8n3ICOe/Mo6PVZS6e5Il+ZIGx4i4XLtcHVP2QjKdK11d35d3h36dn1IMxhhrVWjExgdHaSnNuDIFu+Ar0FyFMdx94+gXM28j+4inOJIeZ134X9nwT7/wl3pVglzqi5uDZZXbg2vbGhvh6u6wtdvY44oTYevB5v++uPiLw=='), 2122 this.addDataEntry(dt + 'note', 320, 150, 'Stereotype Note', 2123 'rZRNj9owEIZ/jY8rJTGLet3Adi/daiWk3r1kSCw5tutMgPTXdxybZA2hXak9IMbvfNg8fjHjm/b84oRtXk0FivFnxjfOGAxRe96AUqzIZMX4lhVFRh9WfL2TzcdsZoUDjZ9pKELDUagegsKKtaLW0pLc4aCCvP7Z+yOVrXC11Iw/ZfY8LR/QWJLyRFNwwFlEOOODULL2vSFVzlMpquP3uPf7B0G0NLtUt6sOwYHBwcJ30cKUS/vSsc6DiKPfnLHgcBib+faHJ7BDJ3W9WP7aK5R/6tkQr78NKY1RIHQyJtZR1fs1BtLsrBXJhRRdI6wPtUHwNOQvv8offWzFno7wbcS89UqDrfJZCs0R3EGZEy0PkrzAy1MjEXbU4wecyIrTdlRKF3fXWqMUffUCpgV0A5XEhlVwXnaSFTbRbV+i1oCsmzjlookurOtp0uxbCqJ1l23Mb2z8rKD1By3WrOB5Rj8p0L5D0cHeUz4YjbuYzVNuS5Siobd72gncP2IbYja/5baEbfUfsK0W/v1XgJzpdQW+3jMEXT05N5pHG+19V4muGdNXuMIgqGpIOHSmd3tI3h6k9wIwucdP0HKgBMpjOn2JRWx9M9K74WLO/DHiu1DnVzjDqWLXFdHpGEuQaTk/36H84+v+Gw=='), 2124 2125 this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 160, 80, 2126 '<<stereotypeName>>\n{PropertyName=ValueString;\nBooleanPropertyName}\nNodeName', 2127 'Stereotype (Node)', null, null, this.getTagsForStencil(gn, '', dt + 'node').join(' ')), 2128 2129 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 400, 100, 2130 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 2131 '<b>NodeName</b><hr/></p>' + 2132 '<p style="margin:0px;margin-left:10px;text-align:left;">' + 2133 '<<stereotypeName>>{PropertyName=ValueString}ElementName<br/>' + 2134 '<<stereotypeName>>{PropertyName=ValueString};<br/>' + 2135 'BooleanPropertyName<br/>' + 2136 'ElementName</p>', 2137 'Stereotype (Compartment)', null, null, this.getTagsForStencil(gn, '', dt + 'compartment').join(' ')), 2138 this.addDataEntry(dt + 'edge', 200, 180, 'Stereotype (Edge)', 2139 '3VTBboMwDP2a3CmZ2vOgXU+bKlXaPQM3iRYSZEwp+/oFCO2ytVJ32WEHJD8/G/OeQxjPq9MWRa2eXQmG8Q3jOTpHU1SdcjCGpYkuGV+zNE38w9KnG+xiZJNaIFi6pyGdGo7CtDBlNgaqoTldspQvEsazF1HBVNZQb0JZo0Q9hAiFH5QdnKV9YBceK6pMCDulCfa1KAau80p9ThgtrYeFnwToE+EzAAlON6WMqaBjC64Cwt6XdLokFSqC3ESBliq0LUNONBOW59aLMT4I3lz3if8Dn/pvHv2Fbw8/fPOGiWrQZmjU8xU1XiRQ72CyMlAyKpzR7DpbZTt0tXekH7v4+nUYtifUVsalmXMGhI3KV+udIHV1dWDLR0TXeWSdhXhbUEqYFxlYI97AZKJ4l+haW+bOOLyw8yoNHK4dhBHrjxEm50UPU6I1N67FAqIzSQIlUPQ733EYEIwgfYzf/otNe3i5pUYuusQ+AQ=='), 2140 2141 this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 300, 120, 2142 '<p style="margin:0px;margin-top:4px;text-align:center;">' + 2143 '<b><<stereotypeName>></br>NodeName</b><hr/></p>' + 2144 '<p style="margin:0px;margin-left:10px;text-align:left;">' + 2145 '<<stereotypeName>><br/>PropertyName=ValueString<br/>' + 2146 'MultiPropertyName=ValueString, ValueString<br/>' + 2147 'BooleanPropertyName<br/></p>', 2148 'Stereotype (Compartment)', null, null, this.getTagsForStencil(gn, '', dt + 'compartment').join(' ')) 2149 ]; 2150 2151 this.addPalette('sysmlStereotypes', 'SysML / Stereotypes', expand || false, mxUtils.bind(this, function(content) 2152 { 2153 for (var i = 0; i < fns.length; i++) 2154 { 2155 content.appendChild(fns[i](content)); 2156 } 2157 })); 2158 }; 2159 2160})(); 2161