1(function() 2{ 3 // Adds Arrow shapes with control points 4 Sidebar.prototype.addUml25Palette = function() 5 { 6 // Avoids having to bind all functions to "this" 7 var sb = this; 8 9 // Reusable cells 10 var field = new mxCell('+ field: type', new mxGeometry(0, 0, 100, 26), 'text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 11 field.vertex = true; 12 13 var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;'); 14 divider.vertex = true; 15 16 // Default tags 17 var dt = 'uml '; 18 this.setCurrentSearchEntryLibrary('uml25'); 19 20 var fns = [ 21 this.createVertexTemplateEntry('shape=umlFrame;whiteSpace=wrap;html=1;width=120;height=30;boundedLbl=1;verticalAlign=middle;align=left;spacingLeft=5;', 340, 180, 'Diagram1 heading', 'Diagram', null, null, 'diagram'), 22 this.createVertexTemplateEntry('shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=center;', 120, 60, 'Comment1 body', 'Comment', null, null, 'uml comment note'), 23 this.createVertexTemplateEntry('shape=partialRectangle;html=1;top=1;align=left;dashed=1;', 200, 20, 'Template1 signature', 'Template signature', null, null, 'template signature'), 24 this.createVertexTemplateEntry('shape=partialRectangle;html=1;top=1;align=left;dashed=1;', 200, 50, 'Template parameter 1\nTemplate parameter 2', 'Template signature', null, null, 'template signature'), 25 this.addEntry('constraint', function() 26 { 27 var cell = new mxCell('Constraint1 specification', new mxGeometry(0, 0, 160, 60), 'shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=center;'); 28 cell.vertex = true; 29 var label = new mxCell('<<keyword>>', new mxGeometry(0, 0, cell.geometry.width, 25), 'resizeWidth=1;part=1;strokeColor=none;fillColor=none;align=left;spacingLeft=5;'); 30 label.geometry.relative = true; 31 label.vertex = true; 32 cell.insert(label); 33 34 return sb.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Constraint'); 35 }), 36 this.addEntry(dt + 'classifier', function() 37 { 38 var cell1 = new mxCell('<<keyword>><br><b>Classifier1</b><br>{abstract}', new mxGeometry(0, 0, 140, 183), 39 'swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=55;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;'); 40 cell1.vertex = true; 41 var field1 = new mxCell('attributes', 42 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 43 field1.vertex = true; 44 cell1.insert(field1); 45 var field2 = new mxCell('attribute1', 46 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 47 field2.vertex = true; 48 cell1.insert(field2); 49 var field3 = new mxCell('inherited attribute2', 50 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#808080;'); 51 field3.vertex = true; 52 cell1.insert(field3); 53 var field4 = new mxCell('...', 54 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 55 field4.vertex = true; 56 cell1.insert(field4); 57 cell1.insert(divider.clone()); 58 var field5 = new mxCell('operations', 59 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 60 field5.vertex = true; 61 cell1.insert(field5); 62 var field6 = new mxCell('operation1', 63 new mxGeometry(0, 0, 140, 20), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 64 field6.vertex = true; 65 cell1.insert(field6); 66 67 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 68 }), 69 this.createVertexTemplateEntry('shape=process2;fixedSize=1;size=5;fontStyle=1;', 140, 40, 'Classifier1', 'Classifier', null, null, 'classifier'), 70 this.addEntry(dt + 'classifier', function() 71 { 72 var cell1 = new mxCell('Classifier1', new mxGeometry(0, 0, 140, 183), 73 'swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;'); 74 cell1.vertex = true; 75 var field1 = new mxCell('internal structure', 76 new mxGeometry(0, 0, 140, 30), 'html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];resizeWidth=1;'); 77 field1.vertex = true; 78 cell1.insert(field1); 79 var cell2 = new mxCell('', new mxGeometry(0, 0, 140, 140), 80 'swimlane;fontStyle=1;align=center;verticalAlign=top;horizontal=1;startSize=0;collapsible=0;marginBottom=0;html=1;strokeColor=none;fillColor=none;'); 81 cell2.vertex = true; 82 cell1.insert(cell2); 83 var field2 = new mxCell('property1', 84 new mxGeometry(0, 0, 100, 30), 'html=1;align=center;verticalAlign=middle;rotatable=0;'); 85 field2.geometry.relative = true; 86 field2.geometry.offset = new mxPoint(20, 20); 87 field2.vertex = true; 88 cell2.insert(field2); 89 var field3 = new mxCell('property2', 90 new mxGeometry(0, 0, 100, 30), 'html=1;align=center;verticalAlign=middle;rotatable=0;'); 91 field3.geometry.relative = true; 92 field3.geometry.offset = new mxPoint(20, 90); 93 field3.vertex = true; 94 cell2.insert(field3); 95 var assoc1 = new mxCell('connector1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;endArrow=none;verticalAlign=middle;labelBackgroundColor=none;endSize=12;html=1;align=left;endFill=0;exitX=0.15;exitY=1;entryX=0.15;entryY=0;spacingLeft=4;'); 96 assoc1.geometry.relative = true; 97 assoc1.edge = true; 98 field2.insertEdge(assoc1, true); 99 field3.insertEdge(assoc1, false); 100 cell2.insert(assoc1); 101 102 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 103 }), 104 this.createVertexTemplateEntry('fontStyle=1;', 140, 30, 'Association1', 'Association', null, null, 'association'), 105 this.addEntry(dt + 'classifier', function() 106 { 107 var cell1 = new mxCell('Instance1', new mxGeometry(0, 0, 140, 138), 108 'swimlane;fontStyle=4;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;'); 109 cell1.vertex = true; 110 var field1 = new mxCell('slot1', 111 new mxGeometry(0, 0, 140, 30), 'html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];resizeWidth=1;'); 112 field1.vertex = true; 113 cell1.insert(field1); 114 cell1.insert(divider.clone()); 115 var field2 = new mxCell('internal structure', 116 new mxGeometry(0, 0, 140, 20), 'html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];resizeWidth=1;'); 117 field2.vertex = true; 118 cell1.insert(field2); 119 var cell2 = new mxCell('', new mxGeometry(0, 0, 140, 50), 120 'swimlane;fontStyle=1;align=center;verticalAlign=top;horizontal=1;startSize=0;collapsible=0;marginBottom=0;html=1;strokeColor=none;fillColor=none;'); 121 cell2.vertex = true; 122 cell1.insert(cell2); 123 var field3 = new mxCell('instance2', 124 new mxGeometry(0, 0, 80, 30), 'html=1;align=center;verticalAlign=middle;rotatable=0;'); 125 field3.geometry.relative = true; 126 field3.geometry.offset = new mxPoint(30, 10); 127 field3.vertex = true; 128 cell2.insert(field3); 129 130 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 131 }), 132 this.createVertexTemplateEntry('fontStyle=0;', 120, 40, 'Instance1 value', 'Instance', null, null, 'instance'), 133 this.addEntry(dt + 'classifier', function() 134 { 135 var cell1 = new mxCell('<<enumeration>><br><b>Enum1</b>', new mxGeometry(0, 0, 140, 70), 136 'swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;'); 137 cell1.vertex = true; 138 var field1 = new mxCell('literal1', 139 new mxGeometry(0, 0, 140, 30), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 140 field1.vertex = true; 141 cell1.insert(field1); 142 143 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 144 }), 145 this.addEntry(dt + 'interface generalization', function() 146 { 147 var edge = new mxCell('Interface1, Interface2...', new mxGeometry(-1, 0, 0, 0), 'html=1;verticalAlign=bottom;labelBackgroundColor=none;startArrow=oval;startFill=0;startSize=8;endArrow=none;'); 148 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 149 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 150 edge.geometry.relative = true; 151 edge.geometry.x = -1; 152 edge.geometry.y = 3; 153 edge.edge = true; 154 155 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Interface Generalization'); 156 }), 157 this.addEntry(dt + 'required interface', function() 158 { 159 var edge = new mxCell('Interface1', new mxGeometry(-1, 0, 0, 0), 'html=1;verticalAlign=bottom;labelBackgroundColor=none;startArrow=halfCircle;startFill=0;startSize=2;endArrow=none;'); 160 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 161 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 162 edge.geometry.relative = true; 163 edge.geometry.x = -1; 164 edge.geometry.y = 3; 165 edge.edge = true; 166 167 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Required Interface'); 168 }), 169 this.addEntry(dt + 'property', function() 170 { 171 var cell1 = new mxCell('0..1', new mxGeometry(0, 0, 120, 50), 172 'align=right;verticalAlign=top;spacingRight=2;'); 173 cell1.vertex = true; 174 var field1 = new mxCell('Property1', 175 new mxGeometry(0, 1, 120, 30), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;resizeWidth=1;'); 176 field1.geometry.relative = true; 177 field1.geometry.offset = new mxPoint(0, -30); 178 field1.vertex = true; 179 180 cell1.insert(field1); 181 182 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Property'); 183 }), 184 this.createVertexTemplateEntry('fontStyle=0;dashed=1;', 140, 30, 'Property1', 'Property', null, null, 'property'), 185 this.createVertexTemplateEntry('fontStyle=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=2;', 30, 30, 'port1', 'Port', null, null, 'port'), 186 this.addEntry(dt + 'port provided interface lollipop notation', function() 187 { 188 var cell1 = new mxCell('', new mxGeometry(0, 0, 30, 30), 'html=1;rounded=0;'); 189 cell1.vertex = true; 190 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=2;'); 191 edge1.geometry.relative = true; 192 edge1.edge = true; 193 cell1.insertEdge(edge1, true); 194 var cell2 = new mxCell('', new mxGeometry(52, 11, 8, 8), 'ellipse;html=1;fontSize=11;align=center;fillColor=none;points=[];aspect=fixed;resizable=0;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;flipH=1;'); 195 cell2.vertex = true; 196 cell2.insertEdge(edge1, false); 197 198 return sb.createEdgeTemplateFromCells([cell1, edge1, cell2], 60, 30, 'Port with provided interface'); 199 }), 200 this.addEntry(dt + 'port required interface lollipop notation', function() 201 { 202 var cell1 = new mxCell('', new mxGeometry(0, 0, 30, 30), 'html=1;rounded=0;'); 203 cell1.vertex = true; 204 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=2;'); 205 edge1.geometry.relative = true; 206 edge1.edge = true; 207 cell1.insertEdge(edge1, true); 208 var cell2 = new mxCell('', new mxGeometry(55, 10, 5, 10), 'shape=requiredInterface;html=1;fontSize=11;align=center;fillColor=none;points=[];aspect=fixed;resizable=0;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;flipH=1;'); 209 cell2.vertex = true; 210 cell2.insertEdge(edge1, false); 211 return sb.createEdgeTemplateFromCells([cell1, edge1, cell2], 60, 30, 'Port with required interface'); 212 }), 213 this.addEntry(dt + 'component', function() 214 { 215 var cell1 = new mxCell('', new mxGeometry(0, 0, 140, 200), 'fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;'); 216 cell1.vertex = true; 217 var cell2 = new mxCell('Component', new mxGeometry(0, 0, 140, 40), 'html=1;align=left;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 218 cell2.vertex = true; 219 cell1.insert(cell2); 220 var symbol = new mxCell('', new mxGeometry(1, 0, 16, 20), 'shape=module;jettyWidth=10;jettyHeight=4;'); 221 symbol.vertex = true; 222 symbol.geometry.relative = true; 223 symbol.geometry.offset = new mxPoint(-25, 9); 224 cell2.insert(symbol); 225 cell1.insert(divider.clone()); 226 var cell3 = new mxCell('provided interfaces', new mxGeometry(0, 0, 140, 25), 'html=1;align=center;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 227 cell3.vertex = true; 228 cell1.insert(cell3); 229 var cell4 = new mxCell('Interface1', new mxGeometry(0, 0, 140, 25), 'html=1;align=left;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 230 cell4.vertex = true; 231 cell1.insert(cell4); 232 cell1.insert(divider.clone()); 233 var cell5 = new mxCell('required interfaces', new mxGeometry(0, 0, 140, 25), 'html=1;align=center;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 234 cell5.vertex = true; 235 cell1.insert(cell5); 236 var cell6 = new mxCell('Interface2', new mxGeometry(0, 0, 140, 30), 'html=1;align=left;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 237 cell6.vertex = true; 238 cell1.insert(cell6); 239 240 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Component'); 241 }), 242 this.addEntry(dt + 'classifier', function() 243 { 244 var cell1 = new mxCell('', new mxGeometry(0, 0, 270, 230), 245 'shape=ellipse;container=1;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;html=1;dashed=1;collapsible=0;'); 246 cell1.vertex = true; 247 var field1 = new mxCell('Collaboration1', 248 new mxGeometry(0, 0, 270, 30), 'html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];resizeWidth=1;'); 249 field1.vertex = true; 250 cell1.insert(field1); 251 var divider1 = new mxCell('', new mxGeometry(39, 30, 192, 8), 'line;strokeWidth=1;fillColor=none;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;dashed=1;resizeWidth=1;'); 252 divider1.vertex = true; 253 cell1.insert(divider1); 254 var field2 = new mxCell('Classifier1', 255 new mxGeometry(0, 0, 100, 30), 'html=1;align=center;verticalAlign=middle;rotatable=0;'); 256 field2.geometry.relative = true; 257 field2.geometry.offset = new mxPoint(85, 50); 258 field2.vertex = true; 259 cell1.insert(field2); 260 var field3 = new mxCell('Collaboration use 1', 261 new mxGeometry(0, 0, 140, 30), 'shape=ellipse;html=1;align=center;verticalAlign=middle;rotatable=0;dashed=1;'); 262 field3.geometry.relative = true; 263 field3.geometry.offset = new mxPoint(65, 110); 264 field3.vertex = true; 265 cell1.insert(field3); 266 var assoc1 = new mxCell('property1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;endArrow=none;verticalAlign=middle;labelBackgroundColor=none;endSize=12;html=1;align=left;endFill=0;spacingLeft=4;'); 267 assoc1.geometry.relative = true; 268 assoc1.edge = true; 269 field2.insertEdge(assoc1, true); 270 field3.insertEdge(assoc1, false); 271 cell1.insert(assoc1); 272 var field4 = new mxCell('Classifier2', 273 new mxGeometry(0, 0, 100, 30), 'html=1;align=center;verticalAlign=middle;rotatable=0;'); 274 field4.geometry.relative = true; 275 field4.geometry.offset = new mxPoint(85, 170); 276 field4.vertex = true; 277 cell1.insert(field4); 278 var assoc2 = new mxCell('property1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;endArrow=none;verticalAlign=middle;labelBackgroundColor=none;endSize=12;html=1;align=left;endFill=0;spacingLeft=4;'); 279 assoc2.geometry.relative = true; 280 assoc2.edge = true; 281 field3.insertEdge(assoc2, true); 282 field4.insertEdge(assoc2, false); 283 cell1.insert(assoc2); 284 285 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 286 }), 287 this.createVertexTemplateEntry('shape=folder;fontStyle=1;tabWidth=80;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;', 150, 80, 288 'Package1', 'Package', null, null, dt + 'package'), 289 this.addEntry(dt + 'package', function() 290 { 291 var cell1 = new mxCell('Package1', new mxGeometry(0, 0, 150, 100), 292 'shape=folder;fontStyle=1;tabWidth=110;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;container=1;collapsible=0;recursiveResize=0;'); 293 cell1.vertex = true; 294 var field1 = new mxCell('Packaged element1', 295 new mxGeometry(0, 0, 110, 30), 'html=1;'); 296 field1.geometry.relative = true; 297 field1.geometry.offset = new mxPoint(20, 50); 298 field1.vertex = true; 299 cell1.insert(field1); 300 301 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Package'); 302 }), 303 this.addEntry(dt + 'model', function() 304 { 305 var cell1 = new mxCell('Model1', new mxGeometry(0, 0, 150, 80), 306 'shape=folder;fontStyle=1;tabWidth=110;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;folderSymbol=triangle;'); 307 cell1.vertex = true; 308 309 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Model'); 310 }), 311 this.addEntry(dt + 'stereotype', function() 312 { 313 var cell1 = new mxCell('', new mxGeometry(0, 0, 160, 75), 314 'shape=note2;size=25;childLayout=stackLayout;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;container=1;'); 315 cell1.vertex = true; 316 var field1 = new mxCell('<<stereotype1>>', 317 new mxGeometry(0, 0, 160, 25), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 318 field1.vertex = true; 319 cell1.insert(field1); 320 var field2 = new mxCell('stereotype property 1', 321 new mxGeometry(0, 0, 160, 25), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 322 field2.vertex = true; 323 cell1.insert(field2); 324 var field3 = new mxCell('stereotype property 2', 325 new mxGeometry(0, 0, 160, 25), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 326 field3.vertex = true; 327 cell1.insert(field3); 328 329 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Stereotype'); 330 }), 331 this.addEntry(dt + 'class', function() 332 { 333 var cell1 = new mxCell('Class1', new mxGeometry(0, 0, 140, 79), 334 'swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=29;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;'); 335 cell1.vertex = true; 336 var field1 = new mxCell('<<stereotype1>>', 337 new mxGeometry(0, 0, 140, 25), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 338 field1.vertex = true; 339 cell1.insert(field1); 340 var field2 = new mxCell('stereotype property 1', 341 new mxGeometry(0, 0, 140, 25), 'text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;'); 342 field2.vertex = true; 343 cell1.insert(field2); 344 345 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Class'); 346 }), 347 this.createVertexTemplateEntry('text;html=1;align=center;', 200, 25, 348 '<<stereotype1, stereotype2...>>', 'Stereotype Label', null, null, dt + 'stereotype label'), 349 this.createVertexTemplateEntry('ellipse;', 50, 25, 350 'icon', 'Icon', null, null, dt + 'icon'), 351 this.addEntry(dt + 'region', function() 352 { 353 var cell1 = new mxCell('', new mxGeometry(60, 0, 10, 100), 354 'line;strokeWidth=1;direction=south;html=1;dashed=1;dashPattern=20 20;'); 355 cell1.vertex = true; 356 357 var cell2 = new mxCell('Region 1', new mxGeometry(0, 40, 60, 20), 358 'text;align=right;'); 359 cell2.vertex = true; 360 361 var cell3 = new mxCell('Region 2', new mxGeometry(70, 40, 60, 20), 362 'text;align=left;'); 363 cell3.vertex = true; 364 365 return sb.createVertexTemplateFromCells([cell1, cell2, cell3], 130, cell1.geometry.height, 'Region'); 366 }), 367 this.addEntry(dt + 'state', function() 368 { 369 var cell1 = new mxCell('State1<br>[invariant1]<br><<extended/final>>', new mxGeometry(0, 0, 140, 176), 370 'swimlane;fontStyle=4;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=60;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;html=1;rounded=1;absoluteArcSize=1;arcSize=50;'); 371 cell1.vertex = true; 372 var field1 = new mxCell('', 373 new mxGeometry(0, 0, 140, 50), 'fillColor=none;strokeColor=none;container=1;collapsible=0;'); 374 field1.vertex = true; 375 cell1.insert(field1); 376 var field2 = new mxCell('State2', 377 new mxGeometry(30, 10, 80, 30), 'html=1;align=center;verticalAlign=middle;rounded=1;absoluteArcSize=1;arcSize=10;'); 378 field2.vertex = true; 379 field1.insert(field2); 380 cell1.insert(divider.clone()); 381 var field3 = new mxCell('behavior1', 382 new mxGeometry(0, 0, 140, 25), 'fillColor=none;strokeColor=none;align=left;verticalAlign=middle;spacingLeft=5;'); 383 field3.vertex = true; 384 cell1.insert(field3); 385 cell1.insert(divider.clone()); 386 var field4 = new mxCell('transition1', 387 new mxGeometry(0, 0, 140, 25), 'fillColor=none;strokeColor=none;align=left;verticalAlign=middle;spacingLeft=5;'); 388 field4.vertex = true; 389 cell1.insert(field4); 390 391 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'State'); 392 }), 393 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=1;', 140, 40, 394 'State1', 'State', null, null, dt + 'state'), 395 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 40, 396 'State', 'State', null, null, dt + 'state'), 397 this.createVertexTemplateEntry('shape=folder;align=center;verticalAlign=middle;fontStyle=0;tabWidth=100;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;rounded=1;absoluteArcSize=1;arcSize=10;', 140, 90, 398 'State1', 'State', null, null, dt + 'state'), 399 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 40, 400 'State1, State2, ...', 'State', null, null, dt + 'state'), 401 this.createVertexTemplateEntry('shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;', 140, 60, 402 'State1', 'State', null, null, dt + 'state'), 403 this.addEntry(dt + 'state entry point', function() 404 { 405 var cell1 = new mxCell('State1', new mxGeometry(40, 0, 140, 50), 406 'shape=umlState;rounded=1;verticalAlign=middle;align=center;absoluteArcSize=1;arcSize=10;umlStateConnection=connPointRefEntry;boundedLbl=1;'); 407 cell1.vertex = true; 408 var field1 = new mxCell('Entry1', 409 new mxGeometry(0, 40, 50, 20), 'text;verticalAlign=middle;align=center;'); 410 field1.vertex = true; 411 cell1.insert(field1); 412 413 return sb.createVertexTemplateFromCells([cell1, field1], 180, 60, 'State with entry point'); 414 }), 415 this.addEntry(dt + 'state exit point', function() 416 { 417 var cell1 = new mxCell('State1', new mxGeometry(40, 0, 140, 50), 418 'shape=umlState;rounded=1;verticalAlign=middle;spacingTop=0;absoluteArcSize=1;arcSize=10;umlStateConnection=connPointRefExit;boundedLbl=1;'); 419 cell1.vertex = true; 420 var field1 = new mxCell('Exit1', 421 new mxGeometry(0, 40, 50, 20), 'text;verticalAlign=middle;align=center;'); 422 field1.vertex = true; 423 cell1.insert(field1); 424 425 return sb.createVertexTemplateFromCells([cell1, field1], 180, 60, 'State with exit point'); 426 }), 427 this.createVertexTemplateEntry('ellipse;fillColor=#000000;strokeColor=none;', 30, 30, 428 '', 'Initial preudostate / node', null, null, dt + 'initial pseudostate'), 429 this.createVertexTemplateEntry('ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#000000;', 30, 30, 430 '', 'Final state / node', null, null, dt + 'final state'), 431 this.createVertexTemplateEntry('ellipse;fillColor=#ffffff;strokeColor=#000000;', 30, 30, 432 'H', 'Shallow History', null, null, dt + 'shallow history pseudostate'), 433 this.createVertexTemplateEntry('ellipse;fillColor=#ffffff;strokeColor=#000000;', 30, 30, 434 'H*', 'Deep History', null, null, dt + 'deep history pseudostate'), 435 this.createVertexTemplateEntry('ellipse;fillColor=#ffffff;strokeColor=#000000;', 30, 30, 436 '', 'Entry Point', null, null, dt + 'entry point pseudostate'), 437 this.createVertexTemplateEntry('shape=sumEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;backgroundOutline=1;', 30, 30, 438 '', 'Exit Point / Flow Final Node', null, null, dt + 'exit point pseudostate'), 439 this.createVertexTemplateEntry('ellipse;fillColor=#000000;strokeColor=none;', 20, 20, 440 '', 'Junction', null, null, dt + 'junction pseudostate'), 441 this.createVertexTemplateEntry('rhombus;', 30, 30, 442 '', 'Choice / Merge Node / Decision Node', null, null, dt + 'choice pseudostate merge decision node'), 443 this.createVertexTemplateEntry('shape=umlDestroy;', 30, 30, 444 '', 'Terminate', null, null, dt + 'terminate pseudostate'), 445 this.createVertexTemplateEntry('html=1;points=[];perimeter=orthogonalPerimeter;fillColor=#000000;strokeColor=none;', 5, 80, 446 '', 'Join/Fork Node', null, null, dt + 'join fork pseudostate'), 447 this.createVertexTemplateEntry('text;align=center;verticalAlign=middle;dashed=0;fillColor=#ffffff;strokeColor=#000000;', 140, 40, 448 'OpaqueAction1 spec.', 'Opaque Action', null, null, dt + 'opaque action'), 449 this.createVertexTemplateEntry('html=1;shape=mxgraph.infographic.ribbonSimple;notch1=20;notch2=0;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;flipH=1;fillColor=#FFFFFF;', 160, 40, 450 'Trigger1 spec.', 'Trigger', null, null, dt + 'trigger'), 451 this.createVertexTemplateEntry('html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;', 160, 40, 452 'SendSignalAction1', 'Send Signal Action', null, null, dt + 'send signal action'), 453 this.createVertexTemplateEntry('html=1;align=right;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=50;dashed=0;spacingTop=10;spacingRight=30;', 300, 160, 454 '<<singleExecution>>', 'Single Execution', null, null, dt + 'single execution'), 455 this.addEntry(dt + 'parameter', function() 456 { 457 var cell1 = new mxCell('', new mxGeometry(0, 10, 30, 30), 458 'fillColor=#ffffff;strokeColor=#000000;'); 459 cell1.vertex = true; 460 var field1 = new mxCell('Parameter1 spec.', 461 new mxGeometry(40, 0, 100, 20), 'text;verticalAlign=middle;align=center;'); 462 field1.vertex = true; 463 cell1.insert(field1); 464 var field2 = new mxCell('', 465 new mxGeometry(50, 25, 30, 15), 'triangle;whiteSpace=wrap;html=1;direction=north;'); 466 field2.vertex = true; 467 cell1.insert(field2); 468 469 return sb.createVertexTemplateFromCells([cell1, field1, field2], 140, 40, 'Parameter'); 470 }), 471 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 40, 472 'Action1', 'Action', null, null, dt + 'action'), 473 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=middle;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 70, 474 '<<external>><br>Action1<br>(partition1)', 'Activity Partition', null, null, dt + 'activity partition'), 475 this.addEntry(dt + 'object node', function() 476 { 477 var cell1 = new mxCell('ObjectNode1<br><br>[State1, State2...]', new mxGeometry(0, 0, 140, 60), 478 'html=1;align=center;verticalAlign=middle;rounded=0;absoluteArcSize=1;arcSize=10;dashed=0;'); 479 cell1.vertex = true; 480 var field1 = new mxCell('{annotation1}', 481 new mxGeometry(0, 60, 140, 30), 'text;verticalAlign=middle;align=center;'); 482 field1.vertex = true; 483 cell1.insert(field1); 484 485 return sb.createVertexTemplateFromCells([cell1, field1], 140, 90, 'Object Node'); 486 }), 487 this.addEntry(dt + 'activity parameter node', function() 488 { 489 var cell1 = new mxCell('Parameter1 spec.', new mxGeometry(0, 0, 140, 60), 490 'html=1;align=center;verticalAlign=middle;rounded=0;absoluteArcSize=1;arcSize=10;dashed=0;'); 491 cell1.vertex = true; 492 var field1 = new mxCell('{stream}', 493 new mxGeometry(0, 60, 140, 30), 'text;verticalAlign=middle;align=center;'); 494 field1.vertex = true; 495 cell1.insert(field1); 496 497 return sb.createVertexTemplateFromCells([cell1, field1], 140, 90, 'Activity Parameter Node'); 498 }), 499 this.createVertexTemplateEntry('html=1;shape=mxgraph.infographic.ribbonSimple;notch1=20;notch2=20;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;', 160, 40, 500 'ObjectNode1', 'Object Node', null, null, dt + 'object node'), 501 this.addEntry('behavior selection transformation decision input', function() 502 { 503 var cell = new mxCell('Behavior1 spec.', new mxGeometry(0, 0, 160, 60), 'shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=left;spacingLeft=5;'); 504 cell.vertex = true; 505 var label = new mxCell('<<keyword>>', new mxGeometry(0, 0, cell.geometry.width, 25), 'resizeWidth=1;part=1;strokeColor=none;fillColor=none;align=left;spacingLeft=5;'); 506 label.geometry.relative = true; 507 label.vertex = true; 508 cell.insert(label); 509 510 return sb.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Behavior'); 511 }), 512 this.createVertexTemplateEntry('html=1;points=[];perimeter=orthogonalPerimeter;fillColor=#000000;strokeColor=none;align=left;verticalAlign=top;spacingLeft=10;', 5, 80, 513 '{joinSpec = join spec}', 'Join Node', null, null, dt + 'join node'), 514 this.addDataEntry('activity partition', 180, 200, 'Activity Partition', '7ZjRbtowFIafJrdTnMBobwltbzZpWvcCLjkQa45P5Jw20KefnRjCBikBnKlURUGyj30c5/vt/JggTvLVg+ZF9h1TkEF8F8SJRqSmlK8SkDKIQpEG8SyIotB8g+i+o5XVrWHBNSjqkxA1CS9cPkMTSUUOqhSo3FglraVrKjNe2CLxJxuaZpSbCc+YKVaZIHgs+Ny2V+ZxTKwkrulRvNqQmUY8naMiLhRolzRHKXlRinq0Wd0jEzL9xtf4TJv7bGrThZAyQYk2W6GyEygrkUuu4H6nKYjiRf2pZ6DxN/yT5J4YNMGqk1odcsgeAHMgvTZdKpFS5nrcNGTDDMQyc2lR6IK8bALLbW4rgik4HQ5rEu9p0qmEmTIJLn/CnLha9hFln3mqsfjF9RLIBQoUikDfvRgapYsdgE9YuEYJi03uExJh7iragdkOWkMZT81lMCXhl3EwNk+TmDpr6+ay3TUlqIyAZsHYMYCXVEFJF6kaHVZ1vRGvyTgu8uUaj4bVWCnbu9W4Uz7Wysd25WM78tkyGrILiZWpZiJNQV2kQ3x0d0UDcR/vcf9h8dKb77t3q8AlsFedi36oNf+1m/0Vrn4P7Fn4/+BPrslU+uri0VQ8+Meop39MPMh5072X4uvbSxlq8Wp/HEp3l15qTM5yER/0bz+Ae1+C+DTv8EGchZ/IT7EML8zZp2cM7RmM9TSNWx+C7p/2t64xur7tdJ5rsONH+0O24YX/wCf79/MS64J8mnF4Yf4RTto+mPd1jjOgm2r7j2Xd9tcfmn8A'), 515 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=20;dashed=1;', 200, 100, 516 '', 'Interruptible Activity Region', null, null, dt + 'interruptible activity region'), 517 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=middle;rounded=1;absoluteArcSize=1;arcSize=10;dashed=1;', 140, 40, 518 'State1', 'State', null, null, dt + 'state'), 519 this.addEntry('constraint precondition postcondition selection transformation decision input', function() 520 { 521 var cell = new mxCell('Constraint1 spec.', new mxGeometry(0, 0, 160, 60), 'shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=left;spacingLeft=5;'); 522 cell.vertex = true; 523 var label = new mxCell('<<keyword>>', new mxGeometry(0, 0, cell.geometry.width, 25), 'resizeWidth=1;part=1;strokeColor=none;fillColor=none;align=left;spacingLeft=5;'); 524 label.geometry.relative = true; 525 label.vertex = true; 526 cell.insert(label); 527 528 return sb.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Constraint / Precondition / Postcondition'); 529 }), 530 this.createVertexTemplateEntry('fontStyle=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=2;html=1;', 30, 30, 531 'Pin1<br>[State1]<br>{control}<br>Parameter1 spec.', 532 'Port', null, null, 'port'), 533 this.addEntry('object flow', function() 534 { 535 var cell1 = new mxCell('', new mxGeometry(50, 0, 30, 30), 'html=1;rounded=0;'); 536 cell1.vertex = true; 537 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 538 edge1.geometry.setTerminalPoint(new mxPoint(0, 15), true); 539 edge1.geometry.relative = true; 540 edge1.edge = true; 541 cell1.insertEdge(edge1, false); 542 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 543 edge2.geometry.setTerminalPoint(new mxPoint(130, 15), false); 544 edge2.geometry.relative = true; 545 edge2.edge = true; 546 cell1.insertEdge(edge2, true); 547 548 return sb.createEdgeTemplateFromCells([cell1, edge1, edge2], 160, 30, 'Object Flow'); 549 }), 550 this.createVertexTemplateEntry('fontStyle=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=2;html=1;points=[[0,0.5],[1,0.5]];fillColor=#000000;strokeColor=none;', 30, 30, '', 'Pin ', null, null, 'pin'), 551 this.createVertexTemplateEntry('shape=mxgraph.uml25.inputPin;html=1;points=[[0,0.5],[1,0.5]];', 30, 30, '', 'Input Pin', null, null, 'input pin'), 552 this.createVertexTemplateEntry('shape=mxgraph.uml25.inputPin;html=1;points=[[0,0.5],[1,0.5]];strokeColor=#ffffff;fillColor=#000000;', 30, 30, '', 'Input Pin', null, null, 'input pin'), 553 this.createVertexTemplateEntry('shape=mxgraph.uml25.inputPin;html=1;points=[[0,0.5],[1,0.5]];flipH=1;', 30, 30, '', 'Output Pin', null, null, 'output pin'), 554 this.createVertexTemplateEntry('shape=mxgraph.uml25.inputPin;html=1;points=[[0,0.5],[1,0.5]];strokeColor=#ffffff;fillColor=#000000;flipH=1;', 30, 30, '', 'Output Pin', null, null, 'output pin'), 555 this.createVertexTemplateEntry('shape=mxgraph.uml25.behaviorAction;html=1;rounded=1;absoluteArcSize=1;arcSize=10;align=left;spacingLeft=5;', 190, 60, 'CallBehaviorAction1', 'Behavior Action', null, null, 'behavior action'), 556 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=top;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 40, 557 'Action1<br>(Operation1)', 'Call Operation Action', null, null, dt + 'call operation action'), 558 this.createVertexTemplateEntry('html=1;align=center;verticalAlign=middle;rounded=1;absoluteArcSize=1;arcSize=10;dashed=0;', 140, 40, 559 'ValueSpecAction1 spec.', 'Value Specification Action', null, null, dt + 'value specification action'), 560 this.addEntry(dt + 'action with output', function() 561 { 562 var cell1 = new mxCell('Action1', new mxGeometry(0, 20, 110, 40), 563 'shape=mxgraph.uml25.action;html=1;align=center;verticalAlign=middle;absoluteArcSize=1;arcSize=10;dashed=0;spacingRight=10;'); 564 cell1.vertex = true; 565 var field1 = new mxCell('variable1', 566 new mxGeometry(110, 0, 60, 30), 'text;verticalAlign=middle;align=left;'); 567 field1.vertex = true; 568 cell1.insert(field1); 569 570 return sb.createVertexTemplateFromCells([cell1, field1], 170, 60, 'Action with output'); 571 }), 572 this.addEntry(dt + 'action with input', function() 573 { 574 var cell1 = new mxCell('Action1', new mxGeometry(60, 0, 110, 40), 575 'shape=mxgraph.uml25.action;html=1;align=center;verticalAlign=middle;absoluteArcSize=1;arcSize=10;dashed=0;spacingLeft=10;flipH=1;'); 576 cell1.vertex = true; 577 var field1 = new mxCell('variable1', 578 new mxGeometry(0, 0, 60, 40), 'text;verticalAlign=middle;align=right;'); 579 field1.vertex = true; 580 cell1.insert(field1); 581 582 return sb.createVertexTemplateFromCells([cell1, field1], 170, 40, 'Action with input'); 583 }), 584 this.addEntry(dt + 'read self object action', function() 585 { 586 var cell1 = new mxCell('Action1', new mxGeometry(60, 0, 110, 40), 587 'shape=mxgraph.uml25.action;html=1;align=center;verticalAlign=middle;absoluteArcSize=1;arcSize=10;dashed=0;spacingLeft=10;flipH=1;'); 588 cell1.vertex = true; 589 590 var field1 = new mxCell('self', 591 new mxGeometry(0, 0, 60, 40), 'text;verticalAlign=middle;align=right;'); 592 field1.vertex = true; 593 cell1.insert(field1); 594 595 return sb.createVertexTemplateFromCells([cell1, field1], 170, 40, 'Read self object action'); 596 }), 597 this.addEntry(dt + 'value specification action', function() 598 { 599 var cell1 = new mxCell('Action1', new mxGeometry(60, 0, 110, 40), 600 'shape=mxgraph.uml25.action;html=1;align=center;verticalAlign=middle;absoluteArcSize=1;arcSize=10;dashed=0;spacingLeft=10;flipH=1;'); 601 cell1.vertex = true; 602 var field1 = new mxCell('value1', 603 new mxGeometry(0, 0, 60, 40), 'text;verticalAlign=middle;align=right;'); 604 field1.vertex = true; 605 cell1.insert(field1); 606 607 return sb.createVertexTemplateFromCells([cell1, field1], 170, 40, 'Value specification action'); 608 }), 609 this.createVertexTemplateEntry('html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;', 160, 40, 610 'SendObjectAction1', 'Send Object Action', null, null, dt + 'send object action'), 611 this.createVertexTemplateEntry('html=1;shape=mxgraph.infographic.ribbonSimple;notch1=20;notch2=0;align=center;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#FFFFFF;flipH=0;spacingRight=0;spacingLeft=14;', 170, 40, 612 'AcceptEventAction1', 'Accept Event Action', null, null, dt + 'acceppt event action'), 613 this.createVertexTemplateEntry('shape=collate;whiteSpace=wrap;html=1;', 40, 40, 614 '', 'Time Event Trigger', null, null, dt + 'time event trigger'), 615 this.createVertexTemplateEntry('shape=mxgraph.uml25.actionParams;html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;spacingLeft=10;spacingTop=5;', 150, 50, 616 'Action1', 'Action with Parameters', null, null, dt + 'action with parameters'), 617 this.createVertexTemplateEntry('dashed=1;rounded=1;absoluteArcSize=1;arcSize=20;html=1;verticalAlign=top;align=left;spacingTop=5;spacingLeft=10;', 200, 100, 618 '<<structured>>', 'Structured Activity Node', null, null, dt + 'structured activity node'), 619 this.addDataEntry(dt + 'expansion', 300, 300, 'Expansion', '7ZtRr5owFMc/DY93oa0693j1bncPW7JkS/bcXSqQVTFQvbJPv2ILDi8Glnha2pBo4jmlpf218e8/RwKy3p6ec7pPvmYR4wH5GJB1nmVCfdqe1ozzAIdpFJCnAONQvgP86UYrOreGe5qznRjSAasOR8oPTGUCvKDbfUBWXA6wake/Wfma5VGTjFuX6KgarxAl1+MlYitX9YRkW0SLhEU6yLPDLmoi+qvI+EGwx/zle/qH1dkmkssgqyPLRfpC+SNP451Miqy6LdURZ5tqAsWevqS7+EfVprrpzJdzu0rpVcvx2OkmuXNKY3tm2ZaJvJSXvKaRSNQVJFR0w4SlcSKukrRQibjpe9kI+UHvRfe+kI59uQIbS4LV+nNWSEY/9azCJvO5ntPgBePeBS871qtPWJgzTkV6ZK3huxjoO3zLUnljHJ5qbKpHqcIHdEUx22wKJt4wbOY5COusH+sgnPtq7ueJzVfyJae6DoO57L6uonfzVozqSL4G7gTp3QkMsBN3RT2fUPcfegxxyBcT+X7yMwjy7yfy/eQXEOSXI9LLdgcz6vmAkAn9/ODIAV+6r5/1/k2sjQsoQhN6SwqKugzphN6EhKIxec7SgoYacaAI0IKiqwOOWgcc/d8BRx54UARoQn2ADSqigDbUI/YwKgpoRD1iDyOj47WiNkTVkDFFgM70vifeA2taT2aCbV5WMaA39Yg9iKzWqCf25mV1rBXRLo7Le0lnWzkJCFdXSqI+1ESdKYpagl1CCqcrZVG77GGE05XCqF32MMI5Jj9604EalNGLI70vZ1dqoz4UR+ufQhNs80JKXKmO2mUPIqQE0IF6xB5ESMmYHOjN/xi57keJK36UeOBHiSt+1BJsUBl1xY/aZQ8jo674UbvsYWR0TH50YH3UfXdKXHGnxAN3Wn9nTbDNy+rMFXdqlz2IrM5ccad22d9DVmV4eUhYXf7vM8R/AQ=='), 620 this.addEntry(dt + 'execution region', function() 621 { 622 var cell1 = new mxCell('Action', new mxGeometry(0, 0, 160, 50), 623 'html=1;dashed=0;rounded=1;absoluteArcSize=1;arcSize=20;verticalAlign=middle;align=center;'); 624 cell1.vertex = true; 625 var label1 = new mxCell('*', 626 new mxGeometry(1, 0.5, 20, 20), 'text;resizeWidth=0;resizeHeight=0;points=[];part=1;verticalAlign=middle;align=center;'); 627 label1.vertex = true; 628 label1.geometry.relative = true; 629 label1.geometry.offset = new mxPoint(-20, -10); 630 cell1.insert(label1); 631 632 return sb.createVertexTemplateFromCells([cell1], 160, 50, 'Execution region'); 633 }), 634 this.addDataEntry(dt + 'execution node action', 210, 60, 'Execution node with action', '7ZhNb4MwDIZ/TY6bklC67tjSrbtMmrTDzhm4ECk0KKRdu18/UwJdvwSTyr6EBBJ24uT1E0sWIV6QrmdGZMmjjkAR7454gdHall/pOgClCKcyIt6UcE7xJfz+zCjbjtJMGFjYNgG8DFgJtYTSMw6t1Au3UG43yvkTm6K6KSPeJBJ5AsUCFA2jl4toaxVD4jXXamlhbMJn+Q6Vt7Z4EbICY2Uo1FjJeIHOVEZRsc1EOEeI6sGgw6nD+bA+m+HW5dKbgU7Bmg1OeZORTVyWrKRAE5Bx4sKGzify0o7r0B0v/HDITuPzjvAdcYsRUFZwghwRvDhRtPY8VJJo23x5Y76jE+m6QqAGlLByBXvLn2LgdnjSEjfm1Onx3DKb0rxiBxT1fJ6DPWJY62yFddCMtRXOrNC+FeZP8EGpASU+hgeFde3v2ayy8Gl5El5z5XVwEhdF7feom4ued1Hkw558M/lBF+RvevLN5A/b40XIj35Rv9zsBfyj7nnbXXmzg/Jme+XNvlbeo7/fPavz61l/e/tkrEf/Q/2THf819ug7aaBo7u4Cyumfrwo+AA=='), 635 this.addEntry(dt + 'interaction', function() 636 { 637 var cell1 = new mxCell('Interaction1 heading', new mxGeometry(0, 0, 290, 160), 638 'shape=umlFrame;tabWidth=110;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;width=140;height=30;recursiveResize=0;'); 639 cell1.vertex = true; 640 var field1 = new mxCell('Property1', 641 new mxGeometry(0, 0, 100, 20), 'text'); 642 field1.geometry.relative = true; 643 field1.geometry.offset = new mxPoint(20, 40); 644 field1.vertex = true; 645 cell1.insert(field1); 646 var field2 = new mxCell('Property2', 647 new mxGeometry(0, 0, 150, 60), 'shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=left;spacingLeft=10;'); 648 field2.geometry.relative = true; 649 field2.geometry.offset = new mxPoint(120, 80); 650 field2.vertex = true; 651 cell1.insert(field2); 652 653 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Interaction'); 654 }), 655 this.addDataEntry(dt + 'lifeline sequence participant', 220, 300, 'Lifelines', '1ZPBbsMgDIafhjuFN2iy9bJJ0/oELPEKEgQETpPu6ecEaDRpkXbYDjsgmc/+4/gHmGzcfIoq6Gffg2Xygckmeo85cnMD1jLBTc9ky4TgtJh43Mke1iwPKsKAPxGILLgqO0ImT+YdrBmgfCrhzZZM0ios4ehsLWLyGCAaBwiRMrbgl40dJ20QzkF1i3SiQYlpdDRpe6Cw8wMqksT73loVknlbu3IiEboxJnOFV0jmo1I/4tKp8cMAHRZYhoGIMO8asqLixgk8/We8UclketSlgmfTuAZz0UUmK1Qpg8tdu/lLQbH4e7vlrt3iH9pd+7cqaeh/4QyqoFzaPzkT2m7Pa819eX2f'), 656 this.addDataEntry(dt + 'lifeline execution', 220, 300, 'Lifelines', '5ZTbasMwDIafxvdu3MB223TrzQZjewIvVWuDYhlH6WFPPydx2m5pR2FsDEYISL8syfoQFqqodougvXmkJaBQd0IVgYh7q9oVgCgyaZdCzUWWyfiL7P5CdNJFpdcBHF+TkPUJG40N9MqDXQFaBylS8x5TpDbat2ZT4XBIqJmHYCtgCDGCSX46arOtsQwvXpdt6jYOGjXDVZx0PolmSY51TAkHH1H72r52XWVUApRNqO0GnqG2b4NKDbedCnIOSk5iGgYCw+4ikE5KNBZA8Z5hH48MCQmY3Nolm6TJpBmwa5PKqEHUdS+sD7WOvKORkJ/Hr0b4R9RPWHmyjrtu+Uzk80/wKbChNTmNp/hXFrEgpNBVUzey/a5FlX2Japr3GfvevT0HbsztAPg73KYX13byz9b2V9Y0//E1vQrB9I+sY3SPL3QX+/CAvwM='), 657 this.addDataEntry(dt + 'destruction occurence specification', 100, 300, 'Destruction Occurence Specification', 'lZJBboMwEEVP471jZ9F1oM2mlaL2BC5MY0sGW/YQoKfvgE1oVVI1C6SZP/Nt/pOZLJrhGJTXL64Gy+Qjk0VwDlPVDAVYywQ3NZMlE4LTx8TTjelunnKvArT4H4NIhouyHSTl2XyANS3koyKONk+iVn4qu8YuS0wePATTAEKgic3yadUOvTYIb15Vk7WnoKRpbChpuaOyci0qsoRrb63y0bzPt3JSAlRdiOYCrxDN56K6DqebCte2UGEWcxgICMNNILOUaRzB0X+GkVZ6U6POGzxB4xrMWWebXEQVk3C+ele+VGTE27jlL9x/US4hYnAjBatV1FDfk1JspxyWMMkx5uWH3H+DsN9gsL8fAbXra55nPx77Fw=='), 658 this.addEntry(dt + 'interaction', function() 659 { 660 var cell1 = new mxCell('Interaction1 heading', new mxGeometry(0, 0, 290, 250), 661 'shape=umlFrame;tabWidth=110;tabHeight=30;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;width=140;height=30;'); 662 cell1.vertex = true; 663 var field1 = new mxCell('[constraint1]', 664 new mxGeometry(0, 0, 100, 20), 'text'); 665 field1.geometry.relative = true; 666 field1.geometry.offset = new mxPoint(20, 40); 667 field1.vertex = true; 668 cell1.insert(field1); 669 var field2 = new mxCell('[constraint2]', 670 new mxGeometry(0, 125, 290, 10), 'line;strokeWidth=1;dashed=1;labelPosition=center;verticalLabelPosition=bottom;align=left;verticalAlign=top;spacingLeft=20;spacingTop=15;'); 671 field2.geometry.relative = false; 672 field2.vertex = true; 673 cell1.insert(field2); 674 675 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Interaction'); 676 }), 677 this.addEntry(dt + 'lifeline continuation', function() 678 { 679 var cell1 = new mxCell('Continuation1', new mxGeometry(30, 60, 160, 30), 680 'rounded=1;dashed=0;'); 681 cell1.vertex = true; 682 var cell2 = new mxCell('Lifeline1', new mxGeometry(0, 0, 100, 200), 683 'shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;'); 684 cell2.vertex = true; 685 var cell3 = new mxCell('Lifeline2', new mxGeometry(120, 0, 100, 200), 686 'shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;'); 687 cell3.vertex = true; 688 689 return sb.createVertexTemplateFromCells([cell1, cell2, cell3], 220, 200, 'Lifeline Continuation'); 690 }), 691 this.addEntry(dt + 'lifeline state invariant', function() 692 { 693 var cell1 = new mxCell('Lifeline1', new mxGeometry(0, 0, 100, 200), 694 'shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;'); 695 cell1.vertex = true; 696 var cell2 = new mxCell('State1 inv.', new mxGeometry(10, 50, 80, 30), 697 'rounded=1;dashed=0;point=[];connectable=0;'); 698 cell2.vertex = true; 699 cell1.insert(cell2); 700 var cell3 = new mxCell('{State2 inv.}', new mxGeometry(0, 140, 100, 30), 701 'text;align=center;point=[];connectable=0;'); 702 cell3.vertex = true; 703 cell1.insert(cell3); 704 705 return sb.createVertexTemplateFromCells([cell1], 100, 200, 'Lifeline State Invariant'); 706 }), 707 this.addEntry(dt + 'interaction use', function() 708 { 709 var cell1 = new mxCell('ref', new mxGeometry(0, 0, 260, 120), 710 'shape=umlFrame;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;width=50;height=30;'); 711 cell1.vertex = true; 712 var field1 = new mxCell('Interaction1', 713 new mxGeometry(0, 0, 100, 20), 'text;align=center;'); 714 field1.geometry.relative = true; 715 field1.geometry.offset = new mxPoint(60, 50); 716 field1.vertex = true; 717 cell1.insert(field1); 718 719 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Interaction'); 720 }), 721 this.addEntry(dt + 'lifeline state invariant', function() 722 { 723 var cell1 = new mxCell('Lifeline1', new mxGeometry(0, 0, 100, 200), 724 'shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;'); 725 cell1.vertex = true; 726 var cell2 = new mxCell('', new mxGeometry(30, 70, 40, 20), 727 'shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;fillColor=none;point=[];connectable=0;'); 728 cell2.vertex = true; 729 cell1.insert(cell2); 730 var cell3 = new mxCell('', new mxGeometry(30, 150, 40, 20), 731 'shape=partialRectangle;whiteSpace=wrap;html=1;top=0;fillColor=none;point=[];connectable=0;'); 732 cell3.vertex = true; 733 cell1.insert(cell3); 734 735 return sb.createVertexTemplateFromCells([cell1], 100, 200, 'Lifeline'); 736 }), 737 this.addEntry(dt + 'use case', function() 738 { 739 var cell1 = new mxCell('Class1', new mxGeometry(0, 0, 180, 140), 740 'swimlane;fontStyle=1;align=center;horizontal=1;startSize=30;collapsible=0;html=1;'); 741 cell1.vertex = true; 742 var field1 = new mxCell('heading1', 743 new mxGeometry(0, 0, 140, 70), 'shape=umlFrame;tabPosition=left;html=1;boundedLbl=1;labelInHeader=1;width=80;height=30;swimlaneFillColor=#ffffff;align=left;spacingLeft=5;'); 744 field1.geometry.relative = true; 745 field1.geometry.offset = new mxPoint(20, 50); 746 field1.vertex = true; 747 cell1.insert(field1); 748 var field2 = new mxCell('Interaction1', 749 new mxGeometry(0, 0, 100, 20), 'text;align=left;'); 750 field2.geometry.relative = true; 751 field2.geometry.offset = new mxPoint(10, 40); 752 field2.vertex = true; 753 field1.insert(field2); 754 755 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Use Case'); 756 }), 757 this.addEntry('observation', function() 758 { 759 var edge = new mxCell('observation', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=center;verticalAlign=bottom;endFill=0;'); 760 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 761 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 762 edge.geometry.relative = true; 763 edge.geometry.x = 0; 764 edge.geometry.y = 3; 765 edge.edge = true; 766 767 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Observation'); 768 }), 769 this.addEntry('time constraint', function() 770 { 771 var edge = new mxCell('{Time constraint 1}', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=center;verticalAlign=bottom;endFill=0;'); 772 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 773 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 774 edge.geometry.relative = true; 775 edge.geometry.x = 0; 776 edge.geometry.y = 3; 777 edge.edge = true; 778 779 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Time constraint'); 780 }), 781 this.addEntry('duration constraint', function() 782 { 783 var edge = new mxCell('{Duration constraint 1}', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;endSize=12;startArrow=open;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=center;verticalAlign=bottom;endFill=0;'); 784 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 785 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 786 edge.geometry.relative = true; 787 edge.geometry.x = 0; 788 edge.geometry.y = 3; 789 edge.edge = true; 790 791 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Duration constraint'); 792 }), 793 this.addEntry(dt + 'classifier', function() 794 { 795 var cell1 = new mxCell('', new mxGeometry(0, 0, 180, 120), 796 'shape=ellipse;container=1;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;html=1;dashed=0;collapsible=0;'); 797 cell1.vertex = true; 798 var field1 = new mxCell('UseCase1', 799 new mxGeometry(0, 0, 180, 30), 'html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rotatable=0;'); 800 field1.vertex = true; 801 cell1.insert(field1); 802 var divider1 = new mxCell('', new mxGeometry(9, 30, 162, 10), 'line;strokeWidth=1;fillColor=none;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;dashed=0;resizeWidth=1;'); 803 divider1.vertex = true; 804 cell1.insert(divider1); 805 var field2 = new mxCell('extension points', 806 new mxGeometry(0, 40, 180, 30), 'text;html=1;align=center;verticalAlign=middle;rotatable=0;'); 807 field2.vertex = true; 808 cell1.insert(field2); 809 var field3 = new mxCell('Extension point 1', 810 new mxGeometry(0, 70, 180, 30), 'text;html=1;align=left;verticalAlign=middle;rotatable=0;spacingLeft=25;'); 811 field3.vertex = true; 812 cell1.insert(field3); 813 814 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Classifier'); 815 }), 816 this.addEntry(dt + 'extension point classifier', function() 817 { 818 var cell1 = new mxCell('', new mxGeometry(0, 0, 160, 88), 'fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;'); 819 cell1.vertex = true; 820 var cell2 = new mxCell('UseCase1', new mxGeometry(0, 0, 160, 30), 'html=1;align=left;spacingLeft=4;verticalAlign=middle;strokeColor=none;fillColor=none;fontStyle=1'); 821 cell2.vertex = true; 822 cell1.insert(cell2); 823 var symbol = new mxCell('', new mxGeometry(1, 0, 20, 16), 'shape=ellipse;'); 824 symbol.vertex = true; 825 symbol.geometry.relative = true; 826 symbol.geometry.offset = new mxPoint(-25, 7); 827 cell2.insert(symbol); 828 cell1.insert(divider.clone()); 829 var cell3 = new mxCell('extension points', new mxGeometry(0, 0, 160, 25), 'html=1;align=center;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 830 cell3.vertex = true; 831 cell1.insert(cell3); 832 var cell4 = new mxCell('Extension point 1', new mxGeometry(0, 0, 160, 25), 'html=1;align=left;spacingLeft=4;verticalAlign=top;strokeColor=none;fillColor=none;'); 833 cell4.vertex = true; 834 cell1.insert(cell4); 835 836 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Extension Point Classifier'); 837 }), 838 this.createVertexTemplateEntry('shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;', 30, 60, 'Actor', 'Actor', false, null, 'uml actor'), 839 this.createVertexTemplateEntry('text;html=1;align=center;verticalAlign=middle;dashed=0;fillColor=#ffffff;strokeColor=#000000;', 160, 70, 840 '<<actor>><br><br><b>Actor1</b>', 841 'Actor', null, null, dt + 'actor'), 842 843 this.addEntry('extension point extend', function() 844 { 845 var cell = new mxCell('Extension point 1', new mxGeometry(0, 0, 140, 60), 'shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=left;spacingLeft=5;'); 846 cell.vertex = true; 847 var label = new mxCell('Extend condition 1', new mxGeometry(0, 0, cell.geometry.width, 25), 'resizeWidth=1;part=1;strokeColor=none;fillColor=none;align=left;spacingLeft=5;'); 848 label.geometry.relative = true; 849 label.vertex = true; 850 cell.insert(label); 851 852 return sb.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Extension'); 853 }), 854 this.addEntry('deployment target diagram', function() 855 { 856 var cell1 = new mxCell('DeploymentTarget1', new mxGeometry(0, 0, 130, 140), 'verticalAlign=top;align=left;shape=cube;size=10;direction=south;fontStyle=0;html=1;boundedLbl=1;spacingLeft=5;'); 857 cell1.vertex = true; 858 var cell2 = new mxCell('Node1', new mxGeometry(0, 0, 100, 80), 'verticalAlign=top;align=center;shape=cube;size=10;direction=south;html=1;boundedLbl=1;spacingLeft=5;'); 859 cell2.geometry.relative = true; 860 cell2.geometry.offset = new mxPoint(10, 50); 861 cell2.vertex = true; 862 cell1.insert(cell2); 863 864 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Deployment'); 865 }), 866 this.createVertexTemplateEntry('text;html=1;align=center;verticalAlign=middle;dashed=0;fillColor=#ffffff;strokeColor=#000000;', 180, 60, 867 '<<deployment spec>><br><br><b>Deployment1</b>', 868 'Deployment Specification', null, null, dt + 'deployment specification'), 869 this.createVertexTemplateEntry('text;html=1;align=center;verticalAlign=middle;dashed=0;fillColor=#ffffff;strokeColor=#000000;', 180, 60, 870 '<<artifact>><br><br><b>Artifact1</b>', 871 'Artifact', null, null, dt + 'artifact'), 872 this.addEntry('information item', function() 873 { 874 var cell1 = new mxCell('InformationItem1', new mxGeometry(0, 0, 200, 50), 'align=left;spacingLeft=10;html=1;dashed=0;'); 875 cell1.vertex = true; 876 var cell2 = new mxCell('', new mxGeometry(1, 0.5, 30, 20), 'shape=triangle;fillColor=#000000;'); 877 cell2.geometry.relative = true; 878 cell2.geometry.offset = new mxPoint(-45, -10); 879 cell2.vertex = true; 880 cell1.insert(cell2); 881 882 return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Information item'); 883 }), 884 this.addEntry('template binding', function() 885 { 886 var edge = new mxCell('<<bind>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=bottom;dashed=1;endFill=0;labelBackgroundColor=none;'); 887 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 888 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 889 edge.geometry.relative = true; 890 edge.edge = true; 891 var cell1 = new mxCell('Binding1 information', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=center;verticalAlign=top;labelBackgroundColor=none;'); 892 cell1.geometry.relative = true; 893 cell1.setConnectable(false); 894 cell1.vertex = true; 895 edge.insert(cell1); 896 897 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Template Binding'); 898 }), 899 this.createEdgeTemplateEntry('endArrow=circlePlus;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;labelBackgroundColor=none;', 160, 0, '', 'Inner class', null, 'inner class'), 900 this.createEdgeTemplateEntry('endArrow=open;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;', 160, 0, '<<keyword>>', 'Element / Package Merge / Package Import, Substitution', null, 'element package import substitution merge'), 901 this.createEdgeTemplateEntry('endArrow=none;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;dashPattern=10 10;', 160, 0, '{constraint spec.}', 'Constraint', null, 'constraint'), 902 this.addEntry('dependency', function() 903 { 904 var edge = new mxCell('<<keyword>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=bottom;dashed=1;endFill=0;labelBackgroundColor=none;'); 905 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 906 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 907 edge.geometry.relative = true; 908 edge.edge = true; 909 var cell1 = new mxCell('Dependency1', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=center;verticalAlign=top;labelBackgroundColor=none;'); 910 cell1.geometry.relative = true; 911 cell1.setConnectable(false); 912 cell1.vertex = true; 913 edge.insert(cell1); 914 915 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Dependency'); 916 }), 917 this.addEntry('dependency', function() 918 { 919 var cell1 = new mxCell('', new mxGeometry(68, 38, 4, 4), 'ellipse;resizable=0;aspect=fixed;fillColor=#000000;'); 920 cell1.vertex = true; 921 var edge1 = new mxCell('<<keyword>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=bottom;dashed=1;endFill=0;labelBackgroundColor=none;spacingBottom=35;'); 922 edge1.geometry.setTerminalPoint(new mxPoint(0, 0), true); 923 edge1.geometry.relative = true; 924 edge1.edge = true; 925 cell1.insertEdge(edge1, false); 926 var edge2 = new mxCell('<<keyword>>', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;dashed=1;endFill=0;labelBackgroundColor=none;spacingTop=35;'); 927 edge2.geometry.setTerminalPoint(new mxPoint(0, 80), true); 928 edge2.geometry.relative = true; 929 edge2.edge = true; 930 cell1.insertEdge(edge2, false); 931 var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=bottom;dashed=1;endFill=0;labelBackgroundColor=none;spacingBottom=35;'); 932 edge3.geometry.setTerminalPoint(new mxPoint(140, 0), false); 933 edge3.geometry.relative = true; 934 edge3.edge = true; 935 cell1.insertEdge(edge3, true); 936 var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;dashed=1;endFill=0;labelBackgroundColor=none;spacingTop=35;'); 937 edge4.geometry.setTerminalPoint(new mxPoint(140, 80), false); 938 edge4.geometry.relative = true; 939 edge4.edge = true; 940 cell1.insertEdge(edge4, true); 941 942 return sb.createEdgeTemplateFromCells([cell1, edge1, edge2, edge3, edge4], 140, 80, 'Dependency'); 943 }), 944 this.createEdgeTemplateEntry('endArrow=block;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;', 160, 0, '', 'Realization', null, 'realization'), 945 this.addEntry('generalization set', function() 946 { 947 var edge = new mxCell('GeneralizationSet1', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;rounded=0;align=center;verticalAlign=bottom;endFill=0;labelBackgroundColor=none;endSize=8;'); 948 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 949 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 950 edge.geometry.relative = true; 951 edge.edge = true; 952 var cell1 = new mxCell(':powertype {constraint1}', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=center;verticalAlign=top;labelBackgroundColor=none;'); 953 cell1.geometry.relative = true; 954 cell1.setConnectable(false); 955 cell1.vertex = true; 956 edge.insert(cell1); 957 958 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Generalization Set'); 959 }), 960 this.createEdgeTemplateEntry('endArrow=none;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;verticalAlign=bottom;labelBackgroundColor=none;strokeWidth=3;', 160, 0, '', 'Association / Connector / Instance Specification / Property / Connector End', null, 'association connector instance specification property connector end'), 961 this.createEdgeTemplateEntry('endArrow=open;startArrow=none;endFill=0;startFill=0;endSize=8;html=1;verticalAlign=bottom;labelBackgroundColor=none;strokeWidth=1;', 160, 0, '', 'Association / Connector / Instance Specification / Property / Connector End / Navigability notation', null, 'association connector instance specification property connector end navigability notation'), 962 this.addEntry('association connector instance specification property connector end', function() 963 { 964 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;startArrow=oval;startFill=1;'); 965 edge1.geometry.setTerminalPoint(new mxPoint(0, 0), true); 966 edge1.geometry.setTerminalPoint(new mxPoint(160, 0), false); 967 edge1.geometry.relative = true; 968 edge1.edge = true; 969 970 return sb.createEdgeTemplateFromCells([edge1], 160, 0, 'Association / Connector / Instance Specification / Property / Connector End'); 971 }), 972 this.createEdgeTemplateEntry('endArrow=none;startArrow=sysMLx;endFill=0;startFill=0;html=1;verticalAlign=bottom;labelBackgroundColor=none;strokeWidth=1;startSize=8;', 160, 0, '', 'Association / Connector / Instance Specification / Property / Connector End / Non-Navigability notation', null, 'association connector instance specification property connector end non navigability notation'), 973 this.createEdgeTemplateEntry('endArrow=none;startArrow=diamondThin;endFill=0;startFill=0;html=1;verticalAlign=bottom;labelBackgroundColor=none;strokeWidth=1;startSize=8;endSize=8;', 160, 0, '', 'Association / Connector / Instance Specification / Property / Connector End / Shared Association', null, 'association connector instance specification property connector end shared'), 974 this.createEdgeTemplateEntry('endArrow=none;startArrow=diamondThin;endFill=0;startFill=1;html=1;verticalAlign=bottom;labelBackgroundColor=none;strokeWidth=1;startSize=8;endSize=8;', 160, 0, '', 'Association / Connector / Instance Specification / Property / Connector End / Composite Association', null, 'association connector instance specification property connector end composite'), 975 this.addEntry('association instance specification connector', function() 976 { 977 var cell1 = new mxCell('', new mxGeometry(60, 0, 20, 20), 'rhombus;aspect=fixed;'); 978 cell1.vertex = true; 979 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=bottom;labelBackgroundColor=none;'); 980 edge1.geometry.setTerminalPoint(new mxPoint(0, 10), true); 981 edge1.geometry.relative = true; 982 edge1.edge = true; 983 cell1.insertEdge(edge1, false); 984 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=bottom;labelBackgroundColor=none;'); 985 edge2.geometry.setTerminalPoint(new mxPoint(140, 10), false); 986 edge2.geometry.relative = true; 987 edge2.edge = true; 988 cell1.insertEdge(edge2, true); 989 990 return sb.createEdgeTemplateFromCells([cell1, edge1, edge2], 140, 20, 'Association / Instance Secification'); 991 }), 992 this.addEntry('association instance specification connector', function() 993 { 994 var cell1 = new mxCell('', new mxGeometry(65, 0, 6, 12), 'triangle;aspect=fixed;fillColor=#000000;'); 995 cell1.vertex = true; 996 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=bottom;labelBackgroundColor=none;'); 997 edge1.geometry.setTerminalPoint(new mxPoint(0, 22), true); 998 edge1.geometry.setTerminalPoint(new mxPoint(140, 22), false); 999 edge1.geometry.relative = true; 1000 edge1.edge = true; 1001 1002 return sb.createVertexTemplateFromCells([cell1, edge1], 140, 22, 'Association / Instance Secification'); 1003 }), 1004 this.addEntry('Redefine', function() 1005 { 1006 var edge = new mxCell('{redefines}', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;'); 1007 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1008 edge.geometry.setTerminalPoint(new mxPoint(200, 0), false); 1009 edge.geometry.relative = true; 1010 edge.edge = true; 1011 var cell1 = new mxCell('end1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1012 cell1.geometry.relative = true; 1013 cell1.setConnectable(false); 1014 cell1.vertex = true; 1015 edge.insert(cell1); 1016 var cell2 = new mxCell('0..1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;'); 1017 cell2.geometry.relative = true; 1018 cell2.setConnectable(false); 1019 cell2.vertex = true; 1020 edge.insert(cell2); 1021 var cell3 = new mxCell('Association1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;'); 1022 cell3.geometry.relative = true; 1023 cell3.setConnectable(false); 1024 cell3.vertex = true; 1025 edge.insert(cell3); 1026 var cell4 = new mxCell('{modifier1}', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;'); 1027 cell4.geometry.relative = true; 1028 cell4.setConnectable(false); 1029 cell4.vertex = true; 1030 edge.insert(cell4); 1031 1032 return sb.createEdgeTemplateFromCells([edge], 200, 0, 'Redefine'); 1033 }), 1034 this.createVertexTemplateEntry('text;html=1;align=center;verticalAlign=middle;dashed=0;fillColor=#ffffff;strokeColor=#000000;', 60, 30, 1035 'qualifier1', 1036 'Qualifier', null, null, dt + 'qualifier'), 1037 this.addEntry('connector', function() 1038 { 1039 var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;'); 1040 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1041 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 1042 edge.geometry.relative = true; 1043 edge.edge = true; 1044 var cell1 = new mxCell('end1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1045 cell1.geometry.relative = true; 1046 cell1.setConnectable(false); 1047 cell1.vertex = true; 1048 edge.insert(cell1); 1049 var cell2 = new mxCell('0..1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;'); 1050 cell2.geometry.relative = true; 1051 cell2.setConnectable(false); 1052 cell2.vertex = true; 1053 edge.insert(cell2); 1054 var cell3 = new mxCell('Connector1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;'); 1055 cell3.geometry.relative = true; 1056 cell3.setConnectable(false); 1057 cell3.vertex = true; 1058 edge.insert(cell3); 1059 1060 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Connector'); 1061 }), 1062 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=oval;endFill=0;endSize=8;', 160, 0, '', 'Provided Interface', null, 'provided interface'), 1063 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=halfCircle;endFill=0;endSize=2;', 160, 0, '', 'Required Interface', null, 'required interface'), 1064 this.addEntry('structural feature', function() 1065 { 1066 var edge = new mxCell('feature1', new mxGeometry(-1, 0, 0, 0), 'html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=none;endFill=0;endSize=6;align=left;'); 1067 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1068 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 1069 edge.geometry.relative = true; 1070 edge.edge = true; 1071 1072 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Structural Feature'); 1073 }), 1074 this.addEntry('usage', function() 1075 { 1076 var cell1 = new mxCell('', new mxGeometry(0, 0, 60, 30), 'resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1077 cell1.vertex = true; 1078 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=halfCircle;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=2;'); 1079 edge1.geometry.setTerminalPoint(new mxPoint(120, 15), false); 1080 edge1.geometry.relative = true; 1081 edge1.edge = true; 1082 cell1.insertEdge(edge1, true); 1083 1084 return sb.createEdgeTemplateFromCells([cell1, edge1], 120, 30, 'Usage'); 1085 }), 1086 this.addEntry('collaboration', function() 1087 { 1088 var cell1 = new mxCell('Collaboration1', new mxGeometry(0, 0, 100, 30), 'ellipse;html=1;dashed=1;dashPattern=10 10;'); 1089 cell1.vertex = true; 1090 var cell2 = new mxCell('Classifier1', new mxGeometry(10, 70, 80, 30), 'html=1;'); 1091 cell2.vertex = true; 1092 var edge1 = new mxCell('ConnectableElement', new mxGeometry(0, 0, 0, 0), 'html=1;rounded=0;labelBackgroundColor=none;align=left;spacingLeft=5;endArrow=none;endFill=0;'); 1093 edge1.geometry.relative = true; 1094 edge1.edge = true; 1095 cell1.insertEdge(edge1, true); 1096 cell2.insertEdge(edge1, false); 1097 1098 return sb.createEdgeTemplateFromCells([cell1, cell2, edge1], 100, 100, 'Collaboration'); 1099 }), 1100 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;dashed=1;', 160, 0, '<<occurence>>', 'Collaboration Use', null, 'collaboration use'), 1101 this.addEntry('Extension', function() 1102 { 1103 var edge = new mxCell('{required}', new mxGeometry(-1, 0, 0, 0), 'html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=block;endFill=1;endSize=6;align=left;'); 1104 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1105 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 1106 edge.geometry.relative = true; 1107 edge.edge = true; 1108 1109 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Extension'); 1110 }), 1111 this.addEntry('transition', function() 1112 { 1113 var edge = new mxCell('Transition1 spec.', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=bottom;endFill=0;labelBackgroundColor=none;'); 1114 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1115 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 1116 edge.geometry.relative = true; 1117 edge.edge = true; 1118 var cell1 = new mxCell('(via connectionPoint1)', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=center;verticalAlign=top;labelBackgroundColor=none;'); 1119 cell1.geometry.relative = true; 1120 cell1.setConnectable(false); 1121 cell1.vertex = true; 1122 edge.insert(cell1); 1123 1124 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Transition'); 1125 }), 1126 this.addEntry('activity', function() 1127 { 1128 var edge = new mxCell('{annotation1}', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;'); 1129 edge.geometry.setTerminalPoint(new mxPoint(0, 0), true); 1130 edge.geometry.setTerminalPoint(new mxPoint(160, 0), false); 1131 edge.geometry.relative = true; 1132 edge.edge = true; 1133 var cell1 = new mxCell('Edge1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=none;'); 1134 cell1.geometry.relative = true; 1135 cell1.setConnectable(false); 1136 cell1.vertex = true; 1137 edge.insert(cell1); 1138 var cell2 = new mxCell('[guard]', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;'); 1139 cell2.geometry.relative = true; 1140 cell2.setConnectable(false); 1141 cell2.vertex = true; 1142 edge.insert(cell2); 1143 1144 return sb.createEdgeTemplateFromCells([edge], 160, 0, 'Activity'); 1145 }), 1146 this.createEdgeTemplateEntry('html=1;verticalAlign=top;labelBackgroundColor=none;endArrow=open;endFill=0;', 160, 0, '<<multicast/multireceive>>', 'Control Flow', null, 'control flow'), 1147 this.addEntry('action', function() 1148 { 1149 var cell1 = new mxCell('Action1', new mxGeometry(0, 5, 100, 30), 'html=1;rounded=1;absoluteArcSize=1;arcSize=10;'); 1150 cell1.vertex = true; 1151 var cell2 = new mxCell('Action2', new mxGeometry(180, 5, 100, 30), 'html=1;rounded=1;absoluteArcSize=1;arcSize=10;'); 1152 cell2.vertex = true; 1153 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'html=1;rounded=0;labelBackgroundColor=none;align=left;spacingLeft=5;endArrow=open;endFill=0;'); 1154 edge1.geometry.relative = true; 1155 edge1.edge = true; 1156 cell1.insertEdge(edge1, true); 1157 cell2.insertEdge(edge1, false); 1158 var cell3 = new mxCell('', new mxGeometry(132, 0, 16, 16), 'html=1;'); 1159 cell3.vertex = true; 1160 1161 return sb.createEdgeTemplateFromCells([cell1, cell2, cell3, edge1], 300, 35, 'Action'); 1162 }), 1163 this.addEntry('object node', function() 1164 { 1165 var cell1 = new mxCell('ObjectNode1', new mxGeometry(40, 0, 80, 30), 'html=1;'); 1166 cell1.vertex = true; 1167 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;rounded=0;align=center;verticalAlign=top;endFill=1;labelBackgroundColor=none;endSize=6;'); 1168 edge1.geometry.setTerminalPoint(new mxPoint(0, 15), true); 1169 edge1.geometry.relative = true; 1170 edge1.edge = true; 1171 cell1.insertEdge(edge1, false); 1172 1173 return sb.createEdgeTemplateFromCells([cell1, edge1], 120, 30, 'Object Node'); 1174 }), 1175 this.addEntry('activity', function() 1176 { 1177 var cell1 = new mxCell('', new mxGeometry(40, 0, 30, 30), 'ellipse;html=1;'); 1178 cell1.vertex = true; 1179 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1180 edge1.geometry.setTerminalPoint(new mxPoint(0, 15), true); 1181 edge1.geometry.relative = true; 1182 edge1.edge = true; 1183 cell1.insertEdge(edge1, false); 1184 1185 return sb.createEdgeTemplateFromCells([cell1, edge1], 70, 30, 'Activity'); 1186 }), 1187 this.addEntry('activity', function() 1188 { 1189 var cell1 = new mxCell('', new mxGeometry(0, 0, 30, 30), 'ellipse;html=1;'); 1190 cell1.vertex = true; 1191 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1192 edge1.geometry.setTerminalPoint(new mxPoint(70, 15), false); 1193 edge1.geometry.relative = true; 1194 edge1.edge = true; 1195 cell1.insertEdge(edge1, true); 1196 1197 return sb.createEdgeTemplateFromCells([cell1, edge1], 70, 30, 'Activity'); 1198 }), 1199 this.createEdgeTemplateEntry('shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;', 160, 0, '', 'Activity', null, 'activity'), 1200 this.addEntry('activity', function() 1201 { 1202 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1203 edge1.geometry.setTerminalPoint(new mxPoint(0, 40), true); 1204 edge1.geometry.setTerminalPoint(new mxPoint(160, 40), false); 1205 edge1.geometry.relative = true; 1206 edge1.edge = true; 1207 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;'); 1208 edge2.geometry.setTerminalPoint(new mxPoint(60, 0), true); 1209 edge2.geometry.setTerminalPoint(new mxPoint(100, 20), false); 1210 edge2.geometry.relative = true; 1211 edge2.edge = true; 1212 1213 return sb.createEdgeTemplateFromCells([edge1, edge2], 70, 30, 'Activity'); 1214 }), 1215 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;', 160, 0, 'Message1 label', 'Message', null, 'message async asynchronous signal call'), 1216 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=block;endFill=1;', 160, 0, '', 'Message, synchronous call', null, 'message sync synchronous call'), 1217 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=block;endFill=1;dashed=1;', 160, 0, '', 'Message, reply', null, 'message reply'), 1218 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;dashed=1;', 160, 0, '', 'Message, create', null, 'message create'), 1219 this.addEntry('message lost', function() 1220 { 1221 var cell1 = new mxCell('', new mxGeometry(160, 0, 4, 4), 'ellipse;html=1;fillColor=#000000;'); 1222 cell1.vertex = true; 1223 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1224 edge1.geometry.setTerminalPoint(new mxPoint(0, 2), true); 1225 edge1.geometry.relative = true; 1226 edge1.edge = true; 1227 cell1.insertEdge(edge1, false); 1228 1229 return sb.createEdgeTemplateFromCells([cell1, edge1], 164, 4, 'Message lost'); 1230 }), 1231 this.addEntry('message found', function() 1232 { 1233 var cell1 = new mxCell('', new mxGeometry(0, 0, 4, 4), 'ellipse;html=1;fillColor=#000000;'); 1234 cell1.vertex = true; 1235 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1236 edge1.geometry.setTerminalPoint(new mxPoint(164, 2), false); 1237 edge1.geometry.relative = true; 1238 edge1.edge = true; 1239 cell1.insertEdge(edge1, true); 1240 1241 return sb.createEdgeTemplateFromCells([cell1, edge1], 164, 4, 'Message found'); 1242 }), 1243 this.addEntry(dt + 'lifeline execution', function() 1244 { 1245 var cell1 = new mxCell('', new mxGeometry(0, 0, 160, 160), 1246 'rounded=0;dashed=0;container=0;collapsible=0;recursiveResize=0;'); 1247 cell1.vertex = true; 1248 var cell2 = new mxCell('LifeLine1', new mxGeometry(30, 10, 100, 30), 1249 'rounded=0;dashed=0;'); 1250 cell2.vertex = true; 1251 cell1.insert(cell2); 1252 var cell3 = new mxCell('', new mxGeometry(75, 60, 10, 60), 1253 'rounded=0;dashed=0;'); 1254 cell3.vertex = true; 1255 cell1.insert(cell3); 1256 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'html=1;verticalAlign=bottom;startArrow=none;endArrow=none;dashed=1;'); 1257 edge1.geometry.relative = true; 1258 edge1.edge = true; 1259 cell2.insertEdge(edge1, false); 1260 cell3.insertEdge(edge1, true); 1261 var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'html=1;verticalAlign=bottom;startArrow=none;endArrow=none;dashed=1;'); 1262 edge2.geometry.setTerminalPoint(new mxPoint(80, 150), true); 1263 edge2.geometry.relative = true; 1264 edge2.edge = true; 1265 cell3.insertEdge(edge2, false); 1266 var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'html=1;verticalAlign=bottom;startArrow=none;endArrow=open;endFill=0;'); 1267 edge3.geometry.setTerminalPoint(new mxPoint(0, 60), true); 1268 edge3.geometry.setTerminalPoint(new mxPoint(75, 60), false); 1269 edge3.geometry.relative = true; 1270 edge3.edge = true; 1271 cell1.insert(edge1); 1272 cell1.insert(edge2); 1273 cell1.insert(edge3); 1274 1275 return sb.createVertexTemplateFromCells([cell1], 160, 160, 'Lifeline'); 1276 }), 1277 this.addEntry('message', function() 1278 { 1279 var cell1 = new mxCell('Message1', new mxGeometry(40, 0, 80, 30), 'html=1;rounded=1;absoluteArcSize=1;arcSize=10;'); 1280 cell1.vertex = true; 1281 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1282 edge1.geometry.setTerminalPoint(new mxPoint(0, 15), true); 1283 edge1.geometry.relative = true; 1284 edge1.edge = true; 1285 cell1.insertEdge(edge1, false); 1286 1287 return sb.createEdgeTemplateFromCells([cell1, edge1], 120, 30, 'Message'); 1288 }), 1289 this.addEntry('message', function() 1290 { 1291 var cell1 = new mxCell('Message1', new mxGeometry(0, 0, 80, 30), 'html=1;rounded=1;absoluteArcSize=1;arcSize=10;'); 1292 cell1.vertex = true; 1293 var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;rounded=0;align=center;verticalAlign=top;endFill=0;labelBackgroundColor=none;endSize=6;'); 1294 edge1.geometry.setTerminalPoint(new mxPoint(120, 15), false); 1295 edge1.geometry.relative = true; 1296 edge1.edge = true; 1297 cell1.insertEdge(edge1, true); 1298 1299 return sb.createEdgeTemplateFromCells([cell1, edge1], 120, 30, 'Message'); 1300 }), 1301 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;dashed=1;', 160, 0, '<<extend>>', 'Extend', null, 'extend'), 1302 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;dashed=1;', 160, 0, '<<include>>', 'Include', null, 'include'), 1303 this.createEdgeTemplateEntry('html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=open;endFill=0;dashed=1;', 160, 0, '<<deploy>>', 'Deploy', null, 'deploy') 1304 ]; 1305 1306 this.addPalette('uml25', mxResources.get('uml') + ' 2.5', false, mxUtils.bind(this, function(content) 1307 { 1308 for (var i = 0; i < fns.length; i++) 1309 { 1310 content.appendChild(fns[i](content)); 1311 } 1312 })); 1313 1314 this.setCurrentSearchEntryLibrary(); 1315 }; 1316 1317})(); 1318