Sidebar-GCP.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. (function()
  2. {
  3. // Adds GCP (Google Cloud Platform) shapes
  4. Sidebar.prototype.addGoogleCloudPlatformCardsPalette = function()
  5. {
  6. var sb = this;
  7. var n = 'dashed=0;html=1;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp.compute.';
  8. var n1 = 'dashed=0;html=1;strokeColor=#dddddd;fillcolor=#ffffff;gradientColor=none;shadow=1;strokeWidth=1;';
  9. var gn = 'mxgraph.gcp.product_cards';
  10. var dt = 'gcp google cloud platform card';
  11. var s = 0.3; //scale
  12. var fns =
  13. [
  14. this.addEntry(dt + 'product', function()
  15. {
  16. var bg = new mxCell('', new mxGeometry(0, 0, 170, 55), n1);
  17. bg.vertex = true;
  18. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;');
  19. icon.vertex = true;
  20. icon.geometry.relative = true;
  21. icon.geometry.offset = new mxPoint(10, 10);
  22. bg.insert(icon);
  23. var text1 = new mxCell('Compute Engine', new mxGeometry(0, 0.5, 110, 20), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  24. text1.vertex = true;
  25. text1.geometry.relative = true;
  26. text1.geometry.offset = new mxPoint(60, -12);
  27. bg.insert(text1);
  28. return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Product Card');
  29. }),
  30. this.addEntry(dt + 'product', function()
  31. {
  32. var bg = new mxCell('', new mxGeometry(0, 0, 190, 55), n1);
  33. bg.vertex = true;
  34. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;');
  35. icon.vertex = true;
  36. icon.geometry.relative = true;
  37. icon.geometry.offset = new mxPoint(10, 10);
  38. bg.insert(icon);
  39. var text1 = new mxCell('Analytics Backend', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#444444;align=left;verticalAlign=middle;');
  40. text1.vertex = true;
  41. text1.geometry.relative = true;
  42. text1.geometry.offset = new mxPoint(60, -20);
  43. bg.insert(text1);
  44. var text2 = new mxCell('Compute Engine', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  45. text2.vertex = true;
  46. text2.geometry.relative = true;
  47. text2.geometry.offset = new mxPoint(60, 0);
  48. bg.insert(text2);
  49. return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Product Card');
  50. }),
  51. this.addEntry(dt + 'product', function()
  52. {
  53. var bg1 = new mxCell('', new mxGeometry(0, 0, 190, 55), n1);
  54. bg1.vertex = true;
  55. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;');
  56. icon.vertex = true;
  57. icon.geometry.relative = true;
  58. icon.geometry.offset = new mxPoint(10, 10);
  59. bg1.insert(icon);
  60. var text1 = new mxCell('Analytics Backend', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#444444;align=left;verticalAlign=middle;');
  61. text1.vertex = true;
  62. text1.geometry.relative = true;
  63. text1.geometry.offset = new mxPoint(60, -20);
  64. bg1.insert(text1);
  65. var text2 = new mxCell('Compute Engine', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  66. text2.vertex = true;
  67. text2.geometry.relative = true;
  68. text2.geometry.offset = new mxPoint(60, 0);
  69. bg1.insert(text2);
  70. var bg2 = new mxCell('', new mxGeometry(0, 55, 190, 55), n1);
  71. bg2.vertex = true;
  72. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;');
  73. icon.vertex = true;
  74. icon.geometry.relative = true;
  75. icon.geometry.offset = new mxPoint(10, 10);
  76. bg2.insert(icon);
  77. var text1 = new mxCell('Analytics Backend', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#444444;align=left;verticalAlign=middle;');
  78. text1.vertex = true;
  79. text1.geometry.relative = true;
  80. text1.geometry.offset = new mxPoint(60, -20);
  81. bg2.insert(text1);
  82. var text2 = new mxCell('Compute Engine', new mxGeometry(0, 0.5, 130, 20), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  83. text2.vertex = true;
  84. text2.geometry.relative = true;
  85. text2.geometry.offset = new mxPoint(60, 0);
  86. bg2.insert(text2);
  87. return sb.createVertexTemplateFromCells([bg1, bg2], bg1.geometry.width, bg1.geometry.height * 2, 'Product Card');
  88. }),
  89. this.addEntry(dt + 'expanded product', function()
  90. {
  91. var bg = new mxCell('', new mxGeometry(0, 0, 190, 80), n1);
  92. bg.vertex = true;
  93. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;');
  94. icon.vertex = true;
  95. icon.geometry.relative = true;
  96. icon.geometry.offset = new mxPoint(10, 10);
  97. bg.insert(icon);
  98. var text1 = new mxCell('Batch Processing', new mxGeometry(0, 0, 130, 20), 'text;fontSize=13;fontColor=#444444;align=left;verticalAlign=middle;');
  99. text1.vertex = true;
  100. text1.geometry.relative = true;
  101. text1.geometry.offset = new mxPoint(60, 8);
  102. bg.insert(text1);
  103. var text2 = new mxCell('Compute Engine', new mxGeometry(0, 0, 130, 20), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  104. text2.vertex = true;
  105. text2.geometry.relative = true;
  106. text2.geometry.offset = new mxPoint(60, 28);
  107. bg.insert(text2);
  108. var part = new mxCell('', new mxGeometry(0, 0, 130, 10), 'shape=line;strokeColor=#dddddd;');
  109. part.vertex = true;
  110. part.geometry.relative = true;
  111. part.geometry.offset = new mxPoint(60, 48);
  112. bg.insert(part);
  113. var text3 = new mxCell('Multiple Instances', new mxGeometry(0, 0, 130, 20), 'text;fontSize=12;fontColor=#444444;align=left;verticalAlign=middle;');
  114. text3.vertex = true;
  115. text3.geometry.relative = true;
  116. text3.geometry.offset = new mxPoint(60, 58);
  117. bg.insert(text3);
  118. return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Expanded Product Card');
  119. }),
  120. this.addEntry(dt + 'expanded product', function()
  121. {
  122. var bg = new mxCell('', new mxGeometry(0, 0, 150, 100), n1);
  123. bg.vertex = true;
  124. var icon1 = new mxCell('', new mxGeometry(0, 0, s * 65, s * 58), n + 'compute_engine;fillColor=#757575;gradientColor=none;strokeColor=none;');
  125. icon1.vertex = true;
  126. icon1.geometry.relative = true;
  127. icon1.geometry.offset = new mxPoint(10, 10);
  128. bg.insert(icon1);
  129. var text1 = new mxCell('Compute Engine', new mxGeometry(0, 0, 110, 20), 'text;fontSize=13;fontColor=#444444;align=left;verticalAlign=middle;');
  130. text1.vertex = true;
  131. text1.geometry.relative = true;
  132. text1.geometry.offset = new mxPoint(40, 8);
  133. bg.insert(text1);
  134. var part = new mxCell('', new mxGeometry(0, 0, 110, 10), 'shape=line;strokeColor=#dddddd;');
  135. part.vertex = true;
  136. part.geometry.relative = true;
  137. part.geometry.offset = new mxPoint(40, 28);
  138. bg.insert(part);
  139. var text2 = new mxCell('10GB PD', new mxGeometry(0, 0, 110, 20), 'text;fontSize=12;fontColor=#888888;align=left;verticalAlign=middle;');
  140. text2.vertex = true;
  141. text2.geometry.relative = true;
  142. text2.geometry.offset = new mxPoint(40, 38);
  143. bg.insert(text2);
  144. var icon2 = new mxCell('', new mxGeometry(0, 0, 17, 17), 'dashed=0;html=1;shape=mxgraph.gcp.product_cards.standard_machine;fillColor=#757575;gradientColor=none;strokeColor=none;');
  145. icon2.vertex = true;
  146. icon2.geometry.relative = true;
  147. icon2.geometry.offset = new mxPoint(30, 60);
  148. bg.insert(icon2);
  149. var icon3 = new mxCell('', new mxGeometry(0, 0, 17, 17), 'dashed=0;html=1;shape=mxgraph.gcp.product_cards.disk;fillColor=#757575;gradientColor=none;strokeColor=none;');
  150. icon3.vertex = true;
  151. icon3.geometry.relative = true;
  152. icon3.geometry.offset = new mxPoint(70, 60);
  153. bg.insert(icon3);
  154. var icon4 = new mxCell('', new mxGeometry(0, 0, 17, 17), 'dashed=0;html=1;shape=mxgraph.gcp.product_cards.close;fillColor=#757575;gradientColor=none;strokeColor=none;');
  155. icon4.vertex = true;
  156. icon4.geometry.relative = true;
  157. icon4.geometry.offset = new mxPoint(110, 60);
  158. bg.insert(icon4);
  159. var icon5 = new mxCell('4', new mxGeometry(0, 0, 14, 14), 'dashed=0;html=1;ellipse;fillColor=#3979F1;gradientColor=none;strokeColor=none;fontColor=#FFFFFF;fontSize=10;verticalAlign=middle;spacing=0;spacingBottom=1;');
  160. icon5.vertex = true;
  161. icon5.geometry.relative = true;
  162. icon5.geometry.offset = new mxPoint(22, 68);
  163. bg.insert(icon5);
  164. var icon6 = new mxCell('2', new mxGeometry(0, 0, 14, 14), 'dashed=0;html=1;ellipse;fillColor=#3979F1;gradientColor=none;strokeColor=none;fontColor=#FFFFFF;fontSize=10;verticalAlign=middle;spacing=0;spacingBottom=1;');
  165. icon6.vertex = true;
  166. icon6.geometry.relative = true;
  167. icon6.geometry.offset = new mxPoint(42, 68);
  168. bg.insert(icon6);
  169. var icon7 = new mxCell('1', new mxGeometry(0, 0, 14, 14), 'dashed=0;html=1;ellipse;fillColor=#3979F1;gradientColor=none;strokeColor=none;fontColor=#FFFFFF;fontSize=10;verticalAlign=middle;spacing=0;spacingBottom=1;');
  170. icon7.vertex = true;
  171. icon7.geometry.relative = true;
  172. icon7.geometry.offset = new mxPoint(82, 68);
  173. bg.insert(icon7);
  174. return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Expanded Product Card');
  175. }),
  176. this.addEntry(dt + 'service', function()
  177. {
  178. var bg = new mxCell('', new mxGeometry(0, 0, 110, 50), n1);
  179. bg.vertex = true;
  180. var icon = new mxCell('', new mxGeometry(0, 0, s * 129, s * 115), n + 'compute_engine;fillColor=#757575;gradientColor=none;strokeColor=none;');
  181. icon.vertex = true;
  182. icon.geometry.relative = true;
  183. icon.geometry.offset = new mxPoint(10, 8);
  184. bg.insert(icon);
  185. var text1 = new mxCell('Local\nCompute', new mxGeometry(0, 0, 60, 50), 'text;fontSize=13;fontColor=#808080;align=left;verticalAlign=middle;');
  186. text1.vertex = true;
  187. text1.geometry.relative = true;
  188. text1.geometry.offset = new mxPoint(50, 0);
  189. bg.insert(text1);
  190. return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Service Card');
  191. })
  192. ];
  193. this.addPalette('gcpCards', 'GCP / Cards', false, mxUtils.bind(this, function(content)
  194. {
  195. for (var i = 0; i < fns.length; i++)
  196. {
  197. content.appendChild(fns[i](content));
  198. }
  199. }));
  200. };
  201. })();