Bug 504708 - Addition/removal icon in structure compare is wrong

Change-Id: I6f814da1c77f82a0dec908bd3e60ae2f5ef4a849
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
index b59aa51..57b4176 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
@@ -116,28 +116,30 @@
 		}
 	
 		@Override
+		@SuppressWarnings("incomplete-switch")
 		public Image getImage(Object element) {
 			if (element instanceof IDiffElement) {
 				IDiffElement input= (IDiffElement) element;
 				
 				int kind= input.getKind();
-				// Flip the direction and the change type, because all images are the other way round,
-				// i.e. for comparison from left to right.
+				// Flip the direction and the change type, because all images
+				// are the other way round, i.e. for comparison from left to right.
 				switch (kind & Differencer.DIRECTION_MASK) {
-					case Differencer.LEFT:
-						kind= (kind &~ Differencer.LEFT) | Differencer.RIGHT;
-						break;
-					case Differencer.RIGHT:
-						kind= (kind &~ Differencer.RIGHT) | Differencer.LEFT;
-						break;
-				}
-				switch (kind & Differencer.CHANGE_TYPE_MASK) {
+				case Differencer.LEFT:
+					kind= (kind &~ Differencer.LEFT) | Differencer.RIGHT;
+					break;
+				case Differencer.RIGHT:
+					kind= (kind &~ Differencer.RIGHT) | Differencer.LEFT;
+					break;
+				case 0:
+					switch (kind & Differencer.CHANGE_TYPE_MASK) {
 					case Differencer.ADDITION:
 						kind= (kind &~ Differencer.ADDITION) | Differencer.DELETION;
 						break;
 					case Differencer.DELETION:
 						kind= (kind &~ Differencer.DELETION) | Differencer.ADDITION;
 						break;
+					}
 				}
 
 				return fCompareConfiguration.getImage(input.getImage(), kind);