1(function()
2{
3	// Adds AWS 3D shapes
4	Sidebar.prototype.addAWS3DPalette = function()
5	{
6		var w = 100;
7		var h = 100;
8		var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;' + mxConstants.STYLE_STROKEWIDTH + '=1;align=center;outlineConnect=0;dashed=0;outlineConnect=0;shape=mxgraph.aws3d.';
9		var gn = 'mxgraph.aws3d';
10		var dt = 'aws 3d amazon web service';
11		this.setCurrentSearchEntryLibrary('aws3d');
12
13		this.addPaletteFunctions('aws3d', 'AWS 3D', false,
14		[
15			this.createVertexTemplateEntry(s + 'ami;aspect=fixed;fillColor=#E8CA45;strokeColor=#FFF215;',
16					w * 0.92, h * 0.6, '', 'AMI', null, null, this.getTagsForStencil(gn, 'ami', dt).join(' ')),
17			this.createVertexTemplateEntry(s + 'ami2;aspect=fixed;fillColor=#FF9900;strokeColor=#ffffff;',
18					w * 0.74, h * 0.5, '', 'AMI', null, null, this.getTagsForStencil(gn, 'ami', dt).join(' ')),
19			this.createVertexTemplateEntry(s + 'application;fillColor=#4286c5;strokeColor=#57A2D8;aspect=fixed;',
20					w * 0.62, h * 0.688, '', 'Application', null, null, this.getTagsForStencil(gn, 'application', dt).join(' ')),
21			this.createVertexTemplateEntry(s + 'application2;fillColor=#86E83A;strokeColor=#B0F373;aspect=fixed;',
22					w * 0.62, h * 0.53, '', 'Application', null, null, this.getTagsForStencil(gn, 'application', dt).join(' ')),
23			this.createVertexTemplateEntry(s + 'application_server;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
24					w * 1.23, h * 1.24, '', 'EC2 Instance', null, null, this.getTagsForStencil(gn, 'ec2 instance', dt).join(' ')),
25			this.createVertexTemplateEntry(s + 'client;aspect=fixed;strokeColor=none;fillColor=#777777;',
26					w * 0.6, h * 1.04, '', 'Client', null, null, this.getTagsForStencil(gn, 'client', dt).join(' ')),
27			this.createVertexTemplateEntry(s + 'cloudfront;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
28					w * 1.038, h * 1.698, '', 'CloudFront', null, null, this.getTagsForStencil(gn, 'cloudfront', dt).join(' ')),
29			this.createVertexTemplateEntry(s + 'file;aspect=fixed;strokeColor=#2d6195;fillColor=#ffffff;',
30					w * 0.308, h * 0.706, '', 'Content', null, null, this.getTagsForStencil(gn, 'content', dt).join(' ')),
31			this.createVertexTemplateEntry(s + 'customerGateway;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
32					w * 1.167, h * 1.028, '', 'Customer Gateway', null, null, this.getTagsForStencil(gn, 'customer gateway', dt).join(' ')),
33			this.createVertexTemplateEntry(s + 'dataCenter;strokeColor=#5E5E5E;aspect=fixed;',
34					w * 1.23, h * 1.42, '', 'Data Center', null, null, this.getTagsForStencil(gn, 'data center', dt).join(' ')),
35			this.createVertexTemplateEntry(s + 'dataServer;strokeColor=#5E5E5E;aspect=fixed;',
36					w * 1.23, h * 1.06, '', 'Data Server', null, null, this.getTagsForStencil(gn, 'data server', dt).join(' ')),
37			this.createVertexTemplateEntry(s + 'decider;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
38					w * 0.74, h * 0.5, '', 'Decider', null, null, this.getTagsForStencil(gn, 'decider', dt).join(' ')),
39			this.createVertexTemplateEntry(s + 'dynamoDb;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
40					w * 1.815, h * 2.1, '', 'DynamoDB', null, null, this.getTagsForStencil(gn, 'dynamodb db database', dt).join(' ')),
41			this.createVertexTemplateEntry(s + 'ebs;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
42					w * 0.92, h * 0.6, '', 'EBS', null, null, this.getTagsForStencil(gn, 'ebs', dt).join(' ')),
43			this.createVertexTemplateEntry(s + 'ebs2;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
44					w * 0.92, h * 0.6, '', 'EBS', null, null, this.getTagsForStencil(gn, 'ebs', dt).join(' ')),
45			this.createVertexTemplateEntry(s + 'elasticBeanstalk;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
46					w * 1.82, h * 1.4, '', 'Elastic Beanstalk', null, null, this.getTagsForStencil(gn, 'elastic beanstalk', dt).join(' ')),
47			this.createVertexTemplateEntry(s + 'elasticLoadBalancing;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
48					w * 0.92, h * 0.8817, '', 'Elastic Load Balancing', null, null, this.getTagsForStencil(gn, 'elastic load balancing elb', dt).join(' ')),
49			this.createVertexTemplateEntry(s + 'elasticMapReduce;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
50					w * 1.23, h * 1.33, '', 'Elastic MapReduce', null, null, this.getTagsForStencil(gn, 'elastic mapreduce', dt).join(' ')),
51
52		   	this.addEntry(dt + 'elasticache', function()
53	   		{
54			   	var bg1 = new mxCell('', new mxGeometry(70, 0, 123, 124), s + 'application_server;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;');
55			   	bg1.vertex = true;
56			   	var bg2 = new mxCell('', new mxGeometry(0, 40, 123, 124), s + 'application_server;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;');
57			   	bg2.vertex = true;
58			   	var bg3 = new mxCell('', new mxGeometry(140, 40, 123, 124), s + 'application_server;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;');
59			   	bg3.vertex = true;
60			   	var bg4 = new mxCell('', new mxGeometry(70, 80, 123, 124), s + 'application_server;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;');
61			   	bg4.vertex = true;
62
63		   		return sb.createVertexTemplateFromCells([bg1, bg2, bg3, bg4], 264, 204, 'Elasticache');
64			}),
65
66			this.createVertexTemplateEntry(s + 'email;aspect=fixed;strokeColor=#292929;',
67					w * 0.43, h * 0.57, '', 'Email', null, null, this.getTagsForStencil(gn, 'email', dt).join(' ')),
68			this.createVertexTemplateEntry(s + 'email_service;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
69					w * 1.51, h * 1.92, '', 'Email Service', null, null, this.getTagsForStencil(gn, 'email service', dt).join(' ')),
70			this.createVertexTemplateEntry(s + 'file;aspect=fixed;strokeColor=#292929;',
71					w * 0.308, h * 0.706, '', 'File', null, null, this.getTagsForStencil(gn, 'file', dt).join(' ')),
72			this.createVertexTemplateEntry(s + 'glacier;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
73					w * 1.81, h * 1.92, '', 'Glacier', null, null, this.getTagsForStencil(gn, 'glacier', dt).join(' ')),
74			this.createVertexTemplateEntry(s + 'image;strokeColor=none;fillColor=#777777;aspect=fixed;',
75					w * 0.5, h * 0.86, '', 'Image/Video', null, null, this.getTagsForStencil(gn, 'image video', dt).join(' ')),
76			this.createVertexTemplateEntry(s + 'internetGateway;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
77					w * 1.167, h * 1.028, '', 'Internet Gateway', null, null, this.getTagsForStencil(gn, 'internet gateway', dt).join(' ')),
78			this.createVertexTemplateEntry(s + 'lambda;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
79					w * 0.92, h * 1.095, '', 'Lambda', null, null, this.getTagsForStencil(gn, 'lambda', dt).join(' ')),
80			this.createVertexTemplateEntry(s + 'mobile_worker;aspect=fixed;strokeColor=none;fillColor=#777777;',
81					w * 0.36, h * 0.90, '', 'Mobile Worker', null, null, this.getTagsForStencil(gn, 'mobile worker', dt).join(' ')),
82			this.createVertexTemplateEntry(s + 'oracleDataCenter;fillColor=#ffffff;strokeColor=#5E5E5E;aspect=fixed;',
83					w * 1.23, h * 1.42, '', 'Oracle Data Center', null, null, this.getTagsForStencil(gn, 'oracle data center', dt).join(' ')),
84			this.createVertexTemplateEntry(s + 'oracleDbServer;fillColor=#ffffff;strokeColor=#5E5E5E;aspect=fixed;',
85					w * 1.23, h * 1.33, '', 'Oracle Database Server', null, null, this.getTagsForStencil(gn, 'oracle database server db', dt).join(' ')),
86			this.createVertexTemplateEntry(s + 'oracleServer;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
87					w * 1.23, h * 1.42, '', 'Oracle Server', null, null, this.getTagsForStencil(gn, 'oracle server', dt).join(' ')),
88			this.createVertexTemplateEntry(s + 'rds;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
89					w * 1.23, h * 1.33, '', 'RDS', null, null, this.getTagsForStencil(gn, 'rds', dt).join(' ')),
90			this.createVertexTemplateEntry(s + 'rdsMaster;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
91					w * 1.23, h * 1.33, '', 'RDS Master', null, null, this.getTagsForStencil(gn, 'rds master', dt).join(' ')),
92			this.createVertexTemplateEntry(s + 'rdsSlave;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
93					w * 1.23, h * 1.33, '', 'RDS Slave', null, null, this.getTagsForStencil(gn, 'rds slave', dt).join(' ')),
94			this.createVertexTemplateEntry(s + 'redshift;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
95					w * 1.50, h * 1.90, '', 'Redshift', null, null, this.getTagsForStencil(gn, 'redshift', dt).join(' ')),
96			this.createVertexTemplateEntry(s + 'route53;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
97					w * 1.1717, h * 1.344, '', 'Route 53', null, null, this.getTagsForStencil(gn, 'route', dt).join(' ')),
98			this.createVertexTemplateEntry(s + 's3;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
99					w * 2.315, h * 2.39, '', 'S3', null, null, this.getTagsForStencil(gn, 's3', dt).join(' ')),
100			this.createVertexTemplateEntry(s + 's3Bucket;fillColor=#4286c5;strokeColor=#57A2D8;aspect=fixed;',
101					w * 0.615, h * 0.638, '', 'S3 Bucket', null, null, this.getTagsForStencil(gn, 's3 bucket', dt).join(' ')),
102			this.createVertexTemplateEntry(s + 'searchEngine;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
103					w * 1.80, h * 1.92, '', 'Search Engine', null, null, this.getTagsForStencil(gn, 'search engine', dt).join(' ')),
104			this.createVertexTemplateEntry(s + 'secureConnection;fillColor=#000000;strokeColor=#ffffff;aspect=fixed;',
105					w * 0.57, h * 0.34, '', 'Secure Connection', null, null, this.getTagsForStencil(gn, 'secure connection', dt).join(' ')),
106			this.createVertexTemplateEntry(s + 'securityTokenService;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
107					w * 1.80, h * 1.92, '', 'Security Token Service', null, null, this.getTagsForStencil(gn, 'security token service', dt).join(' ')),
108			this.createVertexTemplateEntry(s + 'simpleDb;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
109					w * 1.23, h * 1.33, '', 'SimpleDB', null, null, this.getTagsForStencil(gn, 'simpledb simple db database', dt).join(' ')),
110			this.createVertexTemplateEntry(s + 'simpleDb2;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
111					w * 1.815, h * 1.926, '', 'SimpleDB', null, null, this.getTagsForStencil(gn, 'simpledb simple db database', dt).join(' ')),
112			this.createVertexTemplateEntry(s + 'snapshot;fillColor=#4286c5;strokeColor=#57A2D8;aspect=fixed;',
113					w * 0.92, h * 0.6, '', 'Snapshot', null, null, this.getTagsForStencil(gn, 'snapshot', dt).join(' ')),
114			this.createVertexTemplateEntry(s + 'instance;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
115					w * 1.23, h * 0.97, '', 'Spot Instance', null, null, this.getTagsForStencil(gn, 'spot instance', dt).join(' ')),
116			this.createVertexTemplateEntry(s + 'sqs;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
117					w * 1.84, h * 2.1275, '', 'SQS', null, null, this.getTagsForStencil(gn, 'sqs', dt).join(' ')),
118			this.createVertexTemplateEntry(s + 'end_user;strokeColor=none;fillColor=#777777;aspect=fixed;',
119					w * 0.49, h * 1.0046, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
120			this.createVertexTemplateEntry(s + 'vpcGateway;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
121					w * 1.167, h * 1.028, '', 'VPC Gateway', null, null, this.getTagsForStencil(gn, 'vpc gateway', dt).join(' ')),
122			this.createVertexTemplateEntry(s + 'worker;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
123					w * 0.74, h * 0.5, '', 'Worker', null, null, this.getTagsForStencil(gn, 'worker', dt).join(' ')),
124			this.createVertexTemplateEntry(s + 'workflowService;fillColor=#ECECEC;strokeColor=#5E5E5E;aspect=fixed;',
125					w * 1.822, h * 1.484, '', 'Workflow Service', null, null, this.getTagsForStencil(gn, 'workflow service', dt).join(' ')),
126
127			this.createVertexTemplateEntry(s + 'arrowNE;fillColor=#000000;aspect=fixed;',
128					w * 0.455, h * 0.26, '', 'Arrow NE', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
129			this.createVertexTemplateEntry(s + 'arrowSE;fillColor=#000000;aspect=fixed;',
130					w * 0.455, h * 0.26, '', 'Arrow SE', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
131			this.createVertexTemplateEntry(s + 'arrowSW;fillColor=#000000;aspect=fixed;',
132					w * 0.455, h * 0.26, '', 'Arrow SW', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
133			this.createVertexTemplateEntry(s + 'arrowNW;fillColor=#000000;aspect=fixed;',
134					w * 0.455, h * 0.26, '', 'Arrow NW', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
135			this.createVertexTemplateEntry(s + 'arrowlessNE;fillColor=#000000;aspect=fixed;',
136					w * 0.316, h * 0.18, '', 'Arrowless NE', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
137			this.createVertexTemplateEntry(s + 'dashedEdgeDouble;fillColor=#000000;aspect=fixed;',
138					w * 0.316, h * 0.18, '', 'Dashed Edge Double Arrow', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
139			this.createVertexTemplateEntry(s + 'dashedArrowlessEdge;fillColor=#000000;aspect=fixed;',
140					w * 0.316, h * 0.18, '', 'Dashed Arrowless Edge', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
141			this.createVertexTemplateEntry(s + 'dashedEdge;fillColor=#000000;aspect=fixed;',
142					w * 0.316, h * 0.18, '', 'Dashed Edge', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
143			this.createVertexTemplateEntry(s + 'flatEdge;fillColor=#000000;aspect=fixed;',
144					w * 0.632, h * 0.36, '', 'Flat Edge', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
145			this.createVertexTemplateEntry(s + 'flatDoubleEdge;fillColor=#000000;aspect=fixed;',
146					w * 2.528, h * 1.44, '', 'Flat Double Edge', null, null, this.getTagsForStencil(gn, 'arrow ne north east northeast', dt).join(' ')),
147			this.createVertexTemplateEntry(s + 'arrowhead;aspect=fixed;',
148					w * 0.19, h * 0.11, '', 'Arrowhead', null, null, this.getTagsForStencil(gn, 'arrowhead', dt).join(' ')),
149			this.createVertexTemplateEntry(s + 'edge;aspect=fixed;',
150					w * 0.97, h * 1.074, '', 'Edge', null, null, this.getTagsForStencil(gn, 'edge', dt).join(' ')),
151			this.createVertexTemplateEntry(s + 'reference;aspect=fixed;',
152					w * 0.295, h * 0.195, '', 'Reference', null, null, this.getTagsForStencil(gn, 'reference', dt).join(' ')),
153			this.createVertexTemplateEntry(s + 'spot;aspect=fixed;',
154					w * 0.62, h * 0.36, '', 'Spot', null, null, this.getTagsForStencil(gn, 'spot', dt).join(' ')),
155		 	this.createEdgeTemplateEntry('edgeStyle=isometricEdgeStyle;endArrow=none;html=1;', 50, 100, 'isometric edge', 'Isometric Edge 1'),
156		 	this.createEdgeTemplateEntry('edgeStyle=isometricEdgeStyle;endArrow=none;html=1;elbow=vertical;', 50, 100, 'isometric edge', 'Isometric Edge 2')
157		]);
158
159		this.setCurrentSearchEntryLibrary();
160	};
161})();
162