Browse Source

10.2.5 release

Former-commit-id: 26a6b660b7c74ca3ab2ea8ad17d2cc409a3fee46
Gaudenz Alder 6 years ago
parent
commit
98fdd376a7
78 changed files with 52181 additions and 40914 deletions
  1. 6 0
      ChangeLog
  2. 1 1
      VERSION
  3. 1 0
      etc/build/build.xml
  4. 1 1
      src/main/webapp/cache.manifest
  5. BIN
      src/main/webapp/images/google-share.png
  6. 1854 1657
      src/main/webapp/js/app.min.js
  7. 0 7
      src/main/webapp/js/diagramly/App.js
  8. 1 0
      src/main/webapp/js/diagramly/Devel.js
  9. 13 2
      src/main/webapp/js/diagramly/Dialogs.js
  10. 73 6
      src/main/webapp/js/diagramly/DriveClient.js
  11. 4 2
      src/main/webapp/js/diagramly/Editor.js
  12. 25 11
      src/main/webapp/js/diagramly/EditorUi.js
  13. 7 0
      src/main/webapp/js/diagramly/Init.js
  14. 0 6
      src/main/webapp/js/diagramly/Trees.js
  15. 22 22
      src/main/webapp/js/diagramly/sidebar/Sidebar-AWS3.js
  16. 31 76
      src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js
  17. 1219 0
      src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4b.js
  18. 12 3
      src/main/webapp/js/diagramly/sidebar/Sidebar.js
  19. 24 24
      src/main/webapp/js/mxgraph/Graph.js
  20. 7 4
      src/main/webapp/js/shapes.min.js
  21. 1 1
      src/main/webapp/js/stencils.min.js
  22. 121 121
      src/main/webapp/js/viewer.min.js
  23. 6 1
      src/main/webapp/resources/dia.txt
  24. 6 1
      src/main/webapp/resources/dia_am.txt
  25. 6 1
      src/main/webapp/resources/dia_ar.txt
  26. 5 0
      src/main/webapp/resources/dia_bg.txt
  27. 6 1
      src/main/webapp/resources/dia_bn.txt
  28. 6 1
      src/main/webapp/resources/dia_bs.txt
  29. 6 1
      src/main/webapp/resources/dia_ca.txt
  30. 6 1
      src/main/webapp/resources/dia_cs.txt
  31. 6 1
      src/main/webapp/resources/dia_da.txt
  32. 6 1
      src/main/webapp/resources/dia_de.txt
  33. 5 0
      src/main/webapp/resources/dia_el.txt
  34. 6 1
      src/main/webapp/resources/dia_eo.txt
  35. 5 0
      src/main/webapp/resources/dia_es.txt
  36. 5 0
      src/main/webapp/resources/dia_et.txt
  37. 5 0
      src/main/webapp/resources/dia_fa.txt
  38. 6 1
      src/main/webapp/resources/dia_fi.txt
  39. 5 0
      src/main/webapp/resources/dia_fil.txt
  40. 6 1
      src/main/webapp/resources/dia_fr.txt
  41. 6 1
      src/main/webapp/resources/dia_gu.txt
  42. 5 0
      src/main/webapp/resources/dia_he.txt
  43. 6 1
      src/main/webapp/resources/dia_hi.txt
  44. 6 1
      src/main/webapp/resources/dia_hr.txt
  45. 6 1
      src/main/webapp/resources/dia_hu.txt
  46. 5 0
      src/main/webapp/resources/dia_i18n.txt
  47. 6 1
      src/main/webapp/resources/dia_id.txt
  48. 5 0
      src/main/webapp/resources/dia_it.txt
  49. 5 0
      src/main/webapp/resources/dia_ja.txt
  50. 6 1
      src/main/webapp/resources/dia_kn.txt
  51. 6 1
      src/main/webapp/resources/dia_ko.txt
  52. 6 1
      src/main/webapp/resources/dia_lt.txt
  53. 6 1
      src/main/webapp/resources/dia_lv.txt
  54. 6 1
      src/main/webapp/resources/dia_ml.txt
  55. 6 1
      src/main/webapp/resources/dia_mr.txt
  56. 6 1
      src/main/webapp/resources/dia_ms.txt
  57. 6 1
      src/main/webapp/resources/dia_nl.txt
  58. 6 1
      src/main/webapp/resources/dia_no.txt
  59. 6 1
      src/main/webapp/resources/dia_pl.txt
  60. 6 1
      src/main/webapp/resources/dia_pt-br.txt
  61. 5 0
      src/main/webapp/resources/dia_pt.txt
  62. 6 1
      src/main/webapp/resources/dia_ro.txt
  63. 6 1
      src/main/webapp/resources/dia_ru.txt
  64. 6 1
      src/main/webapp/resources/dia_sk.txt
  65. 6 1
      src/main/webapp/resources/dia_sl.txt
  66. 6 1
      src/main/webapp/resources/dia_sr.txt
  67. 6 1
      src/main/webapp/resources/dia_sv.txt
  68. 6 1
      src/main/webapp/resources/dia_sw.txt
  69. 6 1
      src/main/webapp/resources/dia_ta.txt
  70. 6 1
      src/main/webapp/resources/dia_te.txt
  71. 5 0
      src/main/webapp/resources/dia_th.txt
  72. 5 0
      src/main/webapp/resources/dia_tr.txt
  73. 6 1
      src/main/webapp/resources/dia_uk.txt
  74. 6 1
      src/main/webapp/resources/dia_vi.txt
  75. 6 1
      src/main/webapp/resources/dia_zh-tw.txt
  76. 6 1
      src/main/webapp/resources/dia_zh.txt
  77. 130 6
      src/main/webapp/shapes/mxAWS4.js
  78. 48317 38923
      src/main/webapp/stencils/aws4.xml

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+20-FEB-2019: 10.2.5
+
+- Adds fallback for unavailable sharing in Google Drive
+- Fixes possible timing issues with open URL parameter
+- Fixes link handling in legacy embedded diagrams
+
 18-FEB-2019: 10.2.4
 
 - Adds Microsoft Office add-ins

+ 1 - 1
VERSION

@@ -1 +1 @@
-10.2.4
+10.2.5

+ 1 - 0
etc/build/build.xml

@@ -112,6 +112,7 @@
 				<file name="Sidebar-AWS3.js" />
 				<file name="Sidebar-AWS3D.js" />
 				<file name="Sidebar-AWS4.js" />
+				<file name="Sidebar-AWS4b.js" />
 				<file name="Sidebar-Azure.js" />
 				<file name="Sidebar-Basic.js" />
 				<file name="Sidebar-Bootstrap.js" />

+ 1 - 1
src/main/webapp/cache.manifest

@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 02/18/2019 10:33 PM
+# 02/20/2019 12:48 PM
 
 app.html
 index.html?offline=1

BIN
src/main/webapp/images/google-share.png


File diff suppressed because it is too large
+ 1854 - 1657
src/main/webapp/js/app.min.js


+ 0 - 7
src/main/webapp/js/diagramly/App.js

@@ -2054,13 +2054,6 @@ App.prototype.load = function()
 			}
 			else
 			{
-				// Fallback for cases where the hash property is not available
-				if ((window.location.hash == null || window.location.hash.length <= 1) &&
-					urlParams['open'] != null)
-				{
-					window.location.hash = urlParams['open'];
-				}
-				
 				// Asynchronous or disabled loading of client
 				if (this.drive == null)
 				{

+ 1 - 0
src/main/webapp/js/diagramly/Devel.js

@@ -39,6 +39,7 @@ mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-AWS.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-AWS3.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-AWS3D.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-AWS4.js');
+mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-AWS4b.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Azure.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Basic.js');
 mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Bootstrap.js');

+ 13 - 2
src/main/webapp/js/diagramly/Dialogs.js

@@ -765,7 +765,7 @@ var SplashDialog = function(editorUi)
 /**
  * 
  */
-var ConfirmDialog = function(editorUi, message, okFn, cancelFn, okLabel, cancelLabel, okImg, cancelImg, showRememberOption)
+var ConfirmDialog = function(editorUi, message, okFn, cancelFn, okLabel, cancelLabel, okImg, cancelImg, showRememberOption, imgSrc)
 {
 	var div = document.createElement('div');
 	div.style.textAlign = 'center';
@@ -774,6 +774,7 @@ var ConfirmDialog = function(editorUi, message, okFn, cancelFn, okLabel, cancelL
 	p2.style.padding = '6px';
 	p2.style.overflow = 'auto';
 	p2.style.maxHeight = '44px';
+	p2.style.lineHeight = '1.2em';
 	
 	if (mxClient.IS_QUIRKS)
 	{
@@ -783,6 +784,16 @@ var ConfirmDialog = function(editorUi, message, okFn, cancelFn, okLabel, cancelL
 	mxUtils.write(p2, message);
 	div.appendChild(p2);
 	
+	if (imgSrc != null)
+	{
+		var p3 = document.createElement('div');
+		p3.style.padding = '6px 0 6px 0';
+		var img = document.createElement('img');
+		img.setAttribute('src', imgSrc);
+		p3.appendChild(img);
+		div.appendChild(p3);
+	}
+	
 	var btns = document.createElement('div');
 	btns.style.textAlign = 'center';
 	btns.style.whiteSpace = 'nowrap';
@@ -866,7 +877,7 @@ var ConfirmDialog = function(editorUi, message, okFn, cancelFn, okLabel, cancelL
 	}
 	else
 	{
-		btns.style.marginTop = '16px';
+		btns.style.marginTop = '12px';
 	}
 
 	this.init = function()

+ 73 - 6
src/main/webapp/js/diagramly/DriveClient.js

@@ -1723,13 +1723,80 @@ DriveClient.prototype.pickLibrary = function(fn)
  */
 DriveClient.prototype.showPermissions = function(id)
 {
-	this.checkToken(mxUtils.bind(this, function()
+	var fallback = mxUtils.bind(this, function()
 	{
-		var shareClient = new gapi.drive.share.ShareClient(this.appId);
-		shareClient.setOAuthToken(gapi.auth.getToken().access_token);
-		shareClient.setItemIds([id]);
-		shareClient.showSettingsDialog();
-	}));
+		var dlg = new ConfirmDialog(this.ui, mxResources.get('googleSharingNotAvailable'), mxUtils.bind(this, function()
+		{
+			this.ui.editor.graph.openLink('https://drive.google.com/open?id=' + id);
+		}), null, mxResources.get('open'), null, null, null, null, IMAGE_PATH + '/google-share.png');
+		this.ui.showDialog(dlg.container, 360, 190, true, true);
+		dlg.init();
+	});
+	
+	if (this.sharingFailed)
+	{
+		fallback();
+	}
+	else
+	{
+		this.checkToken(mxUtils.bind(this, function()
+		{
+			var shareClient = new gapi.drive.share.ShareClient(this.appId);
+			shareClient.setOAuthToken(gapi.auth.getToken().access_token);
+			shareClient.setItemIds([id]);
+			shareClient.showSettingsDialog();
+			
+			// Workaround for https://stackoverflow.com/questions/54753169 is to check
+			// if "sharing is unavailable" is showing and invoke a fallback dialog
+			if ('MutationObserver' in window)
+			{
+				if (this.sharingObserver != null)
+				{
+					this.sharingObserver.disconnect();
+					this.sharingObserver = null;
+				}
+
+				// Tries again even if observer was still around as the user may have
+				// closed the dialog while waiting. TODO: Find condition to disconnect
+				// observer when dialog is closed (use removedNodes?).
+				this.sharingObserver = new MutationObserver(mxUtils.bind(this, function(mutations)
+				{
+					var done = false;
+					
+					for (var i = 0; i < mutations.length; i++)
+					{
+						for (var j = 0; j < mutations[i].addedNodes.length; j++)
+						{
+							var child = mutations[i].addedNodes[j];
+
+							if (child.nodeName == 'BUTTON' && child.getAttribute('name') == 'ok' &&
+				        		child.parentNode != null && child.parentNode.parentNode != null &&
+				        		child.parentNode.parentNode.getAttribute('role') == 'dialog')
+				        	{
+			        			this.sharingFailed = true;
+				        		child.click();
+			        			fallback();
+			        			done = true;
+				        	}
+				        	else if (child.nodeName == 'DIV' && child.className == 'shr-q-shr-r-shr-xb')
+				        	{
+				        		done = true;
+				        	}
+				        }
+				    }
+					
+					if (done)
+					{
+		        		this.sharingObserver.disconnect();
+	        			this.sharingObserver = null;
+					}
+					
+				}));
+				
+				this.sharingObserver.observe(document, {childList: true, subtree: true});
+			}
+		}));
+	}
 };
 
 /**

+ 4 - 2
src/main/webapp/js/diagramly/Editor.js

@@ -4079,6 +4079,7 @@
 	mxStencilRegistry.libraries['networks'] = [SHAPES_PATH + '/mxNetworks.js', STENCIL_PATH + '/networks.xml'];
 	mxStencilRegistry.libraries['aws3d'] = [SHAPES_PATH + '/mxAWS3D.js', STENCIL_PATH + '/aws3d.xml'];
 	mxStencilRegistry.libraries['aws4'] = [SHAPES_PATH + '/mxAWS4.js', STENCIL_PATH + '/aws4.xml'];
+	mxStencilRegistry.libraries['aws4b'] = [SHAPES_PATH + '/mxAWS4.js', STENCIL_PATH + '/aws4.xml'];
 	mxStencilRegistry.libraries['veeam'] = [STENCIL_PATH + '/veeam/2d.xml', STENCIL_PATH + '/veeam/3d.xml', STENCIL_PATH + '/veeam/veeam.xml'];
 	mxStencilRegistry.libraries['pid2inst'] = [SHAPES_PATH + '/pid2/mxPidInstruments.js'];
 	mxStencilRegistry.libraries['pid2misc'] = [SHAPES_PATH + '/pid2/mxPidMisc.js', STENCIL_PATH + '/pid/misc.xml'];
@@ -4823,7 +4824,7 @@ var ErrorDialog = function(editorUi, title, message, buttonText, fn, retry, butt
 		hd.style.margin = '0px';
 		hd.style.fontSize = '18px';
 		hd.style.paddingBottom = '16px';
-		hd.style.marginBottom = '16px';
+		hd.style.marginBottom = '10px';
 		hd.style.borderBottom = '1px solid #c0c0c0';
 		hd.style.color = 'gray';
 		hd.style.whiteSpace = 'nowrap';
@@ -4835,12 +4836,13 @@ var ErrorDialog = function(editorUi, title, message, buttonText, fn, retry, butt
 	}
 
 	var p2 = document.createElement('div');
+	p2.style.lineHeight = '1.2em';
 	p2.style.padding = '6px';
 	p2.innerHTML = message;
 	div.appendChild(p2);
 	
 	var btns = document.createElement('div');
-	btns.style.marginTop = '16px';
+	btns.style.marginTop = '12px';
 	btns.style.textAlign = 'center';
 	
 	if (retry != null)

+ 25 - 11
src/main/webapp/js/diagramly/EditorUi.js

@@ -142,16 +142,23 @@
 	 */
 	EditorUi.debug = function()
 	{
-		if (window.console != null && urlParams['test'] == '1')
+		try
 		{
-			var args = [new Date().toISOString()];
-			
-			for (var i = 0; i < arguments.length; i++)
-		    {
-				args.push(arguments[i]);
-		    }
-		    
-			console.log.apply(console, args);
+			if (window.console != null && urlParams['test'] == '1')
+			{
+				var args = [new Date().toISOString()];
+				
+				for (var i = 0; i < arguments.length; i++)
+			    {
+					args.push(arguments[i]);
+			    }
+			    
+				console.log.apply(console, args);
+			}
+		}
+		catch (e)
+		{
+			// ignore
 		}
 	};
 
@@ -3577,8 +3584,15 @@
 					if (id != null && id.substring(0, 2) == '#G')
 					{
 						id = id.substring(2);
-						msg += '<br><a href="https://drive.google.com/open?id=' + id + '" target="_blank">' +
-							mxUtils.htmlEntities(mxResources.get('tryOpeningViaThisPage')) + '</a>';
+						
+						// Special case where the button must have a different label and function
+						this.showError(title, msg, mxResources.get('cancel'), null, retry,
+							mxResources.get('tryOpeningViaThisPage'), mxUtils.bind(this, function()
+							{
+								this.editor.graph.openLink('https://drive.google.com/open?id=' + id);
+							}), null, null, 380);
+								
+						return;
 					}
 				}
 				else if (e.message != null)

+ 7 - 0
src/main/webapp/js/diagramly/Init.js

@@ -287,3 +287,10 @@ if (urlParams['lightbox'] == '1')
 {
 	urlParams['chrome'] = '0';
 }
+
+// Fallback for cases where the hash property is not available
+if ((window.location.hash == null || window.location.hash.length <= 1) &&
+	urlParams['open'] != null)
+{
+	window.location.hash = urlParams['open'];
+}

+ 0 - 6
src/main/webapp/js/diagramly/Trees.js

@@ -99,12 +99,6 @@
 		var spacing = 10;
 		var level = 40;
 	
-		// Adds resources for actions
-		mxResources.parse('selectChildren=Select Children');
-		mxResources.parse('selectSiblings=Select Siblings');
-		mxResources.parse('selectDescendants=Select Descendants');
-		mxResources.parse('selectParent=Select Parent');
-	
 		function isTreeVertex(cell)
 		{
 			return model.isVertex(cell) && hasTreeParent(cell);

+ 22 - 22
src/main/webapp/js/diagramly/sidebar/Sidebar-AWS3.js

@@ -35,7 +35,7 @@
 		var dt = 'aws amazon web service analytics';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Analytics', 'AWS / Analytics', false,
+		this.addPaletteFunctions('aws3Analytics', 'AWS17 / Analytics', false,
 		[
 			 this.createVertexTemplateEntry(n + 'athena;fillColor=#F58534;gradientColor=none;',
 					 s * 51, s * 51, '', 'Athena', null, null, this.getTagsForStencil(gn, 'athena', dt).join(' ')),
@@ -92,7 +92,7 @@
 		var dt = 'aws amazon web service app application services';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Application Services', 'AWS / Application Services', false,
+		this.addPaletteFunctions('aws3Application Services', 'AWS17 / Application Services', false,
 		[
 			 this.createVertexTemplateEntry(n + 'elastic_transcoder;fillColor=#D9A741;gradientColor=none;',
 					 s * 51, s * 62, '', 'Elastic Transcoder', null, null, this.getTagsForStencil(gn, 'elastic transcoder', dt).join(' ')),
@@ -117,7 +117,7 @@
 		var dt = 'aws amazon web service ai artificial intelligence';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Artificial Intelligence', 'AWS / Artificial Intelligence', false,
+		this.addPaletteFunctions('aws3Artificial Intelligence', 'AWS17 / Artificial Intelligence', false,
 		[
 			 this.createVertexTemplateEntry(n + 'lex;fillColor=#2E73B8;gradientColor=none;',
 					 s * 51, s * 54, '', 'Lex', null, null, this.getTagsForStencil(gn, 'lex', dt).join(' ')),
@@ -138,7 +138,7 @@
 		var dt = 'aws amazon web service business productivity';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Business Productivity', 'AWS / Business Productivity', false,
+		this.addPaletteFunctions('aws3Business Productivity', 'AWS17 / Business Productivity', false,
 		[
 			 this.createVertexTemplateEntry(n + 'chime;fillColor=#03B5BB;gradientColor=none;',
 					 s * 66, s * 66, '', 'Chime', null, null, this.getTagsForStencil(gn, 'chime', dt).join(' ')),
@@ -157,7 +157,7 @@
 		var dt = 'aws amazon web service compute';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Compute', 'AWS / Compute', false,
+		this.addPaletteFunctions('aws3Compute', 'AWS17 / Compute', false,
 		[
 		 
 	 		 this.createVertexTemplateEntry(n + 'ami;fillColor=#F58534;gradientColor=none;',
@@ -264,7 +264,7 @@
 		var dt = 'aws amazon web service contact center';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Contact Center', 'AWS / Contact Center', false,
+		this.addPaletteFunctions('aws3Contact Center', 'AWS17 / Contact Center', false,
 		[
 			 this.createVertexTemplateEntry(n + 'connect;fillColor=#759C3E;gradientColor=none;',
 					 s * 60, s * 46, '', 'Connect', null, null, this.getTagsForStencil(gn, 'connect', dt).join(' '))
@@ -279,7 +279,7 @@
 		var dt = 'aws amazon web service db database';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Database', 'AWS / Database', false,
+		this.addPaletteFunctions('aws3Database', 'AWS17 / Database', false,
 		[
 			 this.createVertexTemplateEntry(n + 'dynamo_db;fillColor=#2E73B8;gradientColor=none;',
 					 s * 48, s * 54, '', 'Dynamo DB', null, null, this.getTagsForStencil(gn, 'dynamo', dt).join(' ')),
@@ -354,7 +354,7 @@
 		var dt = 'aws amazon web service desktop app streaming application';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Desktop and App Streaming', 'AWS / Desktop and App Streaming', false,
+		this.addPaletteFunctions('aws3Desktop and App Streaming', 'AWS17 / Desktop and App Streaming', false,
 		[
 			 this.createVertexTemplateEntry(n + 'appstream;fillColor=#D9A741;gradientColor=none;',
 					 s * 51, s * 62, '', 'AppStream', null, null, this.getTagsForStencil(gn, 'appstream', dt).join(' ')),
@@ -371,7 +371,7 @@
 		var dt = 'aws amazon web service dev developer tools';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Developer Tools', 'AWS / Developer Tools', false,
+		this.addPaletteFunctions('aws3Developer Tools', 'AWS17 / Developer Tools', false,
 		[
 			 this.createVertexTemplateEntry(n + 'codecommit;fillColor=#759C3E;gradientColor=none;',
 					 s * 51, s * 62, '', 'CodeCommit', null, null, this.getTagsForStencil(gn, 'codecommit code commit', dt).join(' ')),
@@ -396,7 +396,7 @@
 		var dt = 'aws amazon web service game development';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Game Development', 'AWS / Game Development', false,
+		this.addPaletteFunctions('aws3Game Development', 'AWS17 / Game Development', false,
 		[
 			 this.createVertexTemplateEntry(n + 'gamelift;fillColor=#AD688B;gradientColor=none;',
 					 s * 47, s * 57, '', 'GameLift', null, null, this.getTagsForStencil(gn, 'gamelift game lift', dt).join(' '))
@@ -411,7 +411,7 @@
 		var dt = 'aws amazon web service general';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3General', 'AWS / General', false,
+		this.addPaletteFunctions('aws3General', 'AWS17 / General', false,
 		[
 			 this.createVertexTemplateEntry(n + 'management_console;fillColor=#F58534;gradientColor=none;',
 					 s * 42, s * 42, '', 'Management Console', null, null, this.getTagsForStencil(gn, 'management console', dt).join(' ')),
@@ -464,7 +464,7 @@
 		var dt = 'aws group amazon web service group groups';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Groups', 'AWS / Groups', false,
+		this.addPaletteFunctions('aws3Groups', 'AWS17 / Groups', false,
 		[
 			 this.createVertexTemplateEntry('rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;',
 					 s * 133, s * 133, '', 'Auto Scaling Group', null, null, this.getTagsForStencil(gn, 'auto scaling group', dt).join(' ')),
@@ -548,7 +548,7 @@
 		var dt = 'aws amazon web service iot internet of things';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Internet of Things', 'AWS / Internet of Things', false,
+		this.addPaletteFunctions('aws3Internet of Things', 'AWS17 / Internet of Things', false,
 		[
 			 this.createVertexTemplateEntry(n + 'aws_iot;fillColor=#5294CF;gradientColor=none;',
 					 s * 45, s * 54, '', 'AWS IoT', null, null, this.getTagsForStencil(gn, 'iot internet of things', dt).join(' ')),
@@ -647,7 +647,7 @@
 		var dt = 'aws amazon web service management tools';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Management Tools', 'AWS / Management Tools', false,
+		this.addPaletteFunctions('aws3Management Tools', 'AWS17 / Management Tools', false,
 		[
 			 this.createVertexTemplateEntry(n + 'cloudwatch;fillColor=#759C3E;gradientColor=none;',
 					 s * 55, s * 62, '', 'CloudWatch', null, null, this.getTagsForStencil(gn, 'cloudwatch cloud watch', dt).join(' ')),
@@ -734,7 +734,7 @@
 		var dt = 'aws amazon web service messaging';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Messaging', 'AWS / Messaging', false,
+		this.addPaletteFunctions('aws3Messaging', 'AWS17 / Messaging', false,
 		[
 			 this.createVertexTemplateEntry(n + 'pinpoint;fillColor=#AD688B;gradientColor=none;',
 					 s * 51, s * 58, '', 'Pinpoint', null, null, this.getTagsForStencil(gn, 'pinpoint', dt).join(' ')),
@@ -767,7 +767,7 @@
 		var dt = 'aws amazon web service migration';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Migration', 'AWS / Migration', false,
+		this.addPaletteFunctions('aws3Migration', 'AWS17 / Migration', false,
 		[
 			 this.createVertexTemplateEntry(n + 'snowball;fillColor=#E05243;gradientColor=none;',
 					 s * 45, s * 54, '', 'Snowball', null, null, this.getTagsForStencil(gn, 'snowball', dt).join(' ')),
@@ -794,7 +794,7 @@
 		var dt = 'aws amazon web service mobile services';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Mobile Services', 'AWS / Mobile Services', false,
+		this.addPaletteFunctions('aws3Mobile Services', 'AWS17 / Mobile Services', false,
 		[
 			 this.createVertexTemplateEntry(n + 'api_gateway;fillColor=#D9A741;gradientColor=none;',
 					 s * 51, s * 62, '', 'API Gateway', null, null, this.getTagsForStencil(gn, 'api gateway', dt).join(' ')),
@@ -819,7 +819,7 @@
 		var dt = 'aws amazon web service network and content delivery';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Networking and Content Delivery', 'AWS / Network and Content Delivery', false,
+		this.addPaletteFunctions('aws3Networking and Content Delivery', 'AWS17 / Network and Content Delivery', false,
 		[
 			 this.createVertexTemplateEntry(n + 'cloudfront;fillColor=#F58536;gradientColor=none;',
 					 s * 51, s * 62, '', 'CloudFront', null, null, this.getTagsForStencil(gn, 'cloudfront cloud front', dt).join(' ')),
@@ -880,7 +880,7 @@
 		var dt = 'aws amazon web service on demand workforce';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3On Demand Workforce', 'AWS / On-Demand Workforce', false,
+		this.addPaletteFunctions('aws3On Demand Workforce', 'AWS17 / On-Demand Workforce', false,
 		[
 			 this.createVertexTemplateEntry(n + 'mechanical_turk;fillColor=#ACACAC;gradientColor=none;',
 					 s * 45, s * 54, '', 'Mechanical Turk', null, null, this.getTagsForStencil(gn, 'mechanical turk', dt).join(' ')),
@@ -903,7 +903,7 @@
 		var dt = 'aws amazon web service sdk software development kit';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3SDKs', 'AWS / SDK', false,
+		this.addPaletteFunctions('aws3SDKs', 'AWS17 / SDK', false,
 		[
 			 this.createVertexTemplateEntry(n + 'android;fillColor=#96BF3D;gradientColor=none;',
 					 s * 49, s * 56, '', 'Android', null, null, this.getTagsForStencil(gn, 'android', dt).join(' ')),
@@ -944,7 +944,7 @@
 		var dt = 'aws amazon web service security and identity compliance';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Security Identity and Compliance', 'AWS / Security Identity and Compliance', false,
+		this.addPaletteFunctions('aws3Security Identity and Compliance', 'AWS17 / Security Identity and Compliance', false,
 		[
 			 this.createVertexTemplateEntry(n + 'inspector;fillColor=#759C3E;gradientColor=none;',
 					 s * 45, s * 54, '', 'Inspector', null, null, this.getTagsForStencil(gn, 'inspector', dt).join(' ')),
@@ -1007,7 +1007,7 @@
 		var dt = 'aws amazon web service storage';
 		var s = 1.5; //scale
 		
-		this.addPaletteFunctions('aws3Storage', 'AWS / Storage', false,
+		this.addPaletteFunctions('aws3Storage', 'AWS17 / Storage', false,
 		[
 			 this.createVertexTemplateEntry(n + 's3;fillColor=#E05243;gradientColor=none;',
 					 s * 51, s * 62, '', 'S3', null, null, this.getTagsForStencil(gn, 's3', dt).join(' ')),

+ 31 - 76
src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4.js

@@ -7,11 +7,10 @@
 		var w = 80 * s;
 		var h = 100 * s;
 		var w2 = 60 * s;
-		var pts = 'points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];';
-		var n = pts + 'outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=middle;verticalAlign=bottom;align=center;html=1;whiteSpace=wrap;fontSize=10;fontStyle=1;spacing=3;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
-		var n2 = pts + 'outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
+		var n = 'outlineConnect=0;fontColor=#232F3E;gradientColor=none;strokeColor=#ffffff;fillColor=#232F3E;dashed=0;verticalLabelPosition=middle;verticalAlign=bottom;align=center;html=1;whiteSpace=wrap;fontSize=10;fontStyle=1;spacing=3;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
+		var n2 = 'outlineConnect=0;fontColor=#232F3E;gradientColor=none;strokeColor=#232F3E;fillColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
 		var n3 = 'outlineConnect=0;gradientColor=none;fontColor=#545B64;strokeColor=none;fillColor=#879196;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
-		var n4 = pts + 'outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
+		var n4 = 'outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;' + mxConstants.STYLE_SHAPE + "=mxgraph.aws4.";
 		var gn = 'mxgraph.aws4';
 		var sb = this;
 
@@ -48,7 +47,7 @@
 	{
 		var dt = 'aws amazon web service arrows';
 		
-		this.addPaletteFunctions('aws4Arrows', 'AWS / Arrows', false,
+		this.addPaletteFunctions('aws4Arrows', 'AWS18 / Arrows', false,
 		[
 			this.createEdgeTemplateEntry('edgeStyle=orthogonalEdgeStyle;html=1;endArrow=none;elbow=vertical;startArrow=block;startFill=1;strokeColor=#545B64;rounded=0;', 
 					100, 0, '', 'Default (left)', null, this.getTagsForStencil(gn, '', dt + 'default left').join(' ')),
@@ -75,7 +74,7 @@
 	{
 		var dt = 'aws amazon web service general resources';
 		
-		this.addPaletteFunctions('aws4General Resources', 'AWS / General Resources', false,
+		this.addPaletteFunctions('aws4General Resources', 'AWS18 / General Resources', false,
 		[
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.aws_cloud;',
 					 w2, w2, 'AWS Cloud', null, null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
@@ -122,7 +121,7 @@
 	{
 		var dt = 'aws amazon web service illustrations';
 		
-		this.addPaletteFunctions('aws4Illustrations', 'AWS / Illustrations', false,
+		this.addPaletteFunctions('aws4Illustrations', 'AWS18 / Illustrations', false,
 		[
 			 this.createVertexTemplateEntry(n3 + 'illustration_users;',
 					 100, 100, 'users', null, null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
@@ -141,7 +140,7 @@
 	{
 		var dt = 'aws amazon web service groups group light';
 		
-		this.addPaletteFunctions('aws4Groups Light', 'AWS / Groups (light)', false,
+		this.addPaletteFunctions('aws4Groups Light', 'AWS18 / Groups (light)', false,
 		[
 			 this.createVertexTemplateEntry(n4 + 'group;grIcon=' + gn + '.group_aws_cloud;strokeColor=#AAB7B8;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#AAB7B8;dashed=0;',
 					 130, 130, 'AWS Cloud', 'AWS Cloud', null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
@@ -172,9 +171,9 @@
 
 	Sidebar.prototype.addAWS4GroupsDarkPalette = function(n4, gn, sb)
 	{
-		var dt = 'aws group amazon web service groups group dark';
+		var dt = 'aws amazon web service groups group dark';
 		
-		this.addPaletteFunctions('aws4Groups Dark', 'AWS / Groups (dark)', false,
+		this.addPaletteFunctions('aws4Groups Dark', 'AWS18 / Groups (dark)', false,
 		[
 			 this.createVertexTemplateEntry(n4 + 'group;grIcon=' + gn + '.group_aws_cloud;strokeColor=#858B94;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#858B94;dashed=0;',
 					 130, 130, 'AWS Cloud', 'AWS Cloud', null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
@@ -206,10 +205,8 @@
 	Sidebar.prototype.addAWS4AnalyticsPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service analytics';
-		n = 'gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;' + n;
-		n2 = 'strokeColor=#5A30B5;' + n2;
 		
-		this.addPaletteFunctions('aws4Analytics', 'AWS / Analytics', false,
+		this.addPaletteFunctions('aws4Analytics', 'AWS18 / Analytics', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.athena;',
 					 w, h + 10, 'Amazon Athena', null, null, null, this.getTagsForStencil(gn, 'athena', dt).join(' ')),
@@ -262,10 +259,8 @@
 	Sidebar.prototype.addAWS4ApplicationIntegrationPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service application integration';
-		n = 'gradientColor=#F34482;gradientDirection=north;fillColor=#BC1356;' + n;
-		n2 = 'strokeColor=#BC1356;' + n2;
 		
-		this.addPaletteFunctions('aws4Application Integration', 'AWS / Application Integration', false,
+		this.addPaletteFunctions('aws4Application Integration', 'AWS18 / Application Integration', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.step_functions;',
 					 w, h + 10, 'AWS Step Functions', null, null, null, this.getTagsForStencil(gn, 'step functions', dt).join(' ')),
@@ -294,10 +289,8 @@
 	Sidebar.prototype.addAWS4ARVRPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service ar vr augmented virtual reality';
-		n = 'gradientColor=#F34482;gradientDirection=north;fillColor=#BC1356;' + n;
-		n2 = 'strokeColor=#BC1356;' + n2;
 		
-		this.addPaletteFunctions('aws4AR VR', 'AWS / AR & VR', false,
+		this.addPaletteFunctions('aws4AR VR', 'AWS18 / AR & VR', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.sumerian;',
 					 w, h + 10, 'Amazon Sumerian', null, null, null, this.getTagsForStencil(gn, 'sumerian', dt).join(' '))
@@ -307,10 +300,8 @@
 	Sidebar.prototype.addAWS4CostManagementPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service cost management';
-		n = 'gradientColor=#60A337;gradientDirection=north;fillColor=#277116;' + n;
-		n2 = 'strokeColor=#277116;' + n2;
 		
-		this.addPaletteFunctions('aws4Cost Management', 'AWS / Cost Management', false,
+		this.addPaletteFunctions('aws4Cost Management', 'AWS18 / Cost Management', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.cost_explorer;',
 					 w, h + 10, 'AWS Cost Explorer', null, null, null, this.getTagsForStencil(gn, 'cost explorer', dt).join(' ')),
@@ -326,10 +317,8 @@
 	Sidebar.prototype.addAWS4BusinessProductivityPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service business productivity';
-		n = 'gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;' + n;
-		n2 = 'strokeColor=#C7131F;' + n2;
 		
-		this.addPaletteFunctions('aws4Business Productivity', 'AWS / Business Productivity', false,
+		this.addPaletteFunctions('aws4Business Productivity', 'AWS18 / Business Productivity', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.alexa_for_business;',
 					 w, h + 10, 'Alexa for Business', null, null, null, this.getTagsForStencil(gn, 'alexa for business', dt).join(' '))
@@ -339,10 +328,8 @@
 	Sidebar.prototype.addAWS4ComputePalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service compute';
-		n = 'gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;' + n;
-		n2 = 'strokeColor=#D05C17;' + n2;
 		
-		this.addPaletteFunctions('aws4Compute', 'AWS / Compute', false,
+		this.addPaletteFunctions('aws4Compute', 'AWS18 / Compute', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.ec2;',
 					 w, h, 'Amazon EC2', null, null, null, this.getTagsForStencil(gn, 'ec2', dt).join(' ')),
@@ -417,10 +404,8 @@
 	Sidebar.prototype.addAWS4CustomerEngagementPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service customer engagement';
-		n = 'gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;' + n;
-		n2 = 'strokeColor=#3334B9;' + n2;
 		
-		this.addPaletteFunctions('aws4Customer Engagement', 'AWS / Customer Engagement', false,
+		this.addPaletteFunctions('aws4Customer Engagement', 'AWS18 / Customer Engagement', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.connect;',
 					 w, h + 10, 'Amazon Connect', null, null, null, this.getTagsForStencil(gn, 'connect', dt).join(' ')),
@@ -437,10 +422,8 @@
 	Sidebar.prototype.addAWS4DatabasePalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service db database';
-		n = 'gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;' + n;
-		n2 = 'strokeColor=#3334B9;' + n2;
 		
-		this.addPaletteFunctions('aws4Database', 'AWS / Database', false,
+		this.addPaletteFunctions('aws4Database', 'AWS18 / Database', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.aurora;',
 					 w, h + 10, 'Amazon\nAurora', null, null, null, this.getTagsForStencil(gn, 'aurora', dt).join(' ')),
@@ -513,10 +496,8 @@
 	Sidebar.prototype.addAWS4DesktopAppStreamingPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service db database';
-		n = 'gradientColor=#4AB29A;gradientDirection=north;fillColor=#116D5B;' + n;
-		n2 = 'strokeColor=#116D5B;' + n2;
 		
-		this.addPaletteFunctions('aws4Desktop App Streaming', 'AWS / Desktop & App Streaming', false,
+		this.addPaletteFunctions('aws4Desktop App Streaming', 'AWS18 / Desktop & App Streaming', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.appstream_20;',
 					 w, h + 10, 'Amazon AppStream 2.0', null, null, null, this.getTagsForStencil(gn, 'appstream', dt).join(' '))
@@ -526,10 +507,8 @@
 	Sidebar.prototype.addAWS4DeveloperToolsPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service dev developer tools';
-		n = 'gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;' + n;
-		n2 = 'strokeColor=#3334B9;' + n2;
 		
-		this.addPaletteFunctions('aws4Developer Tools', 'AWS / Developer Tools', false,
+		this.addPaletteFunctions('aws4Developer Tools', 'AWS18 / Developer Tools', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.codestar;',
 					 w, h, 'AWS CodeStar', null, null, null, this.getTagsForStencil(gn, 'codestar', dt).join(' ')),
@@ -555,10 +534,8 @@
 	Sidebar.prototype.addAWS4GameDevelopmentPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service game development';
-		n = 'gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;' + n;
-		n2 = 'strokeColor=#5A30B5;' + n2;
 		
-		this.addPaletteFunctions('aws4Game Development', 'AWS / Game Development', false,
+		this.addPaletteFunctions('aws4Game Development', 'AWS18 / Game Development', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.gamelift;',
 					 w, h + 10, 'Amazon GameLift', null, null, null, this.getTagsForStencil(gn, 'gamelift', dt).join(' '))
@@ -568,10 +545,8 @@
 	Sidebar.prototype.addAWS4InternetOfThingsPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service internet of things iot';
-		n = 'gradientColor=#60A337;gradientDirection=north;fillColor=#277116;' + n;
-		n2 = 'strokeColor=#277116;' + n2;
 		
-		this.addPaletteFunctions('aws4Internet of Things', 'AWS / Internet of Things', false,
+		this.addPaletteFunctions('aws4Internet of Things', 'AWS18 / Internet of Things', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.iot_core;',
 					 w, h + 10, 'Amazon IoT Core', null, null, null, this.getTagsForStencil(gn, 'core', dt).join(' ')),
@@ -595,10 +570,8 @@
 	Sidebar.prototype.addAWS4IOTThingsPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service internet of things iot';
-		n = 'gradientColor=#60A337;gradientDirection=north;fillColor=#277116;' + n;
-		n2 = 'strokeColor=#277116;' + n2;
 		
-		this.addPaletteFunctions('aws4IoT Things', 'AWS / IoT Things', false,
+		this.addPaletteFunctions('aws4IoT Things', 'AWS18 / IoT Things', false,
 		[
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.bank;',
 					 w2, w2, 'Bank', null, null, null, this.getTagsForStencil(gn, 'bank', dt).join(' ')),
@@ -640,10 +613,8 @@
 	Sidebar.prototype.addAWS4IOTResourcesPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service internet of things iot resources';
-		n = 'gradientColor=#60A337;gradientDirection=north;fillColor=#277116;' + n;
-		n2 = 'strokeColor=#277116;' + n2;
 		
-		this.addPaletteFunctions('aws4IoT Resources', 'AWS / IoT Resources', false,
+		this.addPaletteFunctions('aws4IoT Resources', 'AWS18 / IoT Resources', false,
 		[
 			 this.createVertexTemplateEntry(n2 + 'resourceIcon;resIcon=' + gn + '.action;',
 					 w2, w2, 'Action', null, null, null, this.getTagsForStencil(gn, 'action', dt).join(' ')),
@@ -699,10 +670,8 @@
 	Sidebar.prototype.addAWS4MachineLearningPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service machine learning';
-		n = 'gradientColor=#4AB29A;gradientDirection=north;fillColor=#116D5B;' + n;
-		n2 = 'strokeColor=#116D5B;' + n2;
 		
-		this.addPaletteFunctions('aws4Machine Learning', 'AWS / Machine Learning', false,
+		this.addPaletteFunctions('aws4Machine Learning', 'AWS18 / Machine Learning', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.sagemaker;',
 					 w, h + 10, 'Amazon SageMaker', null, null, null, this.getTagsForStencil(gn, 'sagemaker', dt).join(' ')),
@@ -732,10 +701,8 @@
 	Sidebar.prototype.addAWS4ManagementToolsPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service management tools';
-		n = 'gradientColor=#F34482;gradientDirection=north;fillColor=#BC1356;' + n;
-		n2 = 'strokeColor=#BC1356;' + n2;
 		
-		this.addPaletteFunctions('aws4Management Tools', 'AWS / Management Tools', false,
+		this.addPaletteFunctions('aws4Management Tools', 'AWS18 / Management Tools', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.cloudwatch;',
 					 w, h + 10, 'Amazon CloudWatch', null, null, null, this.getTagsForStencil(gn, 'cloudwatch', dt).join(' ')),
@@ -830,10 +797,8 @@
 	Sidebar.prototype.addAWS4MediaServicesPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service media services';
-		n = 'gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;' + n;
-		n2 = 'strokeColor=#D05C17;' + n2;
 		
-		this.addPaletteFunctions('aws4Media Services', 'AWS / Media Services', false,
+		this.addPaletteFunctions('aws4Media Services', 'AWS18 / Media Services', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.elastic_transcoder;',
 					 w, h + 10, 'Amazon Elastic Transcoder', null, null, null, this.getTagsForStencil(gn, 'elastic transcoder', dt).join(' ')),
@@ -855,10 +820,8 @@
 	Sidebar.prototype.addAWS4MigrationPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service migration';
-		n = 'gradientColor=#4AB29A;gradientDirection=north;fillColor=#116D5B;' + n;
-		n2 = 'strokeColor=#116D5B;' + n2;
 		
-		this.addPaletteFunctions('aws4Migration', 'AWS / Migration', false,
+		this.addPaletteFunctions('aws4Migration', 'AWS18 / Migration', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.migration_hub;',
 					 w, h + 10, 'AWS Migration Hub', null, null, null, this.getTagsForStencil(gn, 'migration hub', dt).join(' ')),
@@ -880,10 +843,8 @@
 	Sidebar.prototype.addAWS4MobileServicesPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service mobile services';
-		n = 'gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;' + n;
-		n2 = 'strokeColor=#C7131F;' + n2;
 		
-		this.addPaletteFunctions('aws4Mobile Services', 'AWS / Mobile Services', false,
+		this.addPaletteFunctions('aws4Mobile Services', 'AWS18 / Mobile Services', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.appsync;',
 					 w, h, 'AWS AppSync', null, null, null, this.getTagsForStencil(gn, 'appsync', dt).join(' ')),
@@ -901,10 +862,8 @@
 	Sidebar.prototype.addAWS4NetworkContentDeliveryPalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service netowrk content delivery';
-		n = 'gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;' + n;
-		n2 = 'strokeColor=#5A30B5;' + n2;
 		
-		this.addPaletteFunctions('aws4Network Content Delivery', 'AWS / Network & Content Delivery', false,
+		this.addPaletteFunctions('aws4Network Content Delivery', 'AWS18 / Network & Content Delivery', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.vpc;',
 					 w, h, 'Amazon VPC', null, null, null, this.getTagsForStencil(gn, 'vpc virtual private cloud', dt).join(' ')),
@@ -959,10 +918,8 @@
 	Sidebar.prototype.addAWS4SecurityIdentityCompliancePalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service security identity compliance';
-		n = 'gradientColor=#F54749;gradientDirection=north;fillColor=#C7131F;' + n;
-		n2 = 'strokeColor=#C7131F;' + n2;
 		
-		this.addPaletteFunctions('aws4Security Identity Compliance', 'AWS / Security, Identity & Compliance', false,
+		this.addPaletteFunctions('aws4Security Identity Compliance', 'AWS18 / Security, Identity & Compliance', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.identity_and_access_management;',
 					 w, h + 20, 'AWS Identity and Access Management', null, null, null, this.getTagsForStencil(gn, 'identity and access management', dt).join(' ')),
@@ -1025,10 +982,8 @@
 	Sidebar.prototype.addAWS4StoragePalette = function(w, h, w2, n, n2, gn, sb)
 	{
 		var dt = 'aws amazon web service storage';
-		n = 'gradientColor=#60A337;gradientDirection=north;fillColor=#277116;' + n;
-		n2 = 'strokeColor=#277116;' + n2;
 		
-		this.addPaletteFunctions('aws4Storage', 'AWS / Storage', false,
+		this.addPaletteFunctions('aws4Storage', 'AWS18 / Storage', false,
 		[
 			 this.createVertexTemplateEntry(n + 'productIcon;prIcon=' + gn + '.s3;',
 					 w, h, 'Amazon S3', null, null, null, this.getTagsForStencil(gn, 's3', dt).join(' ')),

File diff suppressed because it is too large
+ 1219 - 0
src/main/webapp/js/diagramly/sidebar/Sidebar-AWS4b.js


+ 12 - 3
src/main/webapp/js/diagramly/sidebar/Sidebar.js

@@ -112,8 +112,14 @@
 	 */
 	Sidebar.prototype.aws4 = ['Arrows', 'General Resources', 'Illustrations', 'Groups Light', 'Groups Dark', 'Analytics', 'Application Integration', 'AR VR', 'Cost Management', 'Business Productivity', 'Compute', 'Customer Engagement',
 							  'Database', 'Desktop App Streaming', 'Developer Tools', 'Game Development', 'Internet of Things', 'IoT Things', 'IoT Resources', 'Machine Learning', 'Management Tools',
-							  'Media Services', 'Migration', 'Mobile Services', 'Network Content Delivery', 'Security Identity Compliance', 'Storage'];
-	
+							  'Media Services', 'Migration', 'Mobile Services', 'Network Content Delivery', 'Security Identity Compliance', 'Storage'];	
+	/**
+	 *
+	 */
+	Sidebar.prototype.aws4b = ['Arrows', 'General Resources', 'Illustrations', 'Groups', 'Analytics', 'Application Integration', 'AR VR', 'Cost Management', 'Blockchain', 
+							  'Business Applications', 'EC2 Instance Types', 'Compute', 'Customer Engagement',
+							  'Database', 'Desktop App Streaming', 'Developer Tools', 'Game Tech', 'Internet of Things', 'IoT Things', 'IoT Resources', 'Machine Learning', 'Management Governance',
+							  'Media Services', 'Migration Transfer', 'Mobile', 'Network Content Delivery', 'Robotics', 'Satellite', 'Security Identity Compliance', 'Storage'];
 	/**
 	 * 
 	 */
@@ -175,6 +181,7 @@
            	                           {id: 'aws2', prefix: 'aws2', libs: Sidebar.prototype.aws2},
            	                           {id: 'aws3', prefix: 'aws3', libs: Sidebar.prototype.aws3},
            	                           {id: 'aws4', prefix: 'aws4', libs: Sidebar.prototype.aws4},
+           	                           {id: 'aws4b', prefix: 'aws4b', libs: Sidebar.prototype.aws4b},
            	                           {id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids},
            	                           {id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco},
            	                           {id: 'cisco_safe', prefix: 'cisco_safe', libs: Sidebar.prototype.cisco_safe},
@@ -444,7 +451,8 @@
             			{title: mxResources.get('networking'),
             			entries: [{title: 'AWS17', id: 'aws3', image: IMAGE_PATH + '/sidebar-aws3.png'},
             			// TODO: Add isometric containers  		                          
-            				      {title: 'AWS19', id: 'aws4', image: IMAGE_PATH + '/sidebar-aws4.png'},
+							      {title: 'AWS18', id: 'aws4', image: IMAGE_PATH + '/sidebar-aws4.png'},
+							      {title: 'AWS19', id: 'aws4b', image: IMAGE_PATH + '/sidebar-aws4.png'},
             					  {title: 'Allied Telesis', id: 'allied_telesis', image: IMAGE_PATH + '/sidebar-allied_telesis.png'},
             			          {title: mxResources.get('aws3d'), id: 'aws3d', image: IMAGE_PATH + '/sidebar-aws3d.png'},
             			          {title: mxResources.get('azure'), id: 'azure', image: IMAGE_PATH + '/sidebar-azure.png'},
@@ -864,6 +872,7 @@
 		this.addBpmnPalette(dir, false);
 		this.addAWS3Palette();
 		this.addAWS4Palette();
+		this.addAWS4bPalette();
 		this.addAWS3DPalette();
 		this.addLeanMappingPalette();
 		this.addIos7Palette();

+ 24 - 24
src/main/webapp/js/mxgraph/Graph.js

@@ -1566,6 +1566,30 @@ Graph.prototype.isRelativeUrl = function(url)
 		!this.isExternalProtocol(url);
 };
 
+/**
+ * 
+ */
+Graph.prototype.getAbsoluteUrl = function(url)
+{
+	if (url != null && this.isRelativeUrl(url))
+	{
+		if (url.charAt(0) == '#')
+		{
+			url = this.baseUrl + url;
+		}
+		else if (url.charAt(0) == '/')
+		{
+			url = this.domainUrl + url;
+		}
+		else
+		{
+			url = this.domainPathUrl + url;
+		}
+	}
+	
+	return url;
+};
+
 /**
  * Installs automatic layout via styles
  */
@@ -5673,30 +5697,6 @@ if (typeof mxVertexHandler != 'undefined')
 			return label;
 		};
 
-		/**
-		 * 
-		 */
-		Graph.prototype.getAbsoluteUrl = function(url)
-		{
-			if (url != null && this.isRelativeUrl(url))
-			{
-				if (url.charAt(0) == '#')
-				{
-					url = this.baseUrl + url;
-				}
-				else if (url.charAt(0) == '/')
-				{
-					url = this.domainUrl + url;
-				}
-				else
-				{
-					url = this.domainPathUrl + url;
-				}
-			}
-			
-			return url;
-		};
-
 		/**
 		 * Adds a handler for clicking on shapes with links. This replaces all links in labels.
 		 */

File diff suppressed because it is too large
+ 7 - 4
src/main/webapp/js/shapes.min.js


File diff suppressed because it is too large
+ 1 - 1
src/main/webapp/js/stencils.min.js


File diff suppressed because it is too large
+ 121 - 121
src/main/webapp/js/viewer.min.js


+ 6 - 1
src/main/webapp/resources/dia.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_am.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ar.txt

@@ -333,6 +333,7 @@ googleDocs=‫وثائق Google‬
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=‫مواقع Google‬
 gradient=‫التدرج‬
@@ -693,7 +694,7 @@ transparent=‫شفاف‬
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=‫إعادة المحاولة‬
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=‫تدوير‬
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_bg.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google сайтове
 gradient=Градиент
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_bn.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_bs.txt

@@ -333,6 +333,7 @@ googleDocs=Google dokumenti
 googleDrive=Google Disk
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google stranice
 gradient=Stepen
@@ -693,7 +694,7 @@ transparent=Proziran
 transparentBackground=Prozirna pozadina
 trello=Trello
 tryAgain=Pokušaj ponovo
-tryOpeningViaThisPage=Pokušaj otvoriti preko ove stranice.
+tryOpeningViaThisPage=Pokušaj otvoriti preko ove stranice
 turn=Rotiraj 90°
 type=Piši
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ca.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Fons transparent
 trello=Trello
 tryAgain=Torna a provar-ho
-tryOpeningViaThisPage=Prova d'obrir-lo via aquesta pàgina.
+tryOpeningViaThisPage=Prova d'obrir-lo via aquesta pàgina
 turn=Gira 90°
 type=Escriu
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_cs.txt

@@ -333,6 +333,7 @@ googleDocs=Google dokumenty
 googleDrive=Google Disk 
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Stránky
 gradient=Barevný přechod
@@ -693,7 +694,7 @@ transparent=Průhledný
 transparentBackground=Průhledné pozadí
 trello=Trello
 tryAgain=Zkusit znovu
-tryOpeningViaThisPage=Zkuste otevřít přes tuto stránku.
+tryOpeningViaThisPage=Zkuste otevřít přes tuto stránku
 turn=Otočit o 90°
 type=Text
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_da.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drev
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Gennemsigtig
 transparentBackground=Gennemsigtig baggrund
 trello=Trello
 tryAgain=Forsøg igen
-tryOpeningViaThisPage=Prøv at åbne via denne side.
+tryOpeningViaThisPage=Prøv at åbne via denne side
 turn=Drej
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_de.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Teilen ist nur in Google Drive verfügbar. Klicken Sie Öffnen und teilen Sie über das Menu Weitere Aktionen:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Verlauf
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparenter Hintergrund
 trello=Trello
 tryAgain=Erneut versuchen
-tryOpeningViaThisPage=Versuchen Sie die Datei über diese Seite zu öffnen.
+tryOpeningViaThisPage=Versuchen Sie über diese Seite zu öffnen
 turn=Nur Form um 90° drehen
 type=Typ
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Mit OneDrive verbinden
+selectChildren=Kindknoten markieren
+selectSiblings=Geschwisterknoten markieren
+selectParent=Vaterknoten markieren
+selectDescendants=Untergeordnete Knoten markieren

+ 5 - 0
src/main/webapp/resources/dia_el.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Ντεγκραντέ
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_eo.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_es.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradiente
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_et.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Üleminekuvärv
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_fa.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=‫گرادیان‬
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_fi.txt

@@ -333,6 +333,7 @@ googleDocs=Google Dokumentit
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Liukuvärjäys
@@ -693,7 +694,7 @@ transparent=Läpinäkyvä
 transparentBackground=Läpinäkyvä tausta
 trello=Trello
 tryAgain=Yritä uudelleen
-tryOpeningViaThisPage=Yritä avaamista tältä sivulta.
+tryOpeningViaThisPage=Yritä avaamista tältä sivulta
 turn=Käännä
 type=Tyyppi
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_fil.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_fr.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Arrière-plan transparent
 trello=Trello
 tryAgain=Réessayer
-tryOpeningViaThisPage=Essayer d'ouvrir via cette page.
+tryOpeningViaThisPage=Essayer d'ouvrir via cette page
 turn=Pivoter à 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_gu.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_he.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=‫שיפוע‬
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_hi.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_hr.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_hu.txt

@@ -333,6 +333,7 @@ googleDocs=Google Dokumentumok
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Oldalak
 gradient=Gradiens
@@ -693,7 +694,7 @@ transparent=Átlátszó
 transparentBackground=Átlátszó háttér
 trello=Trello
 tryAgain=Újra próbál
-tryOpeningViaThisPage=Próbálja ezen az oldalon nyitni.
+tryOpeningViaThisPage=Próbálja ezen az oldalon nyitni
 turn=Fordít
 type=Típus
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_i18n.txt

@@ -333,6 +333,7 @@ googleDocs=googleDocs
 googleDrive=googleDrive
 googleGadget=googleGadget
 googlePlus=googlePlus
+googleSharingNotAvailable=googleSharingNotAvailable
 googleSlides=googleSlides
 googleSites=googleSites
 gradient=gradient
@@ -794,3 +795,7 @@ sharepoint=sharepoint
 officeManualUpdateInst=officeManualUpdateInst
 pasteDiagram=pasteDiagram
 connectOD=connectOD
+selectChildren=selectChildren
+selectSiblings=selectSiblings
+selectParent=selectParent
+selectDescendants=selectDescendants

+ 6 - 1
src/main/webapp/resources/dia_id.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Situs Google
 gradient=Gradien
@@ -693,7 +694,7 @@ transparent=Transparan
 transparentBackground=Latar Transparan
 trello=Trello
 tryAgain=Coba lagi
-tryOpeningViaThisPage=Coba buka melalui halaman ini.
+tryOpeningViaThisPage=Coba buka melalui halaman ini
 turn=Putar 90°
 type=Tipe
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_it.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradiente
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_ja.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google ドライブ
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=グラデーション
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_kn.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ko.txt

@@ -333,6 +333,7 @@ googleDocs=구글 문서
 googleDrive=구글 드라이브
 googleGadget=구글 가젯
 googlePlus=구글 플러스
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=구글 사이트
 gradient=그라데이션
@@ -693,7 +694,7 @@ transparent=투명
 transparentBackground=투명한 배경
 trello=Trello
 tryAgain=다시 시도하십시오
-tryOpeningViaThisPage=본 페이지를 통해 열어 주시기 바랍니다.
+tryOpeningViaThisPage=본 페이지를 통해 열어 주시기 바랍니다
 turn=90도 회전
 type=유형
 twitter=트위터
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_lt.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_lv.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ml.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_mr.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ms.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Kecerunan
@@ -693,7 +694,7 @@ transparent=Lutsinar
 transparentBackground=Latar Belakang Lutsinar
 trello=Trello
 tryAgain=Cuba lagi
-tryOpeningViaThisPage=Cuba buka melalui halaman ini.
+tryOpeningViaThisPage=Cuba buka melalui halaman ini
 turn=Putar 90°
 type=Jenis
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_nl.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradiënt
@@ -693,7 +694,7 @@ transparent=Transparant
 transparentBackground=Transparante achtergrond
 trello=Trello
 tryAgain=Opnieuw proberen
-tryOpeningViaThisPage=Probeer via deze pagina te openen.
+tryOpeningViaThisPage=Probeer via deze pagina te openen
 turn=90° draaien
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_no.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Overgang
@@ -693,7 +694,7 @@ transparent=Gjennomsiktig
 transparentBackground=Gjennomsiktig bakgrunn
 trello=Trello
 tryAgain=Prøv på nytt
-tryOpeningViaThisPage=Prøv å opne fra denne siden.
+tryOpeningViaThisPage=Prøv å opne fra denne siden
 turn=Vend 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_pl.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Cieniowanie
@@ -693,7 +694,7 @@ transparent=Przezroczysty
 transparentBackground=Przezroczyste tło
 trello=Trello
 tryAgain=Spróbuj ponownie
-tryOpeningViaThisPage=Spróbuj otworzyć poprzez tę stronę.
+tryOpeningViaThisPage=Spróbuj otworzyć poprzez tę stronę
 turn=Obróć o 90°
 type=Rodzaj
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_pt-br.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradiente
@@ -693,7 +694,7 @@ transparent=Transparente
 transparentBackground=Plano de Fundo Transparente
 trello=Trello
 tryAgain=Tentar novamente
-tryOpeningViaThisPage=Tente abrir através desta página.
+tryOpeningViaThisPage=Tente abrir através desta página
 turn=Girar 90°
 type=Tipo
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_pt.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradiente
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ro.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Fundal transparent
 trello=Trello
 tryAgain=Încearcă din nou
-tryOpeningViaThisPage=Încearca deschiderea prin această pagină.
+tryOpeningViaThisPage=Încearca deschiderea prin această pagină
 turn=Rotează cu 90 de grade.
 type=Tip.
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ru.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Градиент
@@ -693,7 +694,7 @@ transparent=Прозрачный
 transparentBackground=Прозрачный фон
 trello=Trello
 tryAgain=Попробуйте еще раз
-tryOpeningViaThisPage=Попробуйте открыть через эту страницу.
+tryOpeningViaThisPage=Попробуйте открыть через эту страницу
 turn=Повернуть на 90 градусов
 type=Тип
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_sk.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_sl.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_sr.txt

@@ -333,6 +333,7 @@ googleDocs=Google dokumenti
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradijent
@@ -693,7 +694,7 @@ transparent=Proziran
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Pokušajte ponovo
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Okreni
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_sv.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Övertoning
@@ -693,7 +694,7 @@ transparent=Transparant
 transparentBackground=Transparant bakgrund
 trello=Trello
 tryAgain=Försök igen
-tryOpeningViaThisPage=Försök att öpna via denna sida.
+tryOpeningViaThisPage=Försök att öpna via denna sida
 turn=Rotera 90°
 type=Typ
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_sw.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_ta.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_te.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Gradient
@@ -693,7 +694,7 @@ transparent=Transparent
 transparentBackground=Transparent Background
 trello=Trello
 tryAgain=Try again
-tryOpeningViaThisPage=Try opening via this page.
+tryOpeningViaThisPage=Try opening via this page
 turn=Rotate shape only by 90°
 type=Type
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_th.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=ความลาดชัน
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 5 - 0
src/main/webapp/resources/dia_tr.txt

@@ -333,6 +333,7 @@ googleDocs=Google Dökümanları
 googleDrive=Google Sürücüsü
 googleGadget=Google aracı
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Siteleri
 gradient=Gradyan
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_uk.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Градієнт
@@ -693,7 +694,7 @@ transparent=Прозорий
 transparentBackground=Прозорий фон
 trello=Trello
 tryAgain=Спробуйте ще раз
-tryOpeningViaThisPage=Спробуйте відкрити на цій сторінці.
+tryOpeningViaThisPage=Спробуйте відкрити на цій сторінці
 turn=Повернути
 type=Надрукувати
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_vi.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=Độ dốc
@@ -693,7 +694,7 @@ transparent=Độ trong suốt
 transparentBackground=Hình nền trong suốt
 trello=Trello
 tryAgain=Thử lại
-tryOpeningViaThisPage=Thử mở bằng trang này.
+tryOpeningViaThisPage=Thử mở bằng trang này
 turn=Xoay 90°
 type=Loại
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_zh-tw.txt

@@ -333,6 +333,7 @@ googleDocs=Google 文件
 googleDrive=Google 雲端硬碟
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google 協作平台
 gradient=漸層
@@ -693,7 +694,7 @@ transparent=透明
 transparentBackground=透明背景
 trello=Trello
 tryAgain=再試一次
-tryOpeningViaThisPage=嘗試透過此頁面開啟
+tryOpeningViaThisPage=嘗試透過此頁面開啟
 turn=旋轉90°
 type=類型
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 6 - 1
src/main/webapp/resources/dia_zh.txt

@@ -333,6 +333,7 @@ googleDocs=Google Docs
 googleDrive=Google Drive
 googleGadget=Google Gadget
 googlePlus=Google+
+googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
 googleSlides=Google Slides
 googleSites=Google Sites
 gradient=渐变
@@ -693,7 +694,7 @@ transparent=透明
 transparentBackground=透明背景
 trello=Trello
 tryAgain=重试
-tryOpeningViaThisPage=尝试通过此页面开启
+tryOpeningViaThisPage=尝试通过此页面开启
 turn=旋转90°
 type=类型
 twitter=Twitter
@@ -794,3 +795,7 @@ sharepoint=Sharepoint
 officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
 pasteDiagram=Paste draw.io diagram here
 connectOD=Connect to OneDrive
+selectChildren=Select Children
+selectSiblings=Select Siblings
+selectParent=Select Parent
+selectDescendants=Select Descendants

+ 130 - 6
src/main/webapp/shapes/mxAWS4.js

@@ -36,7 +36,7 @@ mxShapeAws4ProductIcon.prototype.paintVertexShape = function(c, x, y, w, h)
 {
 	c.translate(x, y);
 
-	var opacity = mxUtils.getValue(this.style, 'opacity', '100');
+	var opacity = parseFloat(mxUtils.getValue(this.style, 'opacity', '100'));
 	var op1 = opacity;
 	var op2 = opacity;
 	
@@ -51,9 +51,8 @@ mxShapeAws4ProductIcon.prototype.paintVertexShape = function(c, x, y, w, h)
 	}
 
 	var ind = 1;
-	var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', '#000000');
+	var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', 'none');
 	c.setFillColor(strokeColor);
-	c.setGradient(fillColor, fillColor, 0, 0, w, h, gradientDir, op1, op2);	
 
 	c.begin();
 	c.moveTo(0, 0);
@@ -87,7 +86,8 @@ mxShapeAws4ProductIcon.prototype.paintVertexShape = function(c, x, y, w, h)
 	{
 		c.setFillColor(strokeColor);
 		c.setStrokeColor('none');
-		stencil.drawShape(c, this, ind, ind, w - 2 * ind, w - 2 * ind);
+//		stencil.drawShape(c, this, w * 0.1, h * 0.1, w * 0.8, h * 0.8);
+		stencil.drawShape(c, this, ind + w * 0.15, ind + w * 0.15, w * 0.7 - 2 * ind, w * 0.7 - 2 * ind);
 	}
 
 };
@@ -133,7 +133,7 @@ mxShapeAws4ResourceIcon.prototype.paintVertexShape = function(c, x, y, w, h)
 	c.lineTo(w, h);
 	c.lineTo(0, h);
 	c.close();
-	c.fillAndStroke();
+	c.fill();
 
 	var prIcon = mxUtils.getValue(this.state.style, 'resIcon', '');
 	var stencil = mxStencilRegistry.getStencil(prIcon);
@@ -143,7 +143,7 @@ mxShapeAws4ResourceIcon.prototype.paintVertexShape = function(c, x, y, w, h)
 		var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', '#000000');
 		c.setFillColor(strokeColor);
 		c.setStrokeColor('none');
-		stencil.drawShape(c, this, 0, 0, w, h);
+		stencil.drawShape(c, this, w * 0.1, h * 0.1, w * 0.8, h * 0.8);
 	}
 
 };
@@ -278,3 +278,127 @@ mxShapeAws4GroupCenter.prototype.paintVertexShape = function(c, x, y, w, h)
 
 mxCellRenderer.registerShape(mxShapeAws4GroupCenter.prototype.cst.GROUP_CENTER, mxShapeAws4GroupCenter);
 
+////**********************************************************************************************************************************************************
+////Resource Icon
+////**********************************************************************************************************************************************************
+///**
+//* Extends mxShape.
+//*/
+//function mxShapeAws4ResourceIcon(bounds, fill, stroke, strokewidth)
+//{
+//	mxShape.call(this);
+//	this.bounds = bounds;
+//	this.fill = fill;
+//	this.stroke = stroke;
+//	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+//};
+//
+///**
+//* Extends mxShape.
+//*/
+//mxUtils.extend(mxShapeAws4ResourceIcon, mxShape);
+//
+//mxShapeAws4ResourceIcon.prototype.cst = {
+//		RESOURCE_ICON : 'mxgraph.aws4.resourceIcon'
+//};
+//
+///**
+//* Function: paintVertexShape
+//* 
+//* Paints the vertex shape.
+//*/
+//mxShapeAws4ResourceIcon.prototype.paintVertexShape = function(c, x, y, w, h)
+//{
+//	c.translate(x, y);
+//
+//	c.begin();
+//	c.moveTo(0, 0);
+//	c.lineTo(w, 0);
+//	c.lineTo(w, h);
+//	c.lineTo(0, h);
+//	c.close();
+//	c.fillAndStroke();
+//
+//	var prIcon = mxUtils.getValue(this.state.style, 'resIcon', '');
+//	var stencil = mxStencilRegistry.getStencil(prIcon);
+//
+//	if (stencil != null)
+//	{
+//		var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', '#000000');
+//		c.setFillColor(strokeColor);
+//		c.setStrokeColor('none');
+//		stencil.drawShape(c, this, w * 0.1, h * 0.1, w * 0.8, h * 0.8);
+//	}
+//
+//};
+
+//**********************************************************************************************************************************************************
+//Group2
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeAws4Group2(bounds, fill, stroke, strokewidth)
+{
+	mxShape.call(this);
+	this.bounds = bounds;
+	this.fill = fill;
+	this.stroke = stroke;
+	this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeAws4Group2, mxShape);
+
+mxShapeAws4Group2.prototype.cst = {
+		GROUP2 : 'mxgraph.aws4.group2'
+};
+
+/**
+* Function: paintVertexShape
+* 
+* Paints the vertex shape.
+*/
+mxShapeAws4Group2.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+	c.translate(x, y);
+
+	var size = 25;
+
+	c.begin();
+	c.moveTo(0, 0);
+	c.lineTo(w, 0);
+	c.lineTo(w, h);
+	c.lineTo(0, h);
+	c.close();
+	c.fillAndStroke();
+
+	c.setShadow(false);
+
+	var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', '#000000');
+	c.setFillColor(strokeColor);
+
+	c.begin();
+	c.moveTo(0, 0);
+	c.lineTo(size, 0);
+	c.lineTo(size, size);
+	c.lineTo(0, size);
+	c.close();
+	c.fill();
+
+	var grIcon = mxUtils.getValue(this.state.style, 'grIcon', '');
+	var stencil = mxStencilRegistry.getStencil(grIcon);
+
+	if (stencil != null)
+	{
+		c.setFillColor('#ffffff');
+		c.setStrokeColor('none');
+		stencil.drawShape(c, this, size * 0.1, size * 0.1, size * 0.8, size * 0.8);
+	}
+
+};
+
+mxCellRenderer.registerShape(mxShapeAws4Group2.prototype.cst.GROUP2, mxShapeAws4Group2);
+

File diff suppressed because it is too large
+ 48317 - 38923
src/main/webapp/stencils/aws4.xml