Sidebar-EIP.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  1. (function()
  2. {
  3. // Adds EIP shapes
  4. Sidebar.prototype.addEipMessageConstructionPalette = function(expand)
  5. {
  6. var s = "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=";
  7. var s2 = "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.";
  8. var s3 = "strokeWidth=3;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.";
  9. var gn = 'mxgraph.eip';
  10. var dt = 'eip enterprise integration pattern message construction ';
  11. var sb = this;
  12. var fns = [
  13. this.createEdgeTemplateEntry('edgeStyle=none;html=1;strokeColor=#808080;endArrow=block;endSize=10;dashed=0;verticalAlign=bottom;strokeWidth=2;',
  14. 160, 0, '', 'Pipe', null, this.getTagsForStencil(gn, '', dt + 'pipe').join(' ')),
  15. this.createVertexTemplateEntry(s + 'rect;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;',
  16. 150, 90, '', 'Filter', null, null, this.getTagsForStencil(gn, '', dt + 'filter').join(' ')),
  17. this.addEntry(dt + 'edge', function()
  18. {
  19. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  20. bg1.vertex = true;
  21. var bg2 = new mxCell('C', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#FF8080;strokeColor=#000000;fontStyle=1;');
  22. bg2.vertex = true;
  23. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  24. edge1.geometry.relative = true;
  25. edge1.edge = true;
  26. bg1.insertEdge(edge1, false);
  27. bg2.insertEdge(edge1, true);
  28. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Command Message');
  29. }),
  30. this.addEntry(dt + 'correlation identifier', function()
  31. {
  32. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  33. bg1.vertex = true;
  34. var bg2 = new mxCell('A', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#FF9238;strokeColor=#000000;fontStyle=1;fontColor=#ffffff;');
  35. bg2.vertex = true;
  36. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  37. edge1.geometry.relative = true;
  38. edge1.edge = true;
  39. bg1.insertEdge(edge1, false);
  40. bg2.insertEdge(edge1, true);
  41. var bg3 = new mxCell('', new mxGeometry(50, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  42. bg3.vertex = true;
  43. var bg4 = new mxCell('B', new mxGeometry(66, 18, 12, 12), s + 'rect;fillColor=#FF9238;strokeColor=#000000;fontStyle=1;fontColor=#ffffff;');
  44. bg4.vertex = true;
  45. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  46. edge2.geometry.relative = true;
  47. edge2.edge = true;
  48. bg3.insertEdge(edge2, false);
  49. bg4.insertEdge(edge2, true);
  50. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;endFill=1;strokeWidth=2;strokeColor=#FF9238');
  51. edge3.geometry.setTerminalPoint(new mxPoint(45, 6), true);
  52. edge3.geometry.setTerminalPoint(new mxPoint(17, 6), false);
  53. edge3.geometry.relative = true;
  54. edge3.edge = true;
  55. return sb.createVertexTemplateFromCells([edge1, edge2, edge3, bg1, bg2, bg3, bg4], 78, 30, 'Correlation Identifier');
  56. }),
  57. this.addEntry(dt + 'document message', function()
  58. {
  59. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  60. bg1.vertex = true;
  61. var bg2 = new mxCell('D', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#C7A0FF;strokeColor=#000000;fontStyle=1;');
  62. bg2.vertex = true;
  63. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  64. edge1.geometry.relative = true;
  65. edge1.edge = true;
  66. bg1.insertEdge(edge1, false);
  67. bg2.insertEdge(edge1, true);
  68. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Document Message');
  69. }),
  70. this.addEntry(dt + 'event message', function()
  71. {
  72. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  73. bg1.vertex = true;
  74. var bg2 = new mxCell('E', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#83BEFF;strokeColor=#000000;fontStyle=1;');
  75. bg2.vertex = true;
  76. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  77. edge1.geometry.relative = true;
  78. edge1.edge = true;
  79. bg1.insertEdge(edge1, false);
  80. bg2.insertEdge(edge1, true);
  81. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Event Message');
  82. }),
  83. this.createVertexTemplateEntry(s3 + 'messExp;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top',
  84. 48, 48, '', 'Message Expiration', null, null, this.getTagsForStencil(gn, '', dt + 'message expiration').join(' ')),
  85. this.addEntry(dt + 'message sequence', function()
  86. {
  87. var bg1 = new mxCell('1', new mxGeometry(0, 12, 12, 12), s + 'rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;');
  88. bg1.vertex = true;
  89. var bg2 = new mxCell('2', new mxGeometry(24, 12, 12, 12), s + 'rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;');
  90. bg2.vertex = true;
  91. var bg3 = new mxCell('3', new mxGeometry(48, 12, 12, 12), s + 'rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;');
  92. bg3.vertex = true;
  93. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'curved=1;endArrow=block;html=1;strokeColor=#1CCF00;strokeWidth=2;endSize=3;');
  94. bg1.insertEdge(edge1, false);
  95. bg2.insertEdge(edge1, true);
  96. edge1.geometry.points = [new mxPoint(18, 0)];
  97. edge1.geometry.relative = true;
  98. edge1.edge = true;
  99. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'curved=1;endArrow=block;html=1;strokeColor=#1CCF00;strokeWidth=2;endSize=3;');
  100. bg2.insertEdge(edge2, false);
  101. bg3.insertEdge(edge2, true);
  102. edge2.geometry.points = [new mxPoint(42, 0)];
  103. edge2.geometry.relative = true;
  104. edge2.edge = true;
  105. return sb.createVertexTemplateFromCells([edge1, edge2, bg1, bg2, bg3], 60, 24, 'Message Sequence');
  106. }),
  107. this.createVertexTemplateEntry(s3 + 'retAddr;html=1;verticalLabelPosition=bottom;fillColor=#FFE040;strokeColor=#000000;verticalAlign=top;',
  108. 78, 48, '', 'Return Address', null, null, this.getTagsForStencil(gn, 'retAddr', dt + 'return address').join(' '))
  109. ];
  110. this.addPalette('eipMessage Construction', 'EIP / Message Construction', expand || false, mxUtils.bind(this, function(content)
  111. {
  112. for (var i = 0; i < fns.length; i++)
  113. {
  114. content.appendChild(fns[i](content));
  115. }
  116. }));
  117. };
  118. Sidebar.prototype.addEipMessageRoutingPalette = function(expand)
  119. {
  120. var s = "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#fffbc0;strokeColor=#000000;";
  121. var s2 = "strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.";
  122. var s3 = "edgeStyle=none;endArrow=none;dashed=0;html=1;strokeWidth=2;";
  123. var gn = 'mxgraph.eip';
  124. var dt = 'eip enterprise integration pattern message routing ';
  125. var sb = this;
  126. var fns = [
  127. this.createVertexTemplateEntry(s2 + 'aggregator;',
  128. 150, 90, '', 'Aggregator', null, null, this.getTagsForStencil(gn, 'aggregator', dt + '').join(' ')),
  129. this.createVertexTemplateEntry(s2 + 'composed_message_processor;',
  130. 150, 90, '', 'Composed Message Processor', null, null, this.getTagsForStencil(gn, 'composed_message_processor', dt + '').join(' ')),
  131. this.createVertexTemplateEntry(s2 + 'content_based_router;',
  132. 150, 90, '', 'Content Based Router', null, null, this.getTagsForStencil(gn, 'content_based_router', dt + '').join(' ')),
  133. this.createVertexTemplateEntry(s2 + 'dynamic_router;',
  134. 150, 90, '', 'Dynamic Router', null, null, this.getTagsForStencil(gn, 'dynamic_router', dt + '').join(' ')),
  135. this.addEntry(dt + 'message broker', function()
  136. {
  137. var bg1 = new mxCell('', new mxGeometry(47, 0, 26, 18), s);
  138. bg1.vertex = true;
  139. var bg2 = new mxCell('', new mxGeometry(0, 18, 26, 18), s);
  140. bg2.vertex = true;
  141. var bg3 = new mxCell('', new mxGeometry(94, 18, 26, 18), s);
  142. bg3.vertex = true;
  143. var bg4 = new mxCell('', new mxGeometry(0, 54, 26, 18), s);
  144. bg4.vertex = true;
  145. var bg5 = new mxCell('', new mxGeometry(94, 54, 26, 18), s);
  146. bg5.vertex = true;
  147. var bg6 = new mxCell('', new mxGeometry(47, 72, 26, 18), s);
  148. bg6.vertex = true;
  149. var bg7 = new mxCell('', new mxGeometry(47, 36, 26, 18), "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=rect;fillColor=#c0f5a9;strokeColor=#000000;");
  150. bg7.vertex = true;
  151. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  152. edge1.geometry.relative = true;
  153. edge1.edge = true;
  154. bg1.insertEdge(edge1, false);
  155. bg7.insertEdge(edge1, true);
  156. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  157. edge2.geometry.relative = true;
  158. edge2.edge = true;
  159. bg2.insertEdge(edge2, false);
  160. bg7.insertEdge(edge2, true);
  161. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  162. edge3.geometry.relative = true;
  163. edge3.edge = true;
  164. bg3.insertEdge(edge3, false);
  165. bg7.insertEdge(edge3, true);
  166. var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  167. edge4.geometry.relative = true;
  168. edge4.edge = true;
  169. bg4.insertEdge(edge4, false);
  170. bg7.insertEdge(edge4, true);
  171. var edge5 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  172. edge5.geometry.relative = true;
  173. edge5.edge = true;
  174. bg5.insertEdge(edge5, false);
  175. bg7.insertEdge(edge5, true);
  176. var edge6 = new mxCell('', new mxGeometry(0, 0, 0, 0), s3);
  177. edge6.geometry.relative = true;
  178. edge6.edge = true;
  179. bg6.insertEdge(edge6, false);
  180. bg7.insertEdge(edge6, true);
  181. return sb.createVertexTemplateFromCells([bg1, bg2, bg3, bg4, bg5, bg6, bg7, edge1, edge2, edge3, edge4, edge5, edge6],
  182. 120, 90, 'Message Broker');
  183. }),
  184. this.createVertexTemplateEntry(s2 + 'message_filter;',
  185. 150, 90, '', 'Message Filter', null, null, this.getTagsForStencil(gn, 'message_filter', dt + '').join(' ')),
  186. this.createVertexTemplateEntry(s2 + 'process_manager;',
  187. 150, 90, '', 'Process Manager', null, null, this.getTagsForStencil(gn, 'process_manager', dt + '').join(' ')),
  188. this.createVertexTemplateEntry(s2 + 'recipient_list;',
  189. 150, 90, '', 'Recipient List', null, null, this.getTagsForStencil(gn, 'recipient_list', dt + '').join(' ')),
  190. this.createVertexTemplateEntry(s2 + 'resequencer;',
  191. 150, 90, '', 'Resequencer', null, null, this.getTagsForStencil(gn, 'resequencer', dt + '').join(' ')),
  192. this.createVertexTemplateEntry(s2 + 'routing_slip;',
  193. 150, 90, '', 'Routing Slip', null, null, this.getTagsForStencil(gn, 'routing_slip', dt + '').join(' ')),
  194. this.createVertexTemplateEntry(s2 + 'splitter;',
  195. 150, 90, '', 'Splitter', null, null, this.getTagsForStencil(gn, 'splitter', dt + '').join(' '))
  196. ];
  197. this.addPalette('eipMessage Routing', 'EIP / Message Routing', expand || false, mxUtils.bind(this, function(content)
  198. {
  199. for (var i = 0; i < fns.length; i++)
  200. {
  201. content.appendChild(fns[i](content));
  202. }
  203. }));
  204. };
  205. Sidebar.prototype.addEipMessageTransformationPalette = function(expand)
  206. {
  207. var s = "strokeWidth=2;dashed=0;align=center;fontSize=8;fillColor=#c0f5a9;verticalLabelPosition=bottom;verticalAlign=top;strokeColor=#000000;shape=mxgraph.eip.";
  208. var gn = 'mxgraph.eip';
  209. var dt = 'eip enterprise integration pattern message transformation ';
  210. this.addPaletteFunctions('eipMessage Transformation', 'EIP / Message Transformation', false,
  211. [
  212. this.createVertexTemplateEntry(s + 'claim_check;',
  213. 150, 90, '', 'Claim Check', null, null, this.getTagsForStencil(gn, 'claim_check', dt + '').join(' ')),
  214. this.createVertexTemplateEntry(s + 'content_enricher;',
  215. 150, 90, '', 'Content Enricher', null, null, this.getTagsForStencil(gn, 'content_enricher', dt + '').join(' ')),
  216. this.createVertexTemplateEntry(s + 'content_filter;',
  217. 150, 90, '', 'Content Filter', null, null, this.getTagsForStencil(gn, 'content_filter', dt + '').join(' ')),
  218. this.createVertexTemplateEntry(s + 'envelope_wrapper;',
  219. 150, 90, '', 'Envelope Wrapper', null, null, this.getTagsForStencil(gn, 'envelope_wrapper', dt + '').join(' ')),
  220. this.createVertexTemplateEntry(s + 'normalizer;',
  221. 150, 90, '', 'Normalizer', null, null, this.getTagsForStencil(gn, 'normalizer', dt + '').join(' '))
  222. ]);
  223. };
  224. Sidebar.prototype.addEipMessagingChannelsPalette = function(expand)
  225. {
  226. var s = "strokeWidth=2;dashed=0;align=center;fontSize=8;html=1;shape=";
  227. var s2 = "strokeWidth=2;strokeColor=#000000;dashed=0;align=center;html=1;fontSize=8;shape=mxgraph.eip.";
  228. var s3 = "strokeWidth=1;strokeColor=#000000;dashed=0;align=center;html=1;fontSize=8;shape=mxgraph.eip.";
  229. var gn = 'mxgraph.eip';
  230. var dt = 'eip enterprise integration pattern messaging channel message ';
  231. var sb = this;
  232. var fns = [
  233. this.createEdgeTemplateEntry('edgeStyle=none;html=1;strokeColor=#808080;endArrow=block;endSize=10;dashed=0;verticalAlign=bottom;strokeWidth=2;',
  234. 160, 0, '', 'Point to Point Channel', null, this.getTagsForStencil(gn, '', dt + 'point').join(' ')),
  235. this.addEntry(dt + 'publish subscribe', function()
  236. {
  237. var bg1 = new mxCell('', new mxGeometry(40, 120, 0, 0), s + 'rect;');
  238. bg1.vertex = true;
  239. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'rounded=0;endArrow=none;endSize=10;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  240. edge1.geometry.setTerminalPoint(new mxPoint(40, 0), true);
  241. edge1.geometry.relative = true;
  242. edge1.edge = true;
  243. bg1.insertEdge(edge1, false);
  244. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'rounded=0;edgeStyle=orthogonalEdgeStyle;endArrow=block;endSize=10;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  245. edge2.geometry.setTerminalPoint(new mxPoint(0, 160), false);
  246. edge2.geometry.relative = true;
  247. edge2.edge = true;
  248. bg1.insertEdge(edge2, true);
  249. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'rounded=0;edgeStyle=orthogonalEdgeStyle;endArrow=block;endSize=10;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  250. edge3.geometry.setTerminalPoint(new mxPoint(40, 160), false);
  251. edge3.geometry.relative = true;
  252. edge3.edge = true;
  253. bg1.insertEdge(edge3, true);
  254. var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'rounded=0;edgeStyle=orthogonalEdgeStyle;endArrow=block;endSize=10;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  255. edge4.geometry.setTerminalPoint(new mxPoint(80, 160), false);
  256. edge4.geometry.relative = true;
  257. edge4.edge = true;
  258. bg1.insertEdge(edge4, true);
  259. return sb.createVertexTemplateFromCells([bg1, edge1, edge2, edge3, edge4], 80, 160, 'Publish Subscribe Channel');
  260. }),
  261. this.createVertexTemplateEntry(s2 + 'channel_adapter;fillColor=#9ddbef;',
  262. 45, 90, '', 'Channel Adapter', null, null, this.getTagsForStencil(gn, 'channel_adapter', dt + '').join(' ')),
  263. this.createVertexTemplateEntry(s3 + 'messageChannel;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;',
  264. 100, 20, '', 'Message Channel', null, null, this.getTagsForStencil(gn, 'messageChannel', dt + '').join(' ')),
  265. this.createVertexTemplateEntry(s3 + 'dataChannel;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;',
  266. 100, 20, '', 'Datatype Channel', null, null, this.getTagsForStencil(gn, 'dataChannel', dt + '').join(' ')),
  267. this.createVertexTemplateEntry(s3 + 'deadLetterChannel;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;',
  268. 100, 20, '', 'Dead Letter Channel', null, null, this.getTagsForStencil(gn, 'deadLetterChannel', dt + '').join(' ')),
  269. this.createVertexTemplateEntry(s3 + 'invalidMessageChannel;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;',
  270. 100, 20, '', 'Invalid Message Channel', null, null, this.getTagsForStencil(gn, 'invalidMessageChannel', dt + '').join(' ')),
  271. this.createVertexTemplateEntry(s2 + 'messaging_bridge;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;',
  272. 150, 90, '', 'Messaging Bridge', null, null, this.getTagsForStencil(gn, 'messaging_bridge', dt + '').join(' ')),
  273. this.addEntry(dt + 'message bus', function()
  274. {
  275. var bg1 = new mxCell('', new mxGeometry(0, 60, 120, 20), s2 + 'messageChannel;');
  276. bg1.vertex = true;
  277. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;strokeWidth=2;rounded=0;endArrow=block;startArrow=block;startSize=10;endSize=10;dashed=0;html=1;strokeColor=#808080;');
  278. edge1.geometry.setTerminalPoint(new mxPoint(60, 140), true);
  279. edge1.geometry.relative = true;
  280. edge1.edge = true;
  281. bg1.insertEdge(edge1, false);
  282. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;strokeWidth=2;rounded=0;endArrow=block;startArrow=block;startSize=10;endSize=10;dashed=0;html=1;strokeColor=#808080;');
  283. edge2.geometry.setTerminalPoint(new mxPoint(20, 0), true);
  284. edge2.geometry.relative = true;
  285. edge2.edge = true;
  286. bg1.insertEdge(edge2, false);
  287. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;strokeWidth=2;rounded=0;endArrow=block;startArrow=block;startSize=10;endSize=10;dashed=0;html=1;strokeColor=#808080;');
  288. edge3.geometry.setTerminalPoint(new mxPoint(60, 0), true);
  289. edge3.geometry.relative = true;
  290. edge3.edge = true;
  291. bg1.insertEdge(edge3, false);
  292. var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;strokeWidth=2;rounded=0;endArrow=block;startArrow=block;startSize=10;endSize=10;dashed=0;html=1;strokeColor=#808080;');
  293. edge4.geometry.setTerminalPoint(new mxPoint(100, 0), true);
  294. edge4.geometry.relative = true;
  295. edge4.edge = true;
  296. bg1.insertEdge(edge4, false);
  297. return sb.createVertexTemplateFromCells([bg1, edge1, edge2, edge3, edge4], 120, 140, 'Message Bus');
  298. })
  299. ];
  300. this.addPalette('eipMessaging Channels', 'EIP / Messaging Channels', expand || false, mxUtils.bind(this, function(content)
  301. {
  302. for (var i = 0; i < fns.length; i++)
  303. {
  304. content.appendChild(fns[i](content));
  305. }
  306. }));
  307. };
  308. Sidebar.prototype.addEipMessagingEndpointsPalette = function(expand)
  309. {
  310. var s = "dashed=0;strokeWidth=2;strokeColor=#000000;html=1;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.";
  311. var s2 = 'fillColor=#c0f5a9;' + s;
  312. var gn = 'mxgraph.eip';
  313. var dt = 'eip enterprise integration pattern messaging endpoint ';
  314. this.addPaletteFunctions('eipMessaging Endpoints', 'EIP / Messaging Endpoints', false,
  315. [
  316. this.createVertexTemplateEntry(s2 + 'competing_consumers;',
  317. 150, 90, '', 'Competing Consumers', null, null, this.getTagsForStencil(gn, 'competing_consumers', dt + '').join(' ')),
  318. this.createVertexTemplateEntry(s + 'durable_subscriber;fillColor=#a0a0a0;',
  319. 30, 35, '', 'Durable Subscriber', null, null, this.getTagsForStencil(gn, 'durable_subscriber', dt + '').join(' ')),
  320. this.createVertexTemplateEntry(s2 + 'event_driven_consumer;',
  321. 150, 90, '', 'Event Driven Consumer', null, null, this.getTagsForStencil(gn, 'event_driven_consumer', dt + '').join(' ')),
  322. this.createVertexTemplateEntry(s2 + 'message_dispatcher;',
  323. 150, 90, '', 'Message Dispatcher', null, null, this.getTagsForStencil(gn, 'message_dispatcher', dt + '').join(' ')),
  324. this.createVertexTemplateEntry(s2 + 'messaging_gateway;',
  325. 150, 90, '', 'Messaging Gateway', null, null, this.getTagsForStencil(gn, 'messaging_gateway', dt + '').join(' ')),
  326. this.createVertexTemplateEntry(s2 + 'polling_consumer;',
  327. 150, 90, '', 'Polling Consumer', null, null, this.getTagsForStencil(gn, 'polling_consumer', dt + '').join(' ')),
  328. this.createVertexTemplateEntry(s2 + 'selective_consumer;',
  329. 150, 90, '', 'Selective Consumer', null, null, this.getTagsForStencil(gn, 'selective_consumer', dt + '').join(' ')),
  330. this.createVertexTemplateEntry(s2 + 'service_activator;',
  331. 150, 90, '', 'Service Activator', null, null, this.getTagsForStencil(gn, 'service_activator', dt + '').join(' ')),
  332. this.createVertexTemplateEntry(s2 + 'transactional_client;',
  333. 150, 90, '', 'Transactional Client', null, null, this.getTagsForStencil(gn, 'transactional_client', dt + '').join(' '))
  334. ]);
  335. };
  336. Sidebar.prototype.addEipMessagingSystemsPalette = function(expand)
  337. {
  338. var s = "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=";
  339. var s2 = "strokeWidth=2;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.";
  340. var s3 = "strokeWidth=1;dashed=0;align=center;fontSize=8;shape=";
  341. var s4 = "strokeWidth=1;dashed=0;align=center;fontSize=8;shape=mxgraph.eip.";
  342. var gn = 'mxgraph.eip';
  343. var dt = 'eip enterprise integration pattern messaging system ';
  344. var sb = this;
  345. var fns = [
  346. this.createVertexTemplateEntry(s2 + 'content_based_router;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;',
  347. 150, 90, '', 'Message Router', null, null, this.getTagsForStencil(gn, 'content_based_router', dt + '').join(' ')),
  348. this.createVertexTemplateEntry(s4 + 'messageChannel;html=1;verticalLabelPosition=bottom;strokeColor=#000000;verticalAlign=top;',
  349. 100, 20, '', 'Message Channel', null, null, this.getTagsForStencil(gn, 'messageChannel', dt + '').join(' ')),
  350. this.addEntry(dt + 'message endpoint', function()
  351. {
  352. var bg1 = new mxCell('', new mxGeometry(0, 0, 150, 90), s + 'rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;');
  353. bg1.vertex = true;
  354. var bg2 = new mxCell('', new mxGeometry(85, 25, 40, 40), s3 + 'rect;fillColor=#ffffff;strokeColor=#000000;');
  355. bg2.vertex = true;
  356. bg1.insert(bg2);
  357. return sb.createVertexTemplateFromCells([bg1], bg1.geometry.width, bg1.geometry.height, 'Message Endpoint');
  358. }),
  359. this.addEntry(dt + 'message endpoint', function()
  360. {
  361. var bg1 = new mxCell('', new mxGeometry(0, 0, 150, 90), s + 'rect;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#c0f5a9;strokeColor=#000000;');
  362. bg1.vertex = true;
  363. var bg2 = new mxCell('', new mxGeometry(25, 25, 40, 40), s3 + 'rect;fillColor=#ffffff;strokeColor=#000000;');
  364. bg2.vertex = true;
  365. bg1.insert(bg2);
  366. return sb.createVertexTemplateFromCells([bg1], bg1.geometry.width, bg1.geometry.height, 'Message Endpoint');
  367. }),
  368. this.addEntry(dt + 'message endpoint', function()
  369. {
  370. var bg1 = new mxCell('', new mxGeometry(0, 0, 150, 90), s + 'rect;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;');
  371. bg1.vertex = true;
  372. var bg2 = new mxCell('', new mxGeometry(25, 25, 40, 40), s3 + 'rect;fillColor=#ffffff;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;');
  373. bg2.vertex = true;
  374. bg1.insert(bg2);
  375. var bg3 = new mxCell('', new mxGeometry(250, 0, 150, 90), s + 'rect;fillColor=#c0f5a9;strokeColor=#000000;');
  376. bg3.vertex = true;
  377. var bg4 = new mxCell('', new mxGeometry(85, 25, 40, 40), s3 + 'rect;fillColor=#ffffff;strokeColor=#000000;');
  378. bg4.vertex = true;
  379. bg3.insert(bg4);
  380. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;strokeWidth=2;rounded=0;endArrow=block;startArrow=none;startSize=10;endSize=10;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  381. edge1.geometry.relative = true;
  382. edge1.edge = true;
  383. bg2.insertEdge(edge1, true);
  384. bg4.insertEdge(edge1, false);
  385. return sb.createVertexTemplateFromCells([bg1, bg3, edge1], 400, 90, 'Message Endpoint');
  386. }),
  387. this.addEntry(dt + 'message', function()
  388. {
  389. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  390. bg1.vertex = true;
  391. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;');
  392. bg2.vertex = true;
  393. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  394. edge1.geometry.relative = true;
  395. edge1.edge = true;
  396. bg1.insertEdge(edge1, false);
  397. bg2.insertEdge(edge1, true);
  398. var bg3 = new mxCell('', new mxGeometry(16, 36, 12, 12), s + 'rect;fillColor=#ff9900;strokeColor=#000000;fontStyle=1;');
  399. bg3.vertex = true;
  400. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  401. edge2.geometry.relative = true;
  402. edge2.edge = true;
  403. bg1.insertEdge(edge2, false);
  404. bg3.insertEdge(edge2, true);
  405. return sb.createVertexTemplateFromCells([edge1, edge2, bg1, bg2, bg3], 28, 48, 'Message');
  406. }),
  407. this.addEntry(dt + 'message', function()
  408. {
  409. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  410. bg1.vertex = true;
  411. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#80FF6C;strokeColor=#000000;fontStyle=1;');
  412. bg2.vertex = true;
  413. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  414. edge1.geometry.relative = true;
  415. edge1.edge = true;
  416. bg1.insertEdge(edge1, false);
  417. bg2.insertEdge(edge1, true);
  418. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Message');
  419. }),
  420. this.addEntry(dt + 'message', function()
  421. {
  422. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  423. bg1.vertex = true;
  424. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s + 'rect;fillColor=#ff9900;strokeColor=#000000;fontStyle=1;');
  425. bg2.vertex = true;
  426. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  427. edge1.geometry.relative = true;
  428. edge1.edge = true;
  429. bg1.insertEdge(edge1, false);
  430. bg2.insertEdge(edge1, true);
  431. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Message');
  432. }),
  433. this.addEntry(dt + 'message', function()
  434. {
  435. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  436. bg1.vertex = true;
  437. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s2 + 'message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;');
  438. bg2.vertex = true;
  439. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  440. edge1.geometry.relative = true;
  441. edge1.edge = true;
  442. bg1.insertEdge(edge1, false);
  443. bg2.insertEdge(edge1, true);
  444. var bg3 = new mxCell('', new mxGeometry(16, 36, 12, 12), s2 + 'message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;');
  445. bg3.vertex = true;
  446. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  447. edge2.geometry.relative = true;
  448. edge2.edge = true;
  449. bg1.insertEdge(edge2, false);
  450. bg3.insertEdge(edge2, true);
  451. return sb.createVertexTemplateFromCells([edge1, edge2, bg1, bg2, bg3], 28, 48, 'Message');
  452. }),
  453. this.addEntry(dt + 'message', function()
  454. {
  455. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  456. bg1.vertex = true;
  457. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s2 + 'message_1;fillColor=#ff5500;strokeColor=#000000;fontStyle=1;');
  458. bg2.vertex = true;
  459. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  460. edge1.geometry.relative = true;
  461. edge1.edge = true;
  462. bg1.insertEdge(edge1, false);
  463. bg2.insertEdge(edge1, true);
  464. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Message');
  465. }),
  466. this.addEntry(dt + 'message', function()
  467. {
  468. var bg1 = new mxCell('', new mxGeometry(0, 0, 12, 12), s + 'ellipse;fillColor=#808080;strokeColor=none;');
  469. bg1.vertex = true;
  470. var bg2 = new mxCell('', new mxGeometry(16, 18, 12, 12), s2 + 'message_2;fillColor=#00cc00;strokeColor=#000000;fontStyle=1;');
  471. bg2.vertex = true;
  472. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;strokeColor=#808080;strokeWidth=2;');
  473. edge1.geometry.relative = true;
  474. edge1.edge = true;
  475. bg1.insertEdge(edge1, false);
  476. bg2.insertEdge(edge1, true);
  477. return sb.createVertexTemplateFromCells([edge1, bg1, bg2], 28, 30, 'Message');
  478. }),
  479. this.createVertexTemplateEntry(s2 + 'message_translator;fillColor=#c0f5a9;strokeColor=#000000;verticalLabelPosition=bottom;verticalAlign=top;',
  480. 150, 90, '', 'Message-Translator', null, null, this.getTagsForStencil(gn, 'message_translator', dt + '').join(' '))
  481. ];
  482. this.addPalette('eipMessaging Systems', 'EIP / Messaging Systems', expand || false, mxUtils.bind(this, function(content)
  483. {
  484. for (var i = 0; i < fns.length; i++)
  485. {
  486. content.appendChild(fns[i](content));
  487. }
  488. }));
  489. };
  490. Sidebar.prototype.addEipSystemManagementPalette = function(expand)
  491. {
  492. var s2 = "strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.";
  493. var gn = 'mxgraph.eip';
  494. var dt = 'eip enterprise integration pattern system management ';
  495. this.addPaletteFunctions('eipSystem Management', 'EIP / System Management', false,
  496. [
  497. this.createVertexTemplateEntry(s2 + 'channel_purger;fillColor=#c0f5a9;strokeColor=#000000;',
  498. 150, 90, '', 'Channel Purger', null, null, this.getTagsForStencil(gn, 'channel_purger', dt + '').join(' ')),
  499. this.createVertexTemplateEntry(s2 + 'control_bus;fillColor=#c0f5a9;strokeColor=#000000;',
  500. 60, 40, '', 'Control Bus', null, null, this.getTagsForStencil(gn, 'control_bus', dt + '').join(' ')),
  501. this.createVertexTemplateEntry(s2 + 'detour;fillColor=#c0f5a9;strokeColor=#000000;',
  502. 150, 90, '', 'Detour', null, null, this.getTagsForStencil(gn, 'detour', dt + '').join(' ')),
  503. this.createVertexTemplateEntry(s2 + 'message_store;fillColor=#c0f5a9;strokeColor=#000000;',
  504. 150, 90, '', 'Message Store', null, null, this.getTagsForStencil(gn, 'message_store', dt + '').join(' ')),
  505. this.createVertexTemplateEntry(s2 + 'smart_proxy;fillColor=#c0f5a9;strokeColor=#000000;',
  506. 70, 90, '', 'Smart Proxy', null, null, this.getTagsForStencil(gn, 'smart_proxy', dt + '').join(' ')),
  507. this.createVertexTemplateEntry(s2 + 'test_message;fillColor=#c0f5a9;strokeColor=#000000;',
  508. 150, 90, '', 'Test Message', null, null, this.getTagsForStencil(gn, 'test_message', dt + '').join(' ')),
  509. this.createVertexTemplateEntry(s2 + 'wire_tap;fillColor=#c0f5a9;strokeColor=#000000;',
  510. 150, 90, '', 'Wire Tap', null, null, this.getTagsForStencil(gn, 'wire_tap', dt + '').join(' '))
  511. ]);
  512. };
  513. })();