Merge remote-tracking branch 'origin/release_1.22.0' into develop

Change-Id: I5c99d273a81a6ffb371dd106b399ba5a5196110f
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java
index 0777360..deb8514 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/AbstractJFaceTreeRenderer.java
@@ -575,7 +575,9 @@
 					GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
 						.minSize(SWT.DEFAULT, 200)
 						.applyTo(render);
-					vCategorizationElement.setCurrentSelection((VCategorizableElement) child);
+					if (VCategorizableElement.class.isInstance(child)) {
+						vCategorizationElement.setCurrentSelection((VCategorizableElement) child);
+					}
 				} catch (final NoRendererFoundException e) {
 					getReportService().report(new RenderingFailedReport(e));
 				} catch (final NoPropertyDescriptorFoundExeption e) {
@@ -601,7 +603,19 @@
 		public void notifyChange(ModelChangeNotification notification) {
 			if (notification.getNotifier() instanceof VCategorizationElement
 				&& notification.getStructuralFeature() == Literals.CATEGORIZATION_ELEMENT__CURRENT_SELECTION) {
-				onSelectionChanged((VElement) notification.getNotifier());
+				/* call on selection changed if the new child is part of our subtree */
+				final Object currentSelection = notification.getRawNotification().getNewValue();
+				if (VElement.class.isInstance(currentSelection)) {
+					final VElement child = VElement.class.cast(currentSelection);
+					EObject parent = child;
+					while (EObject.class.isInstance(parent)) {
+						if (parent == getVElement()) {
+							onSelectionChanged(child);
+							break;
+						}
+						parent = parent.eContainer();
+					}
+				}
 			}
 
 		}
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/about.html b/bundles/org.eclipse.emfforms.ide.preferences/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.preferences/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
+ </head>
+ <body lang="EN-US">
+ <h2>About This Content</h2>
+ 
+ <p>November 30, 2017</p> 
+ <h3>License</h3>
+ 
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ 
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+ 
+ </body>
+ </html>
diff --git a/bundles/org.eclipse.emfforms.ide.preferences/build.properties b/bundles/org.eclipse.emfforms.ide.preferences/build.properties
index e9863e2..e5a949c 100644
--- a/bundles/org.eclipse.emfforms.ide.preferences/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.preferences/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               plugin.xml
+               plugin.xml,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html b/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
+ </head>
+ <body lang="EN-US">
+ <h2>About This Content</h2>
+ 
+ <p>November 30, 2017</p> 
+ <h3>License</h3>
+ 
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ 
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+ 
+ </body>
+ </html>
diff --git a/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
index c58ea21..30c35d7 100644
--- a/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.indexsegment/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
+ </head>
+ <body lang="EN-US">
+ <h2>About This Content</h2>
+ 
+ <p>November 30, 2017</p> 
+ <h3>License</h3>
+ 
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ 
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+ 
+ </body>
+ </html>
diff --git a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
index c58ea21..30c35d7 100644
--- a/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.mappingsegment/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html b/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
+ </head>
+ <body lang="EN-US">
+ <h2>About This Content</h2>
+ 
+ <p>November 30, 2017</p> 
+ <h3>License</h3>
+ 
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ 
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+ 
+ </body>
+ </html>
diff --git a/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties b/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
index b26f6d3..9cb187b 100644
--- a/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.multisegment/build.properties
@@ -2,4 +2,7 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
\ No newline at end of file
+               OSGI-INF/,\
+               about.html
+
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/about.html b/bundles/org.eclipse.emfforms.ide.view.segments/about.html
new file mode 100644
index 0000000..4a874d6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
+ </head>
+ <body lang="EN-US">
+ <h2>About This Content</h2>
+ 
+ <p>November 30, 2017</p> 
+ <h3>License</h3>
+ 
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ 
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+ 
+ </body>
+ </html>
diff --git a/bundles/org.eclipse.emfforms.ide.view.segments/build.properties b/bundles/org.eclipse.emfforms.ide.view.segments/build.properties
index c58ea21..30c35d7 100644
--- a/bundles/org.eclipse.emfforms.ide.view.segments/build.properties
+++ b/bundles/org.eclipse.emfforms.ide.view.segments/build.properties
@@ -2,4 +2,6 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/
+               OSGI-INF/,\
+               about.html
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
index cecfc27..0150ed0 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/diagnostic/DiagnosticCache.java
@@ -337,11 +337,18 @@
 					if (o1 == o2) {
 						return 0;
 					}
-					return o1.getData().get(0).hashCode() - o2.getData().get(0).hashCode();
+					return getHashCode(o1) - getHashCode(o2);
 				}
 				return -1 * Integer.class.cast(o1.getSeverity()).compareTo(o2.getSeverity());
 			}
 
+			private int getHashCode(Diagnostic o) {
+				if (o.getData().isEmpty()) {
+					return 0;
+				}
+				return o.getData().hashCode();
+			}
+
 		});
 
 		DiagnosticTreeNode(Diagnostic initialValue) {
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
index ba3c53c..9393f5c 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
@@ -69,4 +69,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.jface.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
index c379ea6..0cf88ab 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
@@ -90,4 +90,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.jface.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.text"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
index c2d1cc5..23adc78 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
+++ b/releng/org.eclipse.emf.ecp.repository.target/aggregateSite.properties
@@ -1 +1 @@
-associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/13x, http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/14x, http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties b/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
index aad5302..841f593 100644
--- a/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
+++ b/releng/org.eclipse.emf.ecp.repository/aggregateSite.properties
@@ -1 +1 @@
-associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/13x
\ No newline at end of file
+associate.sites=http://download.eclipse.org/emfstore/releases_19, http://download.eclipse.org/edapt/releases/14x
\ No newline at end of file