1(function()
2{
3	// Adds ArchiMate 2.1 shapes
4	Sidebar.prototype.addArchiMatePalette = function()
5	{
6		var w = 100;
7		var h = 75;
8		var s = 'html=1;outlineConnect=0;shape=mxgraph.archimate.';
9		var am1 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#ffff99;shape=mxgraph.archimate.';
10		var am2 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#99ffff;shape=mxgraph.archimate.';
11		var am3 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#99ff99;shape=mxgraph.archimate.';
12		var am4 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#ffccff;shape=mxgraph.archimate.';
13		var am5 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#ccccff;shape=mxgraph.archimate.';
14		var am6 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#ffe0e0;shape=mxgraph.archimate.';
15		var am7 = 'html=1;outlineConnect=0;whiteSpace=wrap;fillColor=#ffe0e0;shape=mxgraph.archimate.';
16		var gn = 'mxgraph.archimate';
17		var dt = 'archimate ';
18		this.setCurrentSearchEntryLibrary('archimate');
19
20		this.addPaletteFunctions('archimate', mxResources.get('archiMate21'), false,
21		[
22			this.createVertexTemplateEntry(am1 + 'application;appType=actor',
23					w, h, '', 'Business Actor', null, null, this.getTagsForStencil(gn, 'application', dt + 'business actor').join(' ')),
24			this.createVertexTemplateEntry(am1 + 'application;appType=role',
25					w, h, '', 'Business Role', null, null, this.getTagsForStencil(gn, '', dt + 'business role').join(' ')),
26			this.createVertexTemplateEntry(am1 + 'application;appType=collab',
27					w, h, '', 'Business Collaboration', null, null, this.getTagsForStencil(gn, '', dt + 'business collaboration').join(' ')),
28			this.createVertexTemplateEntry(am1 + 'application;appType=interface',
29					w, h, '', 'Business Interface', null, null, this.getTagsForStencil(gn, '', dt + 'business interface').join(' ')),
30			this.createVertexTemplateEntry(am1 + 'application;appType=interface2',
31					w, h, '', 'Business Interface', null, null, this.getTagsForStencil(gn, '', dt + 'business interface').join(' ')),
32			this.createVertexTemplateEntry(am1 + 'location',
33					w, h, '', 'Location', null, null, this.getTagsForStencil(gn, '', dt + 'location').join(' ')),
34			this.createVertexTemplateEntry(am1 + 'business;busType=process',
35					w, h, '', 'Business Process', null, null, this.getTagsForStencil(gn, '', dt + 'business process').join(' ')),
36			this.createVertexTemplateEntry(am1 + 'business;busType=function',
37					w, h, '', 'Business Function', null, null, this.getTagsForStencil(gn, '', dt + 'business function').join(' ')),
38			this.createVertexTemplateEntry(am1 + 'business;busType=interaction',
39					w, h, '', 'Business Interaction', null, null, this.getTagsForStencil(gn, '', dt + 'business interaction').join(' ')),
40			this.createVertexTemplateEntry(am1 + 'business;busType=event',
41					w, h, '', 'Business Event', null, null, this.getTagsForStencil(gn, '', dt + 'business event').join(' ')),
42			this.createVertexTemplateEntry(am1 + 'business;busType=service',
43					w, h, '', 'Business Service', null, null, this.getTagsForStencil(gn, '', dt + 'business service').join(' ')),
44			this.createVertexTemplateEntry(am1 + 'businessObject;overflow=fill', w, h,
45					'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr style="height:20px;"><td align="center"></td></tr><tr><td align="left" valign="top" style="padding:4px;"></td></tr></table>',
46					'Business Object', null, null, this.getTagsForStencil(gn, '', dt + 'business object').join(' ')),
47			this.createVertexTemplateEntry(am1 + 'representation',
48					w, h, '', 'Representation', null, null, this.getTagsForStencil(gn, '', dt + 'representation').join(' ')),
49			this.createVertexTemplateEntry('fillColor=#ffff99;whiteSpace=wrap;shape=cloud;html=1;',
50					w, h, '', 'Meaning', null, null, this.getTagsForStencil(gn, '', dt + 'meaning').join(' ')),
51			this.createVertexTemplateEntry('fillColor=#ffff99;whiteSpace=wrap;shape=ellipse;html=1;',
52					w, h * 0.75, '', 'Value', null, null, this.getTagsForStencil(gn, '', dt + 'value').join(' ')),
53			this.createVertexTemplateEntry(am1 + 'product;overflow=fill', w, h,
54					'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr style="height:20px;"><td align="left"></td></tr><tr><td align="left" valign="top" style="padding:4px;"></td></tr></table>',
55					'Product', null, null, this.getTagsForStencil(gn, '', dt + 'product').join(' ')),
56			this.createVertexTemplateEntry(am1 + 'businessObject;overflow=fill', w, h,
57					'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr style="height:20px;"><td align="center"></td></tr><tr><td align="left" valign="top" style="padding:4px;"></td></tr></table>',
58					'Contract', null, null, this.getTagsForStencil(gn, '', dt + 'contract').join(' ')),
59			this.createVertexTemplateEntry(am2 + 'application;appType=comp',
60					w, h, '', 'Application Component', null, null, this.getTagsForStencil(gn, '', dt + 'application component').join(' ')),
61			this.createVertexTemplateEntry(am2 + 'application;appType=collab',
62					w, h, '', 'Application Collaboration', null, null, this.getTagsForStencil(gn, '', dt + 'application collaboration').join(' ')),
63			this.createVertexTemplateEntry(am2 + 'application;appType=interface',
64					w, h, '', 'Application Interface', null, null, this.getTagsForStencil(gn, '', dt + 'application interface').join(' ')),
65			this.createVertexTemplateEntry(am2 + 'application;appType=interface2',
66					w, h, '', 'Application Interface', null, null, this.getTagsForStencil(gn, '', dt + 'application interface').join(' ')),
67			this.createVertexTemplateEntry(am2 + 'application;appType=function',
68					w, h, '', 'Application Function', null, null, this.getTagsForStencil(gn, '', dt + 'application function').join(' ')),
69			this.createVertexTemplateEntry(am2 + 'application;appType=interaction',
70					w, h, '', 'Application Interaction', null, null, this.getTagsForStencil(gn, '', dt + 'application interaction').join(' ')),
71			this.createVertexTemplateEntry(am2 + 'application;appType=service',
72					w, h, '', 'Application Service', null, null, this.getTagsForStencil(gn, '', dt + 'application service').join(' ')),
73			this.createVertexTemplateEntry(am2 + 'businessObject;overflow=fill', w, h,
74					'<table cellpadding="0" cellspacing="0" style="font-size:1em;width:100%;height:100%;"><tr style="height:20px;"><td align="center"></td></tr><tr><td align="left" valign="top" style="padding:4px;"></td></tr></table>',
75					'Data Object', null, null, this.getTagsForStencil(gn, '', dt + 'data object').join(' ')),
76			this.createVertexTemplateEntry(am3 + 'application;appType=node',
77					w, h, '', 'Node', null, null, this.getTagsForStencil(gn, '', dt + 'node').join(' ')),
78			this.createVertexTemplateEntry(am3 + 'tech;techType=device',
79					w, h, '', 'Device', null, null, this.getTagsForStencil(gn, '', dt + 'device').join(' ')),
80			this.createVertexTemplateEntry(am3 + 'application;appType=network',
81					w, h, '', 'Network', null, null, this.getTagsForStencil(gn, '', dt + 'network').join(' ')),
82			this.createVertexTemplateEntry(am3 + 'application;appType=commPath',
83					w, h, '', 'Communications Path', null, null, this.getTagsForStencil(gn, '', dt + 'communications path').join(' ')),
84			this.createVertexTemplateEntry(am3 + 'application;appType=interface',
85					w, h, '', 'Infrastructure Interface', null, null, this.getTagsForStencil(gn, '', dt + 'infrastructure interface').join(' ')),
86			this.createVertexTemplateEntry(am3 + 'application;appType=interface2',
87					w, h, '', 'Infrastructure Interface', null, null, this.getTagsForStencil(gn, '', dt + 'infrastructure interface').join(' ')),
88			this.createVertexTemplateEntry(am3 + 'application;appType=sysSw',
89					w, h, '', 'System Software', null, null, this.getTagsForStencil(gn, '', dt + 'system software').join(' ')),
90			this.createVertexTemplateEntry(am3 + 'business;busType=function',
91					w, h, '', 'Infrastructure Function', null, null, this.getTagsForStencil(gn, '', dt + 'infraastructure function').join(' ')),
92			this.createVertexTemplateEntry(am3 + 'business;busType=service',
93					w, h, '', 'Infrastructure Service', null, null, this.getTagsForStencil(gn, '', dt + 'infrastructure service').join(' ')),
94			this.createVertexTemplateEntry(am3 + 'application;appType=artifact',
95					w, h, '', 'Artifact', null, null, this.getTagsForStencil(gn, '', dt + 'artifact').join(' ')),
96
97			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;html=1;endArrow=none;elbow=vertical',
98					w, h, '', 'Association', null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')),
99			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;html=1;endArrow=open;elbow=vertical;endFill=1;dashed=1',
100					w, h, '', 'Access', null, this.getTagsForStencil(gn, '', dt + 'access').join(' ')),
101			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;html=1;endArrow=none;elbow=vertical;endFill=0;dashed=1',
102					w, h, '', 'Access', null, this.getTagsForStencil(gn, '', dt + 'access').join(' ')),
103			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;html=1;endArrow=open;elbow=vertical;endFill=1',
104					w, h, '', 'Used by', null, this.getTagsForStencil(gn, '', dt + 'used by').join(' ')),
105			this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;html=1;endArrow=block;elbow=vertical;endFill=0;dashed=1',
106					w, h, '', 'Realization', null, this.getTagsForStencil(gn, '', dt + 'realization').join(' ')),
107			this.createEdgeTemplateEntry('endArrow=oval;html=1;endFill=1;startArrow=oval;startFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical',
108					w, h, '', 'Assignment', null, this.getTagsForStencil(gn, '', dt + 'assignment').join(' ')),
109			this.createEdgeTemplateEntry('endArrow=none;html=1;endFill=0;startArrow=diamondThin;startFill=0;edgeStyle=elbowEdgeStyle;elbow=vertical',
110					w, h, '', 'Aggregation', null, this.getTagsForStencil(gn, '', dt + 'aggregation').join(' ')),
111			this.createEdgeTemplateEntry('endArrow=none;html=1;endFill=0;startArrow=diamondThin;startFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical',
112					w, h, '', 'Composition', null, this.getTagsForStencil(gn, '', dt + 'composition').join(' ')),
113			this.createEdgeTemplateEntry('endArrow=block;html=1;endFill=1;startArrow=none;startFill=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=1',
114					w, h, '', 'A', null, this.getTagsForStencil(gn, '', dt).join(' ')),
115			this.createEdgeTemplateEntry('endArrow=block;html=1;endFill=1;startArrow=none;startFill=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=1',
116					w, h, '', 'Flow', null, this.getTagsForStencil(gn, '', dt + 'flow').join(' ')),
117			this.createEdgeTemplateEntry('endArrow=block;html=1;endFill=1;startArrow=none;startFill=0;edgeStyle=elbowEdgeStyle;elbow=vertical;dashed=0',
118					w, h, '', 'Triggering', null, this.getTagsForStencil(gn, '', dt + 'triggering').join(' ')),
119			this.createVertexTemplateEntry('swimlane;html=1;fillColor=#ffffff;whiteSpace=wrap',
120					w, h, '', 'Grouping', null, this.getTagsForStencil(gn, '', dt + 'grouping').join(' ')),
121			this.createVertexTemplateEntry('ellipse;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;fillColor=#000000',
122					10, 10, '', 'Junction', null, this.getTagsForStencil(gn, '', dt + 'junction').join(' ')),
123			this.createEdgeTemplateEntry('endArrow=block;html=1;endFill=0;edgeStyle=elbowEdgeStyle;elbow=vertical',
124					w, h, '', 'Specialization', null, this.getTagsForStencil(gn, '', dt + 'specialization').join(' ')),
125
126			this.createVertexTemplateEntry(am4 + 'motiv;motivType=stake',
127					w, h, '', 'Stakeholder', null, null, this.getTagsForStencil(gn, '', dt + 'stakeholder').join(' ')),
128			this.createVertexTemplateEntry(am4 + 'motiv;motivType=driver',
129					w, h, '', 'Driver', null, null, this.getTagsForStencil(gn, '', dt + 'driver').join(' ')),
130			this.createVertexTemplateEntry(am4 + 'motiv;motivType=assess',
131					w, h, '', 'Assessment', null, null, this.getTagsForStencil(gn, '', dt + 'assesment').join(' ')),
132			this.createVertexTemplateEntry(am5 + 'motiv;motivType=goal',
133					w, h, '', 'Goal', null, null, this.getTagsForStencil(gn, '', dt + 'goal').join(' ')),
134			this.createVertexTemplateEntry(am5 + 'motiv;motivType=req',
135					w, h, '', 'Requirement', null, null, this.getTagsForStencil(gn, '', dt + 'goal').join(' ')),
136			this.createVertexTemplateEntry(am5 + 'motiv;motivType=const',
137					w, h, '', 'Constraint', null, null, this.getTagsForStencil(gn, '', dt + 'constraint').join(' ')),
138			this.createVertexTemplateEntry(am5 + 'motiv;motivType=princ',
139					w, h, '', 'Principle', null, null, this.getTagsForStencil(gn, '', dt + 'principle').join(' ')),
140
141			this.createVertexTemplateEntry(am6 + 'rounded=1',
142					w, h, '', 'Work Package', null, null, this.getTagsForStencil(gn, '', dt + 'work package').join(' ')),
143			this.createVertexTemplateEntry(am6 + 'representation',
144					w, h, '', 'Deliverable', null, null, this.getTagsForStencil(gn, '', dt + 'deliverable').join(' ')),
145			this.createVertexTemplateEntry(am3 + 'tech;techType=plateau',
146					w, h, '', 'Plateau', null, null, this.getTagsForStencil(gn, '', dt + 'plateau').join(' ')),
147			this.createVertexTemplateEntry(am3 + 'gap',
148					w, h, '', 'Gap', null, null, this.getTagsForStencil(gn, '', dt + 'gap').join(' '))
149		]);
150
151		this.setCurrentSearchEntryLibrary();
152	};
153})();
154