Bug 479209 - Update org.eclipse.ui.cheatsheets to Java 8

Generify the codebase.

Change-Id: I424f0966856c3a1c157c1d68ff90e2b0e9aa2be8
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/org.eclipse.ui.cheatsheets/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.cheatsheets/.settings/org.eclipse.jdt.core.prefs
index 1cc64e7..35d82ea 100644
--- a/org.eclipse.ui.cheatsheets/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.ui.cheatsheets/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,10 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
@@ -10,54 +16,87 @@
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
 org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
 org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
 org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
 org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
 org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
index 0843c58..5342bf8 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetManager.java
@@ -84,5 +84,5 @@
 	 * @return The set of keys.
 	 * @since 3.2
 	 */
-	public Set getKeySet();
+	public Set<String> getKeySet();
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
index 50f778b..b6f56eb 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/cheatsheets/ICheatSheetViewer.java
@@ -123,5 +123,5 @@
 	 * the cheat sheet manager.
 	 * @since 3.2
 	 */
-	public void reset(Map cheatSheetData);
+	public void reset(Map<String, String> cheatSheetData);
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
index d2c07be..b313a80 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetHistory.java
@@ -30,12 +30,12 @@
 
 	private static final int DEFAULT_DEPTH = 5;
 
-	private ArrayList history;
+	private ArrayList<CheatSheetElement> history;
 	private CheatSheetRegistryReader reg;
 	private ListenerList listeners = new ListenerList();
 
 	public CheatSheetHistory(CheatSheetRegistryReader reg) {
-		this.history = new ArrayList(DEFAULT_DEPTH);
+		this.history = new ArrayList<>(DEFAULT_DEPTH);
 		this.reg = reg;
 	}
 
@@ -67,9 +67,9 @@
 	}
 
 	public IStatus saveState(IMemento memento) {
-		Iterator iter = history.iterator();
+		Iterator<CheatSheetElement> iter = history.iterator();
 		while (iter.hasNext()) {
-			CheatSheetElement element = (CheatSheetElement)iter.next();
+			CheatSheetElement element = iter.next();
 			if(element != null) {
 				memento.createChild("element", element.getID()); //$NON-NLS-1$
 			}
@@ -104,9 +104,9 @@
 	public void refreshFromRegistry() {
 		boolean change = false;
 
-		Iterator iter = history.iterator();
+		Iterator<CheatSheetElement> iter = history.iterator();
 		while (iter.hasNext()) {
-			CheatSheetElement element = (CheatSheetElement)iter.next();
+			CheatSheetElement element = iter.next();
 			if (reg.findCheatSheet(element.getID()) == null) {
 				iter.remove();
 				change = true;
@@ -126,7 +126,7 @@
 	 * @param count number of items to copy from history
 	 * @return the number of items actually copied
 	 */
-	public int copyItems(List dest, int destStart, int count) {
+	public int copyItems(List<CheatSheetElement> dest, int destStart, int count) {
 		int itemCount = count;
 		if (itemCount > history.size())
 			itemCount = history.size();
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
index 844c91e..6ab8ade 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatSheetStopWatch.java
@@ -18,7 +18,7 @@
 public class CheatSheetStopWatch {
 	private static CheatSheetStopWatch stopWatch = null;
 
-	private Map table;
+	private Map<String, Entry> table;
 
 	private CheatSheetStopWatch() {
 
@@ -81,7 +81,7 @@
 	}
 
 	private Entry getEntry(String key) {
-		return (Entry) getTable().get(key);
+		return getTable().get(key);
 	}
 
 	private void putEntry(String key, Entry entry) {
@@ -95,9 +95,9 @@
 		entry.previousLap = -1;
 	}
 
-	private Map getTable() {
+	private Map<String, Entry> getTable() {
 		if (table == null) {
-			table = new HashMap(10);
+			table = new HashMap<>(10);
 		}
 		return table;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
index d9ed47b..743e8ab 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CheatsheetSearchParticipant.java
@@ -38,8 +38,8 @@
 	 * @return a set of hrefs for documents managed by this participant.
 	 */
 	@Override
-	public Set getAllDocuments(String locale) {
-		HashSet set = new HashSet();
+	public Set<String> getAllDocuments(String locale) {
+		HashSet<String> set = new HashSet<>();
 		IConfigurationElement[] elements = Platform.getExtensionRegistry()
 				.getConfigurationElementsFor(
 						ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.'
@@ -66,12 +66,12 @@
 	}
 
 	@Override
-	public Set getContributingPlugins() {
+	public Set<String> getContributingPlugins() {
 		IConfigurationElement[] elements = Platform.getExtensionRegistry()
 				.getConfigurationElementsFor(
 						ICheatSheetResource.CHEAT_SHEET_PLUGIN_ID + '.'
 						+ CheatSheetRegistryReader.CHEAT_SHEET_CONTENT);
-		HashSet set = new HashSet();
+		HashSet<String> set = new HashSet<>();
 		for (int i = 0; i < elements.length; i++) {
 			IConfigurationElement element = elements[i];
 			if (element.getName().equals(CheatSheetRegistryReader.TAG_CHEATSHEET)) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
index 4d38158..faee5ad 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/CommandRunner.java
@@ -34,10 +34,9 @@
 	private ICommandService getCommandService() {
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
-			Object serviceObject = wb.getAdapter(ICommandService.class);
+			ICommandService serviceObject = wb.getAdapter(ICommandService.class);
 		    if (serviceObject != null) {
-			    ICommandService service = (ICommandService)serviceObject;
-			    return service;
+				return serviceObject;
 		    }
 		}
 		return null;
@@ -46,10 +45,9 @@
 	private IHandlerService getHandlerService() {
 		IWorkbench wb =	PlatformUI.getWorkbench();
 		if (wb != null) {
-			Object serviceObject = wb.getAdapter(IHandlerService.class);
+			IHandlerService serviceObject = wb.getAdapter(IHandlerService.class);
 		    if (serviceObject != null) {
-			    IHandlerService service = (IHandlerService)serviceObject;
-			    return service;
+				return serviceObject;
 		    }
 		}
 		return null;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
index e78cb0e..823680a 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetCategoryBasedSelectionAction.java
@@ -56,7 +56,7 @@
 	 */
 	@Override
 	public void run() {
-		CheatSheetCollectionElement cheatSheets = (CheatSheetCollectionElement)CheatSheetRegistryReader.getInstance().getCheatSheets();
+		CheatSheetCollectionElement cheatSheets = CheatSheetRegistryReader.getInstance().getCheatSheets();
 
 		CheatSheetCategoryBasedSelectionDialog dialog = new CheatSheetCategoryBasedSelectionDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), cheatSheets);
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
index 1d49f2a..cc99748 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/actions/CheatSheetMenu.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ui.internal.cheatsheets.actions;
 
-import com.ibm.icu.text.Collator;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -18,15 +17,25 @@
 
 import org.eclipse.jface.action.ContributionItem;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.internal.cheatsheets.registry.*;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
+import org.eclipse.ui.internal.cheatsheets.CheatSheetHistory;
+import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
+import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
+import org.eclipse.ui.internal.cheatsheets.Messages;
+import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetCollectionElement;
+import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
+import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetRegistryReader;
 import org.eclipse.ui.internal.cheatsheets.views.CheatSheetView;
 
+import com.ibm.icu.text.Collator;
+
 /**
  * A menu for cheatsheet selection.
  * <p>
@@ -48,17 +57,15 @@
 
 	private IMenuContributor menuContributor;
 
-	private Comparator comparator = new Comparator() {
+	private Comparator<CheatSheetElement> comparator = new Comparator<CheatSheetElement>() {
 		private Collator collator = Collator.getInstance();
 
 		@Override
-		public int compare(Object ob1, Object ob2) {
+		public int compare(CheatSheetElement ob1, CheatSheetElement ob2) {
 			if(ob1 == null || ob2 == null) {
 				return -1;
 			}
-			CheatSheetElement d1 = (CheatSheetElement) ob1;
-			CheatSheetElement d2 = (CheatSheetElement) ob2;
-			return collator.compare(d1.getLabel(null), d2.getLabel(null));
+			return collator.compare(ob1.getLabel(null), ob2.getLabel(null));
 		}
 	};
 
@@ -120,12 +127,12 @@
 		}
 
 		// Collect and sort cheatsheet items.
-		ArrayList cheatsheets = getCheatSheetItems();
+		ArrayList<CheatSheetElement> cheatsheets = getCheatSheetItems();
 		Collections.sort(cheatsheets, comparator);
 
 		// Add cheatsheet shortcuts
 		for (int i = 0; i < cheatsheets.size(); i++) {
-			CheatSheetElement element = (CheatSheetElement) cheatsheets.get(i);
+			CheatSheetElement element = cheatsheets.get(i);
 			if (element != null) {
 				createMenuItem(menu, index++, element, element.getID().equals(checkID));
 			}
@@ -191,13 +198,13 @@
 	 *
 	 * @return an <code>ArrayList<code> of cheatsheet items <code>CheatSheetElement</code>
 	 */
-	protected ArrayList getCheatSheetItems() {
-		ArrayList list = new ArrayList(MAX_CHEATSHEET_ITEMS);
+	protected ArrayList<CheatSheetElement> getCheatSheetItems() {
+		ArrayList<CheatSheetElement> list = new ArrayList<>(MAX_CHEATSHEET_ITEMS);
 		int emptySlots = MAX_CHEATSHEET_ITEMS;
 
 		// Add cheatsheets from MRU list
 		if (emptySlots > 0) {
-			ArrayList mru = new ArrayList(MAX_CHEATSHEET_ITEMS);
+			ArrayList<CheatSheetElement> mru = new ArrayList<>(MAX_CHEATSHEET_ITEMS);
 			int count = getCheatSheetMru(mru, 0, MAX_CHEATSHEET_ITEMS);
 			for (int i = 0; i < count && emptySlots > 0; i++) {
 				if (!list.contains(mru.get(i))) {
@@ -208,7 +215,7 @@
 		}
 
 		// Add random cheatsheets until the list is filled.
-		CheatSheetCollectionElement cheatSheetsCollection = (CheatSheetCollectionElement)reg.getCheatSheets();
+		CheatSheetCollectionElement cheatSheetsCollection = reg.getCheatSheets();
 		emptySlots = addCheatSheets(list, cheatSheetsCollection, emptySlots);
 
 		return list;
@@ -223,11 +230,12 @@
 	 * @param emptySlots - number of empty slots remaining
 	 * @return int - number of empty slots remaining
 	 */
-	private int addCheatSheets(ArrayList list, CheatSheetCollectionElement cheatSheetsCollection, int emptySlots) {
+	private int addCheatSheets(ArrayList<CheatSheetElement> list, CheatSheetCollectionElement cheatSheetsCollection,
+			int emptySlots) {
 		Object[] cheatSheets = cheatSheetsCollection.getCheatSheets();
 		for (int i = 0; i < cheatSheets.length && emptySlots > 0; i++) {
 			if (!list.contains(cheatSheets[i])) {
-				list.add(cheatSheets[i]);
+				list.add((CheatSheetElement) cheatSheets[i]);
 				emptySlots--;
 			}
 		}
@@ -252,7 +260,7 @@
 	 * @param count number of items to copy from history
 	 * @return the number of items actually copied
 	 */
-	private int getCheatSheetMru(List dest, int destStart, int count) {
+	private int getCheatSheetMru(List<CheatSheetElement> dest, int destStart, int count) {
 		CheatSheetHistory history = CheatSheetPlugin.getPlugin().getCheatSheetHistory();
 		return history.copyItems(dest, destStart, count);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
index 8fbc51b..604e839 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
@@ -41,28 +41,28 @@
 	 */
 	private class ImageSet {
 		// Use a map rather than array so the nuber of icons is not hard coded
-		Map images = new HashMap();
+		Map<String, Image> images = new HashMap<>();
 
 		public void put(int index, Image image) {
 			images.put(Integer.toString(index), image);
 		}
 
 		public Image getImage(int index) {
-			return (Image)images.get(Integer.toString(index));
+			return images.get(Integer.toString(index));
 		}
 
 		void dispose() {
-			for (Iterator iter = images.values().iterator(); iter.hasNext(); ) {
-				Image nextImage = (Image)iter.next();
+			for (Iterator<Image> iter = images.values().iterator(); iter.hasNext();) {
+				Image nextImage = iter.next();
 				nextImage.dispose();
 			}
 		}
 	}
 
-	private Map imageMap = null; // each entry is an ImageSet
+	private Map<String, ImageSet> imageMap = null; // each entry is an ImageSet
 
 	public TreeLabelProvider() {
-		imageMap = new HashMap();
+		imageMap = new HashMap<>();
 	}
 
 	@Override
@@ -89,7 +89,7 @@
 	}
 
 	public Image lookupImage(String kind, int state, boolean isBlocked) {
-		ImageSet images = (ImageSet) imageMap.get(kind);
+		ImageSet images = imageMap.get(kind);
 		if (images == null) {
 			images = createImages(kind);
 			imageMap.put(kind, images);
@@ -107,8 +107,7 @@
 	 */
 	private ImageSet createImages(String kind) {
 		ImageSet images = new ImageSet();
-		ImageDescriptor desc;
-		desc = getPredefinedImageDescriptor(kind, true);
+		ImageDescriptor desc = getPredefinedImageDescriptor(kind, true);
         if (desc == null) {
 		    desc = TaskEditorManager.getInstance().getImageDescriptor(kind);
         }
@@ -201,8 +200,8 @@
 	@Override
 	public void dispose() {
 		if (imageMap != null) {
-			for (Iterator iter = imageMap.values().iterator(); iter.hasNext(); ) {
-			    ImageSet nextImages = (ImageSet)iter.next();
+			for (Iterator<ImageSet> iter = imageMap.values().iterator(); iter.hasNext();) {
+				ImageSet nextImages = iter.next();
 			    nextImages.dispose();
 			}
 			imageMap = null;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
index bd2e9e7..c2d16a7 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/AbstractTask.java
@@ -40,15 +40,15 @@
 
 	protected String kind;
 
-	private Dictionary parameters;
+	private Dictionary<String, String> parameters;
 
 	private String description;
 
 	private String completionMessage;
 
-	private ArrayList requiredTasks;
+	private ArrayList<ICompositeCheatSheetTask> requiredTasks;
 
-	private ArrayList successorTasks;
+	private ArrayList<ICompositeCheatSheetTask> successorTasks;
 
 	private boolean skippable;
 
@@ -61,9 +61,9 @@
 		this.id = id;
 		this.name = name;
 		this.kind = kind;
-		this.parameters = new Hashtable();
+		this.parameters = new Hashtable<>();
 		this.description = ""; //$NON-NLS-1$
-		requiredTasks = new ArrayList();
+		requiredTasks = new ArrayList<>();
 	}
 
 	@Override
@@ -82,7 +82,7 @@
 	}
 
 	@Override
-	public Dictionary getParameters() {
+	public Dictionary<String, String> getParameters() {
 		return parameters;
 	}
 
@@ -107,20 +107,20 @@
 	@Override
 	public ICompositeCheatSheetTask[] getRequiredTasks() {
 		if (requiredTasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])requiredTasks.toArray(new ICompositeCheatSheetTask[requiredTasks.size()]);
+		return requiredTasks.toArray(new ICompositeCheatSheetTask[requiredTasks.size()]);
 	}
 
 	public ICompositeCheatSheetTask[] getSuccessorTasks() {
 		if (successorTasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])successorTasks.toArray(new ICompositeCheatSheetTask[successorTasks.size()]);
+		return successorTasks.toArray(new ICompositeCheatSheetTask[successorTasks.size()]);
 	}
 
 	public void addRequiredTask(AbstractTask task) {
 		if (requiredTasks==null)
-			requiredTasks = new ArrayList();
+			requiredTasks = new ArrayList<>();
 		requiredTasks.add(task);
 		if (task.successorTasks==null)
-			task.successorTasks = new ArrayList();
+			task.successorTasks = new ArrayList<>();
 		task.successorTasks.add(this);
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
index 94981af..72449ff 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/BlockedTaskFinder.java
@@ -19,8 +19,8 @@
 
 public class BlockedTaskFinder {
 
-	private Set stateChangedTasks;
-	private Set impactedTasks;
+	private Set<ICompositeCheatSheetTask> stateChangedTasks;
+	private Set<ICompositeCheatSheetTask> impactedTasks;
 	/**
 	 * Find which tasks have either become blocked or unblocked so that they
 	 * can be added to the list of change events.
@@ -37,17 +37,17 @@
      * <li> Add the successor and its children to the list if not started
 	 */
 
-	public Set findBlockedTaskChanges(Set stateChangedTasks) {
+	public Set findBlockedTaskChanges(Set<ICompositeCheatSheetTask> stateChangedTasks) {
 		this.stateChangedTasks = stateChangedTasks;
-		impactedTasks = new HashSet();
+		impactedTasks = new HashSet<>();
 		visitChangedTasks();
 		findSuccesors();
 		return impactedTasks;
 	}
 
 	private void visitChangedTasks() {
-		for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
-			final ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)iter.next();
+		for (Iterator<ICompositeCheatSheetTask> iter = stateChangedTasks.iterator(); iter.hasNext();) {
+			final ICompositeCheatSheetTask nextTask = iter.next();
 			if (nextTask.getState() != ICompositeCheatSheetTask.IN_PROGRESS) {
 			    findUnstartedChildren(nextTask);
 			}
@@ -73,7 +73,7 @@
 	}
 
 	private void findSuccesors() {
-		for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
+		for (Iterator<ICompositeCheatSheetTask> iter = stateChangedTasks.iterator(); iter.hasNext();) {
 			final AbstractTask nextTask = (AbstractTask)iter.next();
 			ICompositeCheatSheetTask[] successors = nextTask.getSuccessorTasks();
 			for (int i = 0; i < successors.length; i++) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
index 0cdd1ed..36e499c 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetModel.java
@@ -37,7 +37,7 @@
 	private CompositeCheatSheetSaveHelper saveHelper;
 	private URL contentURL;
 	private CheatSheetManager manager;
-	private Set stateChangedSet = new HashSet();
+	private Set<ICompositeCheatSheetTask> stateChangedSet = new HashSet<>();
 
 	public void setRootTask(ICompositeCheatSheetTask task) {
 		rootTask = task;
@@ -138,7 +138,7 @@
 		this.manager = manager;
 	}
 
-	public void loadState(Map layoutData) {
+	public void loadState(Map<String, String> layoutData) {
 		saveHelper.loadCompositeState(this, layoutData);
 	}
 
@@ -162,10 +162,10 @@
 		}
 	}
 
-	public void resetAllTasks(Map cheatSheetData) {
+	public void resetAllTasks(Map<String, String> cheatSheetData) {
         if (manager != null) {
     		if (cheatSheetData == null) {
-            	manager.setData(new Hashtable());
+				manager.setData(new Hashtable<>());
     		} else {
     			manager.setData(cheatSheetData);
     		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
index dd275fe..9ba2d59 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/CompositeCheatSheetSaveHelper.java
@@ -38,7 +38,7 @@
 
 public class CompositeCheatSheetSaveHelper {
 	private static final String DOT_XML = ".xml"; //$NON-NLS-1$
-	private Map taskMementoMap;
+	private Map<String, IMemento> taskMementoMap;
 	private ICheatSheetStateManager stateManager;
 
 	/**
@@ -49,7 +49,7 @@
 		this.stateManager = stateManager;
 	}
 
-	public IStatus loadCompositeState(CompositeCheatSheetModel model, Map layoutData) {
+	public IStatus loadCompositeState(CompositeCheatSheetModel model, Map<String, String> layoutData) {
 		if (stateManager instanceof NoSaveStateManager) return Status.OK_STATUS;
 		XMLMemento readMemento = CheatSheetPlugin.getPlugin().readMemento(model.getId() + DOT_XML);
 		if (readMemento == null) {
@@ -63,8 +63,8 @@
         return Status.OK_STATUS;
 	}
 
-	private Map createTaskMap(XMLMemento readMemento) {
-		Map map = new HashMap();
+	private Map<String, IMemento> createTaskMap(XMLMemento readMemento) {
+		Map<String, IMemento> map = new HashMap<>();
 		IMemento[] tasks = readMemento.getChildren(ICompositeCheatsheetTags.TASK);
 		for (int i = 0; i < tasks.length; i++) {
 			String taskId = tasks[i].getString(ICompositeCheatsheetTags.TASK_ID);
@@ -75,9 +75,9 @@
 		return map;
 	}
 
-	private void loadTaskState(Map taskMap, AbstractTask task) {
+	private void loadTaskState(Map<String, IMemento> taskMap, AbstractTask task) {
 		ICompositeCheatSheetTask[] children = task.getSubtasks();
-		IMemento memento = (IMemento)taskMap.get(task.getId());
+		IMemento memento = taskMap.get(task.getId());
 		if (memento != null) {
 			String state = memento.getString(ICompositeCheatsheetTags.STATE);
 			if (state != null) {
@@ -105,7 +105,7 @@
 		}
 	}
 
-	private void loadLayoutData(XMLMemento readMemento, Map layoutData) {
+	private void loadLayoutData(XMLMemento readMemento, Map<String, String> layoutData) {
 		if (layoutData == null) {
 			return;
 		}
@@ -125,7 +125,7 @@
 	 * @param layoutData Will contain pairs of name/value Strings used to save and restore layout
 	 * @return
 	 */
-	public IStatus saveCompositeState(CompositeCheatSheetModel model, Map layoutData) {
+	public IStatus saveCompositeState(CompositeCheatSheetModel model, Map<String, String> layoutData) {
 		if (stateManager instanceof NoSaveStateManager) return Status.OK_STATUS;
 		XMLMemento writeMemento = XMLMemento.createWriteRoot(ICompositeCheatsheetTags.COMPOSITE_CHEATSHEET_STATE);
 		writeMemento.putString(IParserTags.ID, model.getId());
@@ -142,14 +142,14 @@
 		if (!(manager instanceof CheatSheetManager)) {
 			return;
 		}
-		Map data = ((CheatSheetManager)manager).getData();
+		Map<String, String> data = ((CheatSheetManager) manager).getData();
 		saveMap(writeMemento, data, ICompositeCheatsheetTags.CHEAT_SHEET_MANAGER);
 	}
 
-	private void saveMap(XMLMemento writeMemento, Map data, String tag) {
-		for (Iterator iter = data.keySet().iterator(); iter.hasNext();) {
-			String key = (String)iter.next();
-			String value = (String) data.get(key);
+	private void saveMap(XMLMemento writeMemento, Map<String, String> data, String tag) {
+		for (Iterator<String> iter = data.keySet().iterator(); iter.hasNext();) {
+			String key = iter.next();
+			String value = data.get(key);
 			IMemento childMemento = writeMemento.createChild(tag);
 			childMemento.putString(ICompositeCheatsheetTags.KEY, key);
 			childMemento.putString(ICompositeCheatsheetTags.VALUE, value);
@@ -193,7 +193,7 @@
 		if (taskMementoMap == null) {
 			return null;
 		}
-	    IMemento childMemento = (IMemento)taskMementoMap.get(id);
+		IMemento childMemento = taskMementoMap.get(id);
 	    if (childMemento == null) {
 	    	return  null;
 	    }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
index 8a8f977..ac0ea9a 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/SuccesorTaskFinder.java
@@ -45,18 +45,16 @@
     	// TODO this code could be moved to TaskGroup
     	if (ITaskGroup.CHOICE.equals(currentTask.getKind())) {
     		// For a choice if more than one child is runnable return it
-    		List runnableChoices = findRunnableChoices();
+			List<ICompositeCheatSheetTask> runnableChoices = findRunnableChoices();
     		if (runnableChoices.size() != 0) {
-    			return (ICompositeCheatSheetTask[])runnableChoices.toArray
-    			(    new ICompositeCheatSheetTask[runnableChoices.size()]);
+				return runnableChoices.toArray(new ICompositeCheatSheetTask[runnableChoices.size()]);
     		}
     	}
     	return getBestSuccessor();
     }
 
-	private List findRunnableChoices() {
-		List result;
-		result = new ArrayList();
+	private List<ICompositeCheatSheetTask> findRunnableChoices() {
+		List<ICompositeCheatSheetTask> result = new ArrayList<>();
 		if (isStartable(currentTask)) {
 			ICompositeCheatSheetTask[] subtasks = currentTask.getSubtasks();
 			for (int i = 0; i < subtasks.length; i++) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
index eba2d90..bb583ac 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
@@ -50,9 +50,9 @@
 		}
 	}
 
-	private List dependencies;
+	private List<Dependency> dependencies;
 
-	private Map taskIdMap = new HashMap();
+	private Map<String, AbstractTask> taskIdMap = new HashMap<>();
 
 	public void saveId(AbstractTask task) {
 		String id = task.getId();
@@ -62,11 +62,11 @@
 	}
 
 	public AbstractTask getTask(String id) {
-		return (AbstractTask)taskIdMap.get(id);
+		return taskIdMap.get(id);
 	}
 
 	public TaskDependencies() {
-		dependencies = new ArrayList();
+		dependencies = new ArrayList<>();
 	}
 
 	/**
@@ -84,8 +84,8 @@
 	 * @param status An object used to add error status
 	 */
 	public void resolveDependencies(IStatusContainer status) {
-		for (Iterator dependencyIterator = dependencies.iterator(); dependencyIterator.hasNext();) {
-			 Dependency dep = (Dependency)dependencyIterator.next();
+		for (Iterator<Dependency> dependencyIterator = dependencies.iterator(); dependencyIterator.hasNext();) {
+			Dependency dep = dependencyIterator.next();
 			 AbstractTask sourceTask = dep.getSourceTask();
 			 AbstractTask requiredTask = getTask(dep.requiredTaskId);
 			 if (requiredTask == null) {
@@ -110,7 +110,7 @@
 	 * @param status
 	 */
 	private void checkForCircularities (IStatusContainer status) {
-		Set tasks = new HashSet();
+		Set<ICompositeCheatSheetTask> tasks = new HashSet<>();
 		// Combine steps 1 + 2
 		for (Iterator idIterator = taskIdMap.values().iterator(); idIterator.hasNext(); ) {
 			AbstractTask nextTask = (AbstractTask)idIterator.next();
@@ -122,11 +122,12 @@
 		while (makingProgress) {
 			// Use a new set to store the tasks which are still cycle candidates to avoid
 			// iterating over and deleting from the same set.
-			Set remainingTasks = new HashSet();
+			Set<ICompositeCheatSheetTask> remainingTasks = new HashSet<>();
 			makingProgress = false;
-			for (Iterator taskIterator = tasks.iterator(); taskIterator.hasNext() && !makingProgress; ) {
+			for (Iterator<ICompositeCheatSheetTask> taskIterator = tasks.iterator(); taskIterator.hasNext()
+					&& !makingProgress;) {
 				boolean mayBeInCycle = false;
-				ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)taskIterator.next();
+				ICompositeCheatSheetTask nextTask = taskIterator.next();
 				ICompositeCheatSheetTask[] requiredTasks = nextTask.getRequiredTasks();
 				for (int i = 0; i < requiredTasks.length; i++) {
 					if (tasks.contains(requiredTasks[i])) {
@@ -144,10 +145,11 @@
 		if (!tasks.isEmpty()) {
 			status.addStatus(IStatus.ERROR, Messages.ERROR_PARSING_CYCLE_DETECTED, null);
 			// Detect one of the cycles and report its members
-			List cycle = new ArrayList();
-			ICompositeCheatSheetTask cycleStartTask = (ICompositeCheatSheetTask)tasks.iterator().next();
+			List<ICompositeCheatSheetTask> cycle = new ArrayList<>();
+			ICompositeCheatSheetTask cycleStartTask = tasks.iterator().next();
 			while (!cycle.contains(cycleStartTask)) {
-				cycle.add(cycleStartTask);ICompositeCheatSheetTask[] requiredTasks = cycleStartTask.getRequiredTasks();
+				cycle.add(cycleStartTask);
+				ICompositeCheatSheetTask[] requiredTasks = cycleStartTask.getRequiredTasks();
 				for (int i = 0; i < requiredTasks.length; i++) {
 					if (tasks.contains(requiredTasks[i])) {
 						cycleStartTask=requiredTasks[i];
@@ -160,8 +162,8 @@
 			String thisTask = null;
 			String lastTask = null;
 			String firstTask = null;
-			for (Iterator cycleIterator = cycle.iterator(); cycleIterator.hasNext();) {
-				ICompositeCheatSheetTask task = (ICompositeCheatSheetTask)cycleIterator.next();
+			for (Iterator<ICompositeCheatSheetTask> cycleIterator = cycle.iterator(); cycleIterator.hasNext();) {
+				ICompositeCheatSheetTask task = cycleIterator.next();
 				if (task == cycleStartTask) {
 					cycleStarted = true;
 					firstTask = task.getName();
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
index bcb4394..a56e6cd 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskGroup.java
@@ -12,6 +12,7 @@
 package org.eclipse.ui.internal.cheatsheets.composite.model;
 
 import java.util.ArrayList;
+
 import org.eclipse.ui.internal.cheatsheets.composite.parser.ITaskParseStrategy;
 import org.eclipse.ui.internal.cheatsheets.composite.parser.TaskGroupParseStrategy;
 import org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask;
@@ -25,7 +26,7 @@
 
 	private ITaskParseStrategy parserStrategy;
 
-	private ArrayList subtasks;
+	private ArrayList<ICompositeCheatSheetTask> subtasks;
 
 	private CompletionStrategy completionStrategy;
 
@@ -53,12 +54,12 @@
 	@Override
 	public ICompositeCheatSheetTask[] getSubtasks() {
 		if (subtasks==null) return EMPTY;
-		return (ICompositeCheatSheetTask[])subtasks.toArray(new ICompositeCheatSheetTask[subtasks.size()]);
+		return subtasks.toArray(new ICompositeCheatSheetTask[subtasks.size()]);
 	}
 
 	public void addSubtask(ICompositeCheatSheetTask task) {
 		if (subtasks==null) {
-			subtasks = new ArrayList();
+			subtasks = new ArrayList<>();
 		}
 		subtasks.add(task);
 		((AbstractTask)task).setParent(this);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
index 7c667b4..3e9ffbf 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskStateUtilities.java
@@ -124,14 +124,15 @@
 	 * Determine which tasks need to be restarted if this tasks is restarted
 	 */
 	public static AbstractTask[] getRestartTasks(ICompositeCheatSheetTask task) {
-		List restartables = new ArrayList();
-		Set visited = new HashSet();
+		List<ICompositeCheatSheetTask> restartables = new ArrayList<>();
+		Set<ICompositeCheatSheetTask> visited = new HashSet<>();
 		addRestartableTasks(restartables, task, visited);
-		return (AbstractTask[])restartables.toArray(new AbstractTask[restartables.size()]);
+		return restartables.toArray(new AbstractTask[restartables.size()]);
 	}
 
 
-	private static void addRestartableTasks(List restartables, ICompositeCheatSheetTask task, Set visited) {
+	private static void addRestartableTasks(List<ICompositeCheatSheetTask> restartables, ICompositeCheatSheetTask task,
+			Set<ICompositeCheatSheetTask> visited) {
 		if (visited.contains(task)) {
 			return;
 		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
index bbc1be3..76cddda 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
@@ -312,7 +312,7 @@
 	}
 
 	public void saveState() {
-		Map layout = new HashMap();
+		Map<String, String> layout = new HashMap<>();
 		if (selectedTask != null) {
 		    layout.put(ICompositeCheatsheetTags.SELECTED_TASK, selectedTask.getId());
 		}
@@ -499,7 +499,7 @@
 	public void initialized() {
 		// Open the model
 		model.setSaveHelper(saveHelper);
-		Map layout = new HashMap();
+		Map<String, String> layout = new HashMap<>();
 		model.loadState(layout);
 		setInputModel(model, layout);
 		initialized  = true;
@@ -563,7 +563,7 @@
 		return index;
 	}
 
-	public void restart(Map cheatSheetData) {
+	public void restart(Map<String, String> cheatSheetData) {
 		model.resetAllTasks(cheatSheetData);
 		currentExplorer.setSelection
 		    (new StructuredSelection(model.getRootTask()), true);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
index ce93c02..a181268 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskEditorManager.java
@@ -48,7 +48,7 @@
 			CheatSheetRegistryReader.getInstance().findTaskEditor(editorKind);
 		if (editorInfo != null) {
 			TaskEditor editorInstance = null;
-			Class extClass = null;
+			Class<?> extClass = null;
 			String className = editorInfo.getClassName();
 			try {
 				Bundle bundle = Platform.getBundle(editorInfo.getPluginId());
@@ -61,8 +61,7 @@
 			try {
 				if (extClass != null) {
 					Constructor c = extClass.getConstructor(new Class[0]);
-					Object[] parameters = new Object[0];
-					editorInstance = (TaskEditor) c.newInstance(parameters);
+					editorInstance = (TaskEditor) c.newInstance();
 				}
 			} catch (Exception e) {
 				String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
index bdcec27..aea2d05 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/TaskExplorerManager.java
@@ -35,7 +35,7 @@
 public class TaskExplorerManager {
 private static TaskExplorerManager instance;
 
-    private Map images;
+	private Map<String, Image> images;
 
 	private TaskExplorerManager() {
 
@@ -53,7 +53,7 @@
 			CheatSheetRegistryReader.getInstance().findTaskExplorer(explorerKind);
 		if (explorerInfo != null) {
 			TaskExplorer explorerInstance = null;
-			Class extClass = null;
+			Class<?> extClass = null;
 			String className = explorerInfo.getClassName();
 			try {
 				Bundle bundle = Platform.getBundle(explorerInfo.getPluginId());
@@ -65,9 +65,8 @@
 			}
 			try {
 				if (extClass != null) {
-					Constructor c = extClass.getConstructor(new Class[0]);
-					Object[] parameters = new Object[0];
-					explorerInstance = (TaskExplorer) c.newInstance(parameters);
+					Constructor c = extClass.getConstructor();
+					explorerInstance = (TaskExplorer) c.newInstance();
 				}
 			} catch (Exception e) {
 				String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
@@ -101,7 +100,7 @@
 		}
 	}
 
-	private Map getImages() {
+	private Map<String, Image> getImages() {
 		if (images == null) {
 			initImages();
 		}
@@ -111,7 +110,7 @@
 
 	private void initImages() {
 		if (images == null) {
-			images = new HashMap();
+			images = new HashMap<>();
 			String[] ids = CheatSheetRegistryReader.getInstance().getExplorerIds();
 			for (int i = 0; i < ids.length; i++) {
 				ImageDescriptor descriptor = getImageDescriptor(ids[i]);
@@ -132,7 +131,7 @@
 	}
 
 	public Image getImage(String id) {
-		return (Image)getImages().get(id);
+		return getImages().get(id);
 	}
 
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
index dd3d8ee..2c50716 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheet.java
@@ -20,7 +20,7 @@
 
 	protected String title;
 	private Item introItem;
-	private ArrayList items;
+	private ArrayList<Item> items;
 	private boolean containsCommandOrAction;
 
 	/**
@@ -57,7 +57,7 @@
 	/**
 	 * Returns the items.
 	 */
-	public ArrayList getItems() {
+	public ArrayList<Item> getItems() {
 		return items;
 	}
 
@@ -75,7 +75,7 @@
 	 */
 	public void addItem(Item item) {
 		if(items == null) {
-			items = new ArrayList();
+			items = new ArrayList<>();
 		}
 		items.add(item);
 	}
@@ -85,9 +85,9 @@
 	 *
 	 * @param c the collection of items to add
 	 */
-	public void addItems(Collection c) {
+	public void addItems(Collection<Item> c) {
 		if(items == null) {
-			items = new ArrayList();
+			items = new ArrayList<>();
 		}
 		items.addAll(c);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
index 33c17d6..d511f0c 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
@@ -67,7 +67,7 @@
 
 	private DocumentBuilder documentBuilder;
 	private DocumentProcessor processor;
-	private ArrayList itemExtensionContainerList;
+	private ArrayList<CheatSheetItemExtensionElement> itemExtensionContainerList;
 
 	// Cheatsheet kinds that can be parsed
 	public static final int COMPOSITE_ONLY = 1;
@@ -625,7 +625,7 @@
 		Assert.isNotNull(item);
 		Assert.isNotNull(itemNode);
 
-		ArrayList itemExtensionElements = new ArrayList();
+		ArrayList<AbstractItemExtensionElement[]> itemExtensionElements = new ArrayList<>();
 
 		boolean title = false;
 
@@ -861,12 +861,12 @@
 	}
 
 	private AbstractItemExtensionElement[] handleUnknownItemAttribute(Node item, Node node) {
-		ArrayList al = new ArrayList();
+		ArrayList<AbstractItemExtensionElement> al = new ArrayList<>();
 		if (itemExtensionContainerList == null)
 			return null;
 
 		for (int i = 0; i < itemExtensionContainerList.size(); i++) {
-			CheatSheetItemExtensionElement itemExtensionElement = (CheatSheetItemExtensionElement) itemExtensionContainerList.get(i);
+			CheatSheetItemExtensionElement itemExtensionElement = itemExtensionContainerList.get(i);
 
 			if (itemExtensionElement.getItemAttribute().equals(item.getNodeName())) {
 				AbstractItemExtensionElement itemElement = itemExtensionElement.createInstance();
@@ -881,7 +881,7 @@
 			String message = NLS.bind(Messages.WARNING_PARSING_UNKNOWN_ATTRIBUTE, (new Object[] {item.getNodeName(), node.getNodeName()}));
 			addStatus(IStatus.WARNING, message, null);
 		}
-		return (AbstractItemExtensionElement[])al.toArray(new AbstractItemExtensionElement[al.size()]);
+		return al.toArray(new AbstractItemExtensionElement[al.size()]);
 	}
 
 	public ICheatSheet parse(URL url, String pluginId, int cheatSheetKind) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
index ecb9d2b..bb33dee 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetSaveHelper.java
@@ -67,11 +67,11 @@
 	 * @param contentPath will be null if the cheatsheet was launched using information from
 	 * the registry, otherwise it is the url of the cheatsheet content file.
 	 */
-	public Properties createProperties(int currentItemNum, ArrayList items,
+	public Properties createProperties(int currentItemNum, ArrayList<ViewItem> items,
 			boolean buttonIsDown, ArrayList expandRestoreStates, String csID, String contentPath) {
 		Properties props = new Properties();
-		Hashtable subcompletedTable = new Hashtable(10);
-		Hashtable subskippedTable = new Hashtable(10);
+		Hashtable<String, String> subcompletedTable = new Hashtable<>(10);
+		Hashtable<String, String> subskippedTable = new Hashtable<>(10);
 
 		int buttonState = 0;
 		if (buttonIsDown)
@@ -82,15 +82,15 @@
 		if (contentPath != null) {
 			props.put(IParserTags.CONTENT_URL, contentPath);
 		}
-		ArrayList completedList = new ArrayList();
-		ArrayList expandedList = new ArrayList();
+		ArrayList<String> completedList = new ArrayList<>();
+		ArrayList<String> expandedList = new ArrayList<>();
 
 		if (expandRestoreStates == null)
 			expandRestoreStates = new ArrayList();
 
 		// Assemble lists of expanded items and completed items.
 		for (int i = 0; i < items.size(); i++) {
-			ViewItem item = (ViewItem) items.get(i);
+			ViewItem item = items.get(i);
 			if (item.isCompleted()) {
 				completedList.add(Integer.toString(i));
 			}
@@ -100,14 +100,13 @@
 
 			if (item instanceof CoreItem) {
 				CoreItem withsubs = (CoreItem) item;
-				ArrayList compList = withsubs
+				ArrayList<SubItemCompositeHolder> compList = withsubs
 						.getListOfSubItemCompositeHolders();
 				if (compList != null) {
 					StringBuffer skippedsubItems = new StringBuffer();
 					StringBuffer completedsubItems = new StringBuffer();
 					for (int j = 0; j < compList.size(); j++) {
-						SubItemCompositeHolder sch = (SubItemCompositeHolder) compList
-								.get(j);
+						SubItemCompositeHolder sch = compList.get(j);
 						if (sch.isCompleted())
 							completedsubItems.append(Integer.toString(j) + ","); //$NON-NLS-1$
 						if (sch.isSkipped())
@@ -230,8 +229,10 @@
 			addListOfStringsToMemento(writeMemento,  properties, IParserTags.EXPANDRESTORE);
 
 			addMapToMemento(writeMemento,  csm.getData(), IParserTags.MANAGERDATA);
-			addMapToMemento(writeMemento,  (Map)properties.get(IParserTags.SUBITEMCOMPLETED), IParserTags.SUBITEMCOMPLETED);
-			addMapToMemento(writeMemento,  (Map)properties.get(IParserTags.SUBITEMSKIPPED), IParserTags.SUBITEMSKIPPED);
+			addMapToMemento(writeMemento, (Map<String, String>) properties.get(IParserTags.SUBITEMCOMPLETED),
+					IParserTags.SUBITEMCOMPLETED);
+			addMapToMemento(writeMemento, (Map<String, String>) properties.get(IParserTags.SUBITEMSKIPPED),
+					IParserTags.SUBITEMSKIPPED);
 
 		} catch (Exception e) {
 			String message = NLS.bind(Messages.ERROR_SAVING_STATEFILE_URL,
@@ -289,22 +290,22 @@
 	}
 
 
-	private void addMapToMemento(IMemento memento, Map map, String mapName) {
+	private void addMapToMemento(IMemento memento, Map<String, String> map, String mapName) {
 		if (map == null) {
 			return;
 		}
-		for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
+		for (Iterator<String> iter = map.keySet().iterator(); iter.hasNext();) {
 			IMemento childMemento = memento.createChild(mapName);
-			String itemKey = (String)iter.next();
+			String itemKey = iter.next();
 			childMemento.putString(IParserTags.MANAGERDATAKEY,(itemKey));
-			childMemento.putString(IParserTags.MANAGERDATAVALUE,(String)map.get(itemKey));
+			childMemento.putString(IParserTags.MANAGERDATAVALUE, map.get(itemKey));
 		}
 	}
 
 
 	private void getMapFromMemento(IMemento memento, Properties properties, String mapName) {
 		IMemento[] children = memento.getChildren(mapName);
-		Map map = new Hashtable();
+		Map<String, String> map = new Hashtable<>();
 		for (int i = 0; i < children.length; i++) {
 			map.put(children[i].getString(IParserTags.MANAGERDATAKEY),
 					children[i].getString(IParserTags.MANAGERDATAVALUE));
@@ -314,7 +315,7 @@
 
 	private void getListOfStringsFromMemento(IMemento memento, Properties properties, String key) {
 		IMemento[] children = memento.getChildren(key);
-		List list = new ArrayList();
+		List<String> list = new ArrayList<>();
 		for (int i = 0; i < children.length; i++) {
 			list.add(children[i].getString(IParserTags.ITEM));
 		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
index 7a41f0e..ff2c383 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ConditionalSubItem.java
@@ -17,7 +17,7 @@
 
 public class ConditionalSubItem extends AbstractSubItem implements ISubItemItem {
 	private String condition;
-	private ArrayList subItems;
+	private ArrayList<AbstractSubItem> subItems;
 	private SubItem selectedSubItem;
 
 	/**
@@ -54,7 +54,7 @@
 	@Override
 	public void addSubItem(AbstractSubItem subItem) {
 		if(subItems == null) {
-			subItems = new ArrayList();
+			subItems = new ArrayList<>();
 		}
 		subItems.add(subItem);
 	}
@@ -63,7 +63,7 @@
 	 * @return Returns the subItems.
 	 */
 	@Override
-	public ArrayList getSubItems() {
+	public ArrayList<AbstractSubItem> getSubItems() {
 		return subItems;
 	}
 
@@ -74,7 +74,7 @@
 	public void setSelectedSubItem(CheatSheetManager csm) {
 		String conditionValue = csm.getVariableData(condition);
 
-		for (Iterator iter = subItems.iterator(); iter.hasNext();) {
+		for (Iterator<AbstractSubItem> iter = subItems.iterator(); iter.hasNext();) {
 			SubItem subItem = (SubItem) iter.next();
 			if(subItem.getWhen() != null && subItem.getWhen().equals(conditionValue)) {
 				selectedSubItem = subItem;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
index c515495..35dfbf0 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/ISubItemItem.java
@@ -22,6 +22,6 @@
 	/**
 	 * @return Returns the subItems.
 	 */
-	public ArrayList getSubItems();
+	public ArrayList<AbstractSubItem> getSubItems();
 
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
index d3979e5..c26b4fa 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/Item.java
@@ -22,7 +22,7 @@
 	private AbstractExecutable executable;
 	private PerformWhen performWhen;
 
-	private ArrayList subItems;
+	private ArrayList<AbstractSubItem> subItems;
 	private String completionMessage;
 
 	/**
@@ -105,7 +105,7 @@
 	 * Sets the item extensions for this item.
 	 * @param exts the extensions to set
 	 */
-	public void setItemExtensions(ArrayList exts){
+	public void setItemExtensions(ArrayList exts) {
 		this.itemExtensions = exts;
 	}
 
@@ -113,7 +113,7 @@
 	 * Returns the item extensions, if any, for this item,.
 	 * @return list of the extensions or <code>null</code>
 	 */
-	public ArrayList getItemExtensions(){
+	public ArrayList getItemExtensions() {
 		return itemExtensions;
 	}
 
@@ -139,7 +139,7 @@
 	@Override
 	public void addSubItem(AbstractSubItem subItem) {
 		if(subItems == null) {
-			subItems = new ArrayList();
+			subItems = new ArrayList<>();
 		}
 		subItems.add(subItem);
 	}
@@ -148,14 +148,14 @@
 	 * @return Returns the subItems.
 	 */
 	@Override
-	public ArrayList getSubItems() {
+	public ArrayList<AbstractSubItem> getSubItems() {
 		return subItems;
 	}
 
 	private boolean hasDynamicSubItems() {
 		if( subItems != null) {
-			for (Iterator iter = subItems.iterator(); iter.hasNext();) {
-				AbstractSubItem subItem = (AbstractSubItem)iter.next();
+			for (Iterator<AbstractSubItem> iter = subItems.iterator(); iter.hasNext();) {
+				AbstractSubItem subItem = iter.next();
 				if( subItem instanceof RepeatedSubItem ||
 					subItem instanceof ConditionalSubItem ||
 					subItem instanceof SubItem && ((SubItem)subItem).getPerformWhen() != null ) {
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
index 3d437f4..6f07b58 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/PerformWhen.java
@@ -12,11 +12,12 @@
 
 import java.util.ArrayList;
 import java.util.Iterator;
+
 import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
 
 public class PerformWhen implements IExecutableItem  {
 	private String condition;
-	private ArrayList executables;
+	private ArrayList<AbstractExecutable> executables;
 	private AbstractExecutable selectedExecutable;
 
 	/**
@@ -50,7 +51,7 @@
 	/**
 	 * @return Returns the executables.
 	 */
-	public ArrayList getExecutables() {
+	public ArrayList<AbstractExecutable> getExecutables() {
 		return executables;
 	}
 
@@ -59,7 +60,7 @@
 	 */
 	public void addExecutable(AbstractExecutable executable) {
 		if(executables == null) {
-			executables = new ArrayList();
+			executables = new ArrayList<>();
 		}
 		executables.add(executable);
 	}
@@ -90,8 +91,8 @@
 	public void setSelectedExecutable(CheatSheetManager csm) {
 		String conditionValue = csm.getVariableData(condition);
 
-		for (Iterator iter = executables.iterator(); iter.hasNext();) {
-			AbstractExecutable executable = (AbstractExecutable) iter.next();
+		for (Iterator<AbstractExecutable> iter = executables.iterator(); iter.hasNext();) {
+			AbstractExecutable executable = iter.next();
 			if(executable.getWhen() != null && executable.getWhen().equals(conditionValue)) {
 				selectedExecutable = executable;
 				break;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
index f2b480e..d87f937 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/RepeatedSubItem.java
@@ -14,7 +14,7 @@
 
 public class RepeatedSubItem extends AbstractSubItem implements ISubItemItem {
 	private String values;
-	private ArrayList subItems;
+	private ArrayList<AbstractSubItem> subItems;
 
 	/**
 	 * Constructor for RepeatedSubItem.
@@ -50,7 +50,7 @@
 	@Override
 	public void addSubItem(AbstractSubItem subItem) {
 		if(subItems == null) {
-			subItems = new ArrayList();
+			subItems = new ArrayList<>();
 		}
 		subItems.add(subItem);
 	}
@@ -60,7 +60,7 @@
 	 * @return Returns the subItems.
 	 */
 	@Override
-	public ArrayList getSubItems() {
+	public ArrayList<AbstractSubItem> getSubItems() {
 		return subItems;
 	}
 }
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
index b3fdf02..a33c554 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
@@ -135,8 +135,8 @@
 	private IStatus status = Status.OK_STATUS;
 
 
-	List mostRecentFiles = new ArrayList();
-	List mostRecentUrls = new ArrayList();
+	List<String> mostRecentFiles = new ArrayList<>();
+	List<String> mostRecentUrls = new ArrayList<>();
 
 	private static class ActivityViewerFilter extends ViewerFilter {
 		private boolean hasEncounteredFilteredItem = false;
@@ -451,7 +451,7 @@
 	protected CheatSheetCollectionElement expandPreviouslyExpandedCategories() {
 		String[] expandedCategoryPaths = settings
 				.getArray(STORE_EXPANDED_CATEGORIES_ID);
-		List categoriesToExpand = new ArrayList(expandedCategoryPaths.length);
+		List<CheatSheetCollectionElement> categoriesToExpand = new ArrayList<>(expandedCategoryPaths.length);
 
 		for (int i = 0; i < expandedCategoryPaths.length; i++) {
 			CheatSheetCollectionElement category = cheatsheetCategories
@@ -681,7 +681,7 @@
 		loadMRU(mostRecentFiles, STORE_FILE_MRU, selectFileCombo);
 	}
 
-	private void loadMRU(List mostRecentList, String key, Combo combo) {
+	private void loadMRU(List<String> mostRecentList, String key, Combo combo) {
 		for (int i = 0; i < MOST_RECENT_LENGTH; i++) {
 			String name = settings.get(key + i);
 			if (name != null) {
@@ -691,12 +691,12 @@
 		}
 	}
 
-	private void saveMRU(List mostRecentList, String key, String selection) {
+	private void saveMRU(List<String> mostRecentList, String key, String selection) {
 		if (selection.length() > 0 && !mostRecentList.contains(selection)) {
 		    mostRecentList.add(0, selection);
 		}
 		for (int i = 0; i < MOST_RECENT_LENGTH & i < mostRecentList.size(); i++) {
-			String name = (String)mostRecentList.get(i);
+			String name = mostRecentList.get(i);
 			if (name.length() > 0) {
 			    settings.put(key + i, name);
 			}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
index ad2676e..dadcca8 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/handlers/OpenMessageDialogHandler.java
@@ -87,7 +87,7 @@
 
 	private String[] collectButtonLabels(ExecutionEvent event) {
 
-		ArrayList buttonLabelList = new ArrayList();
+		ArrayList<String> buttonLabelList = new ArrayList<>();
 
 		for (int i = 0; i < BUTTON_LABEL_COUNT; i++) {
 			String buttonLabelParamId = PARAM_ID_BUTTON_LABEL_PREFIX
@@ -101,7 +101,7 @@
 			buttonLabelList.add(buttonLabel);
 		}
 
-		return (String[]) buttonLabelList.toArray(new String[buttonLabelList
+		return buttonLabelList.toArray(new String[buttonLabelList
 				.size()]);
 	}
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
index cc61f2e..c84fecd 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/Category.java
@@ -105,12 +105,13 @@
 		elements.add(element);
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
-	public Object getAdapter(Class adapter) {
+	public <T> T getAdapter(Class<T> adapter) {
 		if (adapter == IWorkbenchAdapter.class)
-			return this;
+			return (T) this;
 		else if (adapter == IConfigurationElement.class)
-			return configurationElement;
+			return (T) configurationElement;
 		else
 			return null;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
index 2d971ea..265bcd0 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetCollectionElement.java
@@ -14,7 +14,10 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.ui.IPluginContribution;
 import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
 import org.eclipse.ui.model.AdaptableList;
@@ -31,7 +34,7 @@
 	private String name;
 	private CheatSheetCollectionElement parent;
 	private AdaptableList cheatsheets = new AdaptableList();
-	private List childCollections = new ArrayList();
+	private List<CheatSheetCollectionElement> childCollections = new ArrayList<>();
 
 	/**
 	 * Creates a new <code>CheatSheetCollectionElement</code>.  Parent can be null.
@@ -52,7 +55,7 @@
 		if (a instanceof CheatSheetElement) {
 			cheatsheets.add(a);
 		} else {
-			childCollections.add(a);
+			childCollections.add((CheatSheetCollectionElement) a);
 		}
 	}
 
@@ -107,9 +110,10 @@
 	 * associated with this object. Returns <code>null</code> if
 	 * no such object can be found.
 	 */
-	public Object getAdapter(Class adapter) {
+	@SuppressWarnings("unchecked")
+	public <T> T getAdapter(Class<T> adapter) {
 		if (adapter == IWorkbenchAdapter.class) {
-			return this;
+			return (T) this;
 		}
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
index 902a27c..17ade33 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetElement.java
@@ -10,13 +10,19 @@
  *******************************************************************************/
 package org.eclipse.ui.internal.cheatsheets.registry;
 
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.IPluginContribution;
 import org.eclipse.ui.cheatsheets.CheatSheetListener;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.model.WorkbenchAdapter;
+import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
+import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
+import org.eclipse.ui.internal.cheatsheets.Messages;
 import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.WorkbenchAdapter;
 import org.osgi.framework.Bundle;
 
 /**
@@ -48,10 +54,11 @@
 	 * associated with this object. Returns <code>null</code> if
 	 * no such object can be found.
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
-	public Object getAdapter(Class adapter) {
+	public <T> T getAdapter(Class<T> adapter) {
 		if (adapter == IWorkbenchAdapter.class) {
-			return this;
+			return (T) this;
 		}
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
index 39b8756..76cf865 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetItemExtensionElement.java
@@ -11,11 +11,19 @@
 package org.eclipse.ui.internal.cheatsheets.registry;
 
 import java.lang.reflect.Constructor;
-import org.eclipse.core.runtime.*;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.ui.cheatsheets.AbstractItemExtensionElement;
-import org.eclipse.ui.internal.cheatsheets.*;
-import org.eclipse.ui.model.*;
+import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
+import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
+import org.eclipse.ui.internal.cheatsheets.Messages;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.WorkbenchAdapter;
 import org.osgi.framework.Bundle;
 
 /**
@@ -39,10 +47,11 @@
 	 * associated with this object. Returns <code>null</code> if
 	 * no such object can be found.
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
-	public Object getAdapter(Class adapter) {
+	public <T> T getAdapter(Class<T> adapter) {
 		if (adapter == IWorkbenchAdapter.class) {
-			return this;
+			return (T) this;
 		}
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
@@ -100,7 +109,7 @@
 	}
 
 	public AbstractItemExtensionElement createInstance() {
-		Class extClass = null;
+		Class<?> extClass = null;
 		AbstractItemExtensionElement extElement = null;
 		String pluginId = configurationElement.getContributor().getName();
 
@@ -115,8 +124,7 @@
 		try {
 			if (extClass != null) {
 				Constructor c = extClass.getConstructor(stringArray);
-				Object[] parameters = { itemAttribute };
-				extElement = (AbstractItemExtensionElement) c.newInstance(parameters);
+				extElement = (AbstractItemExtensionElement) c.newInstance(itemAttribute);
 			}
 		} catch (Exception e) {
 			String message = NLS.bind(Messages.ERROR_CREATING_CLASS, (new Object[] {className}));
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
index 99bccfd..f047768 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetParameterValues.java
@@ -23,17 +23,17 @@
 public class CheatSheetParameterValues implements IParameterValues {
 
 	@Override
-	public Map getParameterValues() {
-		Map values = new TreeMap();
+	public Map<String, String> getParameterValues() {
+		Map<String, String> values = new TreeMap<>();
 
-		CheatSheetCollectionElement cheatSheetCollection = (CheatSheetCollectionElement) CheatSheetRegistryReader
+		CheatSheetCollectionElement cheatSheetCollection = CheatSheetRegistryReader
 				.getInstance().getCheatSheets();
 		populateValues(values, cheatSheetCollection);
 
 		return values;
 	}
 
-	private void populateValues(Map values,
+	private void populateValues(Map<String, String> values,
 			CheatSheetCollectionElement cheatSheetCollection) {
 
 		Object[] cheatsheets = cheatSheetCollection.getCheatSheets();
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
index ba695f9..fb2becf 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.ui.internal.cheatsheets.registry;
 
-import com.ibm.icu.text.Collator;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -18,8 +17,18 @@
 import java.util.Set;
 import java.util.StringTokenizer;
 
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.internal.cheatsheets.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionDelta;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IRegistryChangeEvent;
+import org.eclipse.core.runtime.IRegistryChangeListener;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin;
+import org.eclipse.ui.internal.cheatsheets.ICheatSheetResource;
+import org.eclipse.ui.internal.cheatsheets.Messages;
+
+import com.ibm.icu.text.Collator;
 
 /**
  *  Instances access the registry that is provided at creation time
@@ -162,13 +171,13 @@
 		return instance;
 	}
 
-	protected ArrayList cheatsheetItemExtensions;
+	protected ArrayList<CheatSheetItemExtensionElement> cheatsheetItemExtensions;
 	protected CheatSheetCollectionElement cheatsheets;
-	private ArrayList deferCategories = null;
-	private ArrayList deferCheatSheets = null;
+	private ArrayList<Category> deferCategories = null;
+	private ArrayList<CheatSheetElement> deferCheatSheets = null;
 	private final String csItemExtension = "cheatSheetItemExtension"; //$NON-NLS-1$
-	protected Map taskExplorers = new HashMap();
-	protected Map taskEditors = new HashMap();
+	protected Map<String, TaskExplorerNode> taskExplorers = new HashMap<>();
+	protected Map<String, TaskEditorNode> taskEditors = new HashMap<>();
 	private Map nestedCategoryIds = new HashMap();
 
 	/**
@@ -248,7 +257,7 @@
 
 		// Defer for later processing.
 		if (deferCategories == null)
-			deferCategories = new ArrayList(20);
+			deferCategories = new ArrayList<>(20);
 		deferCategories.add(category);
 	}
 
@@ -257,7 +266,7 @@
 	 */
 	private void deferCheatSheet(CheatSheetElement element) {
 		if (deferCheatSheets == null)
-			deferCheatSheets = new ArrayList(50);
+			deferCheatSheets = new ArrayList<>(50);
 		deferCheatSheets.add(element);
 	}
 
@@ -284,7 +293,7 @@
 		if (cheatsheets == null) {
 		    readCheatSheets(); // Ensure that the registry has been read
 		}
-		return (TaskEditorNode)taskEditors.get(id);
+		return taskEditors.get(id);
 	}
 
 	/**
@@ -295,7 +304,7 @@
 		if (cheatsheets == null) {
 		    readCheatSheets(); // Ensure that the registry has been read
 		}
-		return (TaskExplorerNode)taskExplorers.get(id);
+		return taskExplorers.get(id);
 	}
 
 	/**
@@ -306,8 +315,8 @@
 		if (cheatsheets == null) {
 		    readCheatSheets(); // Ensure that the registry has been read
 		}
-		Set keys = taskExplorers.keySet();
-		return (String[]) keys.toArray(new String[keys.size()]);
+		Set<String> keys = taskExplorers.keySet();
+		return keys.toArray(new String[keys.size()]);
 	}
 
 	/**
@@ -322,7 +331,7 @@
 		// Sort categories by flattened name.
 		CategoryNode[] flatArray = new CategoryNode[deferCategories.size()];
 		for (int i = 0; i < deferCategories.size(); i++) {
-			flatArray[i] = new CategoryNode((Category) deferCategories.get(i));
+			flatArray[i] = new CategoryNode(deferCategories.get(i));
 		}
 		Sorter sorter = new Sorter() {
 			private Collator collator = Collator.getInstance();
@@ -350,7 +359,7 @@
 	 * Save new category definition.
 	 */
 	private void finishCategory(Category category) {
-		CheatSheetCollectionElement currentResult = (CheatSheetCollectionElement) cheatsheets;
+		CheatSheetCollectionElement currentResult = cheatsheets;
 
 		String[] categoryPath = category.getParentPath();
 		CheatSheetCollectionElement parent = currentResult; // ie.- root
@@ -393,7 +402,7 @@
 	 *	@param currentResult CheatSheetCollectionElement
 	 */
 	private void finishCheatSheet(CheatSheetElement element, IConfigurationElement config, CheatSheetCollectionElement result) {
-		CheatSheetCollectionElement currentResult = (CheatSheetCollectionElement) result;
+		CheatSheetCollectionElement currentResult = result;
 		String category = getCategoryStringFor(config);
 		StringTokenizer familyTokenizer = new StringTokenizer(category, CATEGORY_SEPARATOR);
 
@@ -565,14 +574,14 @@
 		finishCheatSheets();
 
 		if (cheatsheets != null) {
-			CheatSheetCollectionElement parent = (CheatSheetCollectionElement) cheatsheets;
+			CheatSheetCollectionElement parent = cheatsheets;
 			pruneEmptyCategories(parent);
 		}
 	}
 
-	public ArrayList readItemExtensions() {
+	public ArrayList<CheatSheetItemExtensionElement> readItemExtensions() {
 		if (cheatsheetItemExtensions == null) {
-			cheatsheetItemExtensions = new ArrayList();
+			cheatsheetItemExtensions = new ArrayList<>();
 
 			IExtensionRegistry xregistry = Platform.getExtensionRegistry();
 			//Now read the cheat sheet extensions.
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
index b16f2ee..0d3109c 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/DefaultStateManager.java
@@ -50,7 +50,7 @@
 	public CheatSheetManager getCheatSheetManager() {
 		CheatSheetManager result = new CheatSheetManager(element);
 		if (getProperties() != null) {
-		    result.setData((Hashtable) getProperties().get(IParserTags.MANAGERDATA));
+			result.setData((Hashtable<String, String>) getProperties().get(IParserTags.MANAGERDATA));
 		}
 		return result;
 	}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
index acc9079..79ffc3c 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/state/MementoStateManager.java
@@ -63,7 +63,7 @@
 	public CheatSheetManager getCheatSheetManager() {
 		CheatSheetManager result = new CheatSheetManager(element);
 		if (getProperties() != null) {
-		    result.setData((Hashtable) getProperties().get(IParserTags.MANAGERDATA));
+			result.setData((Hashtable<String, String>) getProperties().get(IParserTags.MANAGERDATA));
 		}
 		result.setParent(parentCsm);
 		return result;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
index 74f8c92..f52e68d 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetManager.java
@@ -18,7 +18,9 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.ui.cheatsheets.*;
+import org.eclipse.ui.cheatsheets.CheatSheetListener;
+import org.eclipse.ui.cheatsheets.ICheatSheetEvent;
+import org.eclipse.ui.cheatsheets.ICheatSheetManager;
 import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
 
 /**
@@ -30,13 +32,13 @@
 	private static final String VARIABLE_END = "}"; //$NON-NLS-1$
 	private static final String VARIABLE_BEGIN = "${"; //$NON-NLS-1$
 	private String cheatsheetID;
-	private List listeners;
-	private Map dataTable = null;
+	private List<CheatSheetListener> listeners;
+	private Map<String, String> dataTable = null;
 	private ICheatSheetManager parent;
 
 	public CheatSheetManager(CheatSheetElement element) {
 		cheatsheetID = element.getID();
-		listeners = new ArrayList();
+		listeners = new ArrayList<>();
 		CheatSheetListener listener = element.createListenerInstance();
 		if (listener != null) {
 			addListener(listener);
@@ -50,9 +52,9 @@
 
 	public void fireEvent(int eventType) {
 		// Send an event to every listener
-		for (Iterator iterator = listeners.iterator();iterator.hasNext();) {
+		for (Iterator<CheatSheetListener> iterator = listeners.iterator(); iterator.hasNext();) {
 		    ICheatSheetEvent event = new CheatSheetEvent(eventType, cheatsheetID, this);
-		    CheatSheetListener listener = (CheatSheetListener)iterator.next();
+			CheatSheetListener listener = iterator.next();
 		    listener.cheatSheetEvent(event);
 		}
 	}
@@ -60,7 +62,7 @@
 	/**
 	 * returns the hashtable with all manager data stored.
 	 */
-	public Map getData() {
+	public Map<String, String> getData() {
 		return dataTable;
 	}
 
@@ -68,7 +70,7 @@
 	 * Initialize all variables
 	 * @param data a map containg values for all variables
 	 */
-	public void setData(Map data) {
+	public void setData(Map<String, String> data) {
 		dataTable = data;
 	}
 
@@ -76,7 +78,7 @@
 	public String getData(String key) {
 		if (dataTable == null)
 			return null;
-		return (String) dataTable.get(key);
+		return dataTable.get(key);
 	}
 
 	/**
@@ -133,7 +135,7 @@
 		return output;
 	}
 
-	/*package*/ void setData(Hashtable data) {
+	/* package */ void setData(Hashtable<String, String> data) {
 		dataTable = data;
 	}
 
@@ -149,7 +151,7 @@
 		}
 
 		if (dataTable == null) {
-			dataTable = new Hashtable(30);
+			dataTable = new Hashtable<>(30);
 		}
 
 		dataTable.put(key, data);
@@ -192,9 +194,9 @@
 	}
 
 	@Override
-	public Set getKeySet() {
+	public Set<String> getKeySet() {
 		if (dataTable == null) {
-			return new HashSet();
+			return new HashSet<>();
 		} else {
 		    return dataTable.keySet();
 		}
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
index b98c688..25865c8 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetPage.java
@@ -33,6 +33,7 @@
 import org.eclipse.ui.internal.cheatsheets.Messages;
 import org.eclipse.ui.internal.cheatsheets.actions.IMenuContributor;
 import org.eclipse.ui.internal.cheatsheets.data.CheatSheet;
+import org.eclipse.ui.internal.cheatsheets.data.Item;
 
 public class CheatSheetPage extends Page implements IMenuContributor {
 	// Colors
@@ -44,11 +45,11 @@
 
 	private CheatSheet cheatSheet;
 
-	private ArrayList viewItemList;
+	private ArrayList<ViewItem> viewItemList;
 
 	private CheatSheetViewer viewer;
 
-	public CheatSheetPage(CheatSheet cheatSheet, ArrayList viewItemList,
+	public CheatSheetPage(CheatSheet cheatSheet, ArrayList<ViewItem> viewItemList,
 			CheatSheetViewer cheatSheetViewer) {
 		super();
 		this.cheatSheet = cheatSheet;
@@ -80,13 +81,11 @@
 						"CheatSheetPage.createInfoArea()", "Time in CheatSheetPage.createPart() before add loop: "); //$NON-NLS-1$ //$NON-NLS-2$
 		// Get the content info from the parser. This makes up all items except
 		// the intro item.
-		ArrayList items = cheatSheet.getItems();
+		ArrayList<Item> items = cheatSheet.getItems();
 		for (int i = 0; i < items.size(); i++) {
 			Color color = (i % 2) == 0 ? getInactiveColor1() : getInactiveColor2();
 
-			CoreItem coreItem = new CoreItem(this,
-					(org.eclipse.ui.internal.cheatsheets.data.Item) items
-							.get(i), color, viewer);
+			CoreItem coreItem = new CoreItem(this, items.get(i), color, viewer);
 			viewItemList.add(coreItem);
 		}
 		CheatSheetStopWatch
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
index b6e84f4..651981d 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CheatSheetViewer.java
@@ -102,8 +102,8 @@
 	private ViewItem currentItem;
 
 	//Lists
-	private ArrayList expandRestoreList = new ArrayList();
-	private ArrayList viewItemList = new ArrayList();
+	private ArrayList<String> expandRestoreList = new ArrayList<String>();
+	private ArrayList<ViewItem> viewItemList = new ArrayList<>();
 
 	//Composites
 	protected Composite control;
@@ -163,7 +163,7 @@
 		IntroItem introItem = (IntroItem) getViewItemAtIndex(0);
 		boolean isStarted = introItem.isCompleted();
 
-		expandRestoreList = new ArrayList();
+		expandRestoreList = new ArrayList<>();
 		if(expandRestoreAction != null)
 			expandRestoreAction.setCollapsed(false);
 
@@ -173,15 +173,15 @@
 		if(isStarted)
 			initManager();
 
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
+		for (Iterator<ViewItem> iter = viewItemList.iterator(); iter.hasNext();) {
+			ViewItem item = iter.next();
 			if (item instanceof CoreItem) {
 				CoreItem c = (CoreItem) item;
-				ArrayList l = c.getListOfSubItemCompositeHolders();
+				ArrayList<SubItemCompositeHolder> l = c.getListOfSubItemCompositeHolders();
 				if (l != null)
 					for (int j = 0; j < l.size(); j++) {
-						((SubItemCompositeHolder) l.get(j)).setSkipped(false);
-						((SubItemCompositeHolder) l.get(j)).setCompleted(false);
+						l.get(j).setSkipped(false);
+						l.get(j).setCompleted(false);
 					}
 			}
 		}
@@ -275,7 +275,7 @@
 
 	/*package*/ void advanceSubItem(ImageHyperlink link, boolean markAsCompleted, int subItemIndex) {
 		Label l = null;
-		ArrayList list = null;
+		ArrayList<SubItemCompositeHolder> list = null;
 		SubItemCompositeHolder sich = null;
 		CoreItem ciws = null;
 
@@ -286,7 +286,7 @@
 
 		if (ciws != null) {
 			list = ciws.getListOfSubItemCompositeHolders();
-			sich = (SubItemCompositeHolder) list.get(subItemIndex);
+			sich = list.get(subItemIndex);
 			l = sich.getCheckDoneLabel();
 		}
 
@@ -320,9 +320,9 @@
 		saveCurrentSheet();
 	}
 
-	private boolean checkAllAttempted(ArrayList list) {
+	private boolean checkAllAttempted(ArrayList<SubItemCompositeHolder> list) {
 		for (int i = 0; i < list.size(); i++) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) list.get(i);
+			SubItemCompositeHolder s = list.get(i);
 			if (s.isCompleted() || s.isSkipped()) {
 				continue;
 			}
@@ -331,9 +331,9 @@
 		return true;
 	}
 
-	private boolean checkContainsSkipped(ArrayList list) {
+	private boolean checkContainsSkipped(ArrayList<SubItemCompositeHolder> list) {
 		for (int i = 0; i < list.size(); i++) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) list.get(i);
+			SubItemCompositeHolder s = list.get(i);
 			if (s.isSkipped()) {
 				return true;
 			}
@@ -364,10 +364,11 @@
 			int itemNum = Integer.parseInt((String) props.get(IParserTags.CURRENT));
 			ArrayList completedStatesList = (ArrayList) props.get(IParserTags.COMPLETED);
 			ArrayList expandedStatesList = (ArrayList) props.get(IParserTags.EXPANDED);
-			expandRestoreList = (ArrayList) props.get(IParserTags.EXPANDRESTORE);
+			expandRestoreList = (ArrayList<String>) props.get(IParserTags.EXPANDRESTORE);
 			String cid = (String) props.get(IParserTags.ID);
 			Hashtable completedSubItems = (Hashtable) props.get(IParserTags.SUBITEMCOMPLETED);
-			Hashtable skippedSubItems = (Hashtable) props.get(IParserTags.SUBITEMSKIPPED);
+			Hashtable<String, String> skippedSubItems = (Hashtable<String, String>) props
+					.get(IParserTags.SUBITEMSKIPPED);
 
 			ArrayList completedSubItemsItemList = new ArrayList();
 			ArrayList skippedSubItemsItemList = new ArrayList();
@@ -429,13 +430,14 @@
 						StringTokenizer st = new StringTokenizer(subItemNumbers, ","); //$NON-NLS-1$
 						if (item instanceof CoreItem) {
 							CoreItem coreitemws = (CoreItem) item;
-							ArrayList subItemCompositeHolders = coreitemws.getListOfSubItemCompositeHolders();
+							ArrayList<SubItemCompositeHolder> subItemCompositeHolders = coreitemws
+									.getListOfSubItemCompositeHolders();
 		                    if (subItemCompositeHolders != null) {
 								while (st.hasMoreTokens()) {
 									String token = st.nextToken();
-									((SubItemCompositeHolder) subItemCompositeHolders.get(Integer.parseInt(token))).setCompleted(true);
-									ArrayList l = subItemCompositeHolders;
-									SubItemCompositeHolder s = (SubItemCompositeHolder) l.get(Integer.parseInt(token));
+									subItemCompositeHolders.get(Integer.parseInt(token)).setCompleted(true);
+									ArrayList<SubItemCompositeHolder> l = subItemCompositeHolders;
+									SubItemCompositeHolder s = l.get(Integer.parseInt(token));
 									if (s != null && s.getStartButton() != null) {
 										s.getStartButton().setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART));
 										s.getStartButton().setToolTipText(Messages.RESTART_TASK_TOOLTIP);
@@ -446,13 +448,14 @@
 						}
 					}
 					if (skippedSubItemsItemList.contains(Integer.toString(i))) {
-						String subItemNumbers = (String) skippedSubItems.get(Integer.toString(i));
+						String subItemNumbers = skippedSubItems.get(Integer.toString(i));
 						StringTokenizer st = new StringTokenizer(subItemNumbers, ","); //$NON-NLS-1$
 						if (item instanceof CoreItem) {
 							CoreItem coreitemws = (CoreItem) item;
 							while (st.hasMoreTokens()) {
 								String token = st.nextToken();
-								((SubItemCompositeHolder) coreitemws.getListOfSubItemCompositeHolders().get(Integer.parseInt(token))).setSkipped(true);
+								coreitemws.getListOfSubItemCompositeHolders().get(Integer.parseInt(token))
+										.setSkipped(true);
 							}
 						}
 					}
@@ -523,8 +526,8 @@
 			currentItem = null;
 			currentItemNum = -1;
 			currentPage = null;
-			expandRestoreList = new ArrayList();
-			viewItemList = new ArrayList();
+			expandRestoreList = new ArrayList<>();
+			viewItemList = new ArrayList<>();
 
 			// Create the errorpage to show the user
 			createErrorPage(Messages.ERROR_APPLYING_STATE_DATA);
@@ -534,15 +537,15 @@
 	}
 
 	private void clearBackgrounds() {
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
+		for (Iterator<ViewItem> iter = viewItemList.iterator(); iter.hasNext();) {
+			ViewItem item = iter.next();
 			item.setOriginalColor();
 		}
 	}
 
 	private void clearIcons() {
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
+		for (Iterator<ViewItem> iter = viewItemList.iterator(); iter.hasNext();) {
+			ViewItem item = iter.next();
 			item.setOriginalColor();
 			if (item.isCompleted() || item.isExpanded() || item.isSkipped())
 					item.setIncomplete();
@@ -550,11 +553,11 @@
 	}
 
 	private void collapseAllButCurrent(boolean fromAction) {
-		expandRestoreList = new ArrayList();
+		expandRestoreList = new ArrayList<>();
 		try {
 			ViewItem current = getViewItemAtIndex(currentItemNum);
-			for (ListIterator iter = viewItemList.listIterator(viewItemList.size()); iter.hasPrevious();) {
-				ViewItem item = (ViewItem) iter.previous();
+			for (ListIterator<ViewItem> iter = viewItemList.listIterator(viewItemList.size()); iter.hasPrevious();) {
+				ViewItem item = iter.previous();
 				if (item != current && item.isExpanded()) {
 					item.setCollapsed();
 					if (fromAction)
@@ -566,8 +569,8 @@
 	}
 
 	private void collapseAllButtons() {
-		for (Iterator iter = viewItemList.listIterator(1); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
+		for (Iterator<ViewItem> iter = viewItemList.listIterator(1); iter.hasNext();) {
+			ViewItem item = iter.next();
 			item.setButtonsVisible(false);
 			item.setCompletionMessageCollapsed();
 		}
@@ -761,13 +764,13 @@
 
 	private CheatSheetManager initManager(){
 		CheatSheetManager csManager = getManager();
-		csManager.setData(new Hashtable());
+		csManager.setData(new Hashtable<>());
 		return csManager;
 	}
 
 	private ViewItem getViewItemAtIndex(int index) {
 		if (viewItemList != null && !viewItemList.isEmpty()) {
-			return (ViewItem) viewItemList.get(index);
+			return viewItemList.get(index);
 		}
 		return null;
 	}
@@ -824,7 +827,7 @@
 	private boolean initCheatSheetView() {
 		CheatSheetStopWatch.startStopWatch("CheatSheetViewer.initCheatSheetView()"); //$NON-NLS-1$
 		//Re-initialize list to store items collapsed by expand/restore action on c.s. toolbar.
-		expandRestoreList = new ArrayList();
+		expandRestoreList = new ArrayList<>();
 
 		// re set that action to turned off.
 		if(expandRestoreAction != null)
@@ -833,7 +836,7 @@
 		//reset current item to be null; next item too.
 		currentItem = null;
 		currentItemNum = 0;
-		viewItemList = new ArrayList();
+		viewItemList = new ArrayList<>();
 
 		// Reset the page variable
 		currentPage = null;
@@ -929,8 +932,8 @@
 
 		saveCurrentSheet();
 
-		for (Iterator iter = viewItemList.iterator(); iter.hasNext();) {
-			ViewItem item = (ViewItem) iter.next();
+		for (Iterator<ViewItem> iter = viewItemList.iterator(); iter.hasNext();) {
+			ViewItem item = iter.next();
 			item.dispose();
 		}
 
@@ -1022,7 +1025,7 @@
 	private void restoreExpandStates() {
 		try {
 			for (int i = 0; i < expandRestoreList.size(); i++) {
-				int index = Integer.parseInt(((String) expandRestoreList.get(i)));
+				int index = Integer.parseInt((expandRestoreList.get(i)));
 				ViewItem item = getViewItemAtIndex(index);
 				if (!item.isExpanded()) {
 					item.setExpanded();
@@ -1079,8 +1082,8 @@
 			if (coreItem != null) {
 				hookDialogListener();
 				if (coreItem.runSubItemExecutable(getManager(), subItemIndex) == ViewItem.VIEWITEM_ADVANCE && !coreItem.hasConfirm(subItemIndex)) {
-					ArrayList l = coreItem.getListOfSubItemCompositeHolders();
-					SubItemCompositeHolder s = (SubItemCompositeHolder) l.get(subItemIndex);
+					ArrayList<SubItemCompositeHolder> l = coreItem.getListOfSubItemCompositeHolders();
+					SubItemCompositeHolder s = l.get(subItemIndex);
 					s.getStartButton().setImage(CheatSheetPlugin.getPlugin().getImage(ICheatSheetResource.CHEATSHEET_ITEM_BUTTON_RESTART));
 					s.getStartButton().setToolTipText(Messages.RESTART_TASK_TOOLTIP);
 					advanceSubItem(link, true, subItemIndex);
@@ -1338,7 +1341,7 @@
 	}
 
 	@Override
-	public void reset(Map cheatSheetData) {
+	public void reset(Map<String, String> cheatSheetData) {
 		if (currentPage instanceof CheatSheetPage) {
 			restart();
 			getManager().setData(cheatSheetData);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
index 195ab77..43a06a7 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/CoreItem.java
@@ -271,7 +271,7 @@
 
 	private AbstractExecutable getExecutable(int index) {
 		if (item.getSubItems() != null && item.getSubItems().size()>0 && listOfSubItemCompositeHolders != null) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) listOfSubItemCompositeHolders.get(index);
+			SubItemCompositeHolder s = listOfSubItemCompositeHolders.get(index);
 			if(s != null) {
 				SubItem subItem = s.getSubItem();
 				AbstractExecutable executable = subItem.getExecutable();
@@ -286,7 +286,7 @@
 		return null;
 	}
 
-	public ArrayList getListOfSubItemCompositeHolders() {
+	public ArrayList<SubItemCompositeHolder> getListOfSubItemCompositeHolders() {
 		return listOfSubItemCompositeHolders;
 	}
 
@@ -355,7 +355,7 @@
 		}
 
 		//Instantiate the list to store the sub item composites.
-		listOfSubItemCompositeHolders = new ArrayList(20);
+		listOfSubItemCompositeHolders = new ArrayList<>(20);
 
 		//loop throught the number of sub items, make a new composite for each sub item.
 		//Add the spacer, the label, then the buttons that are applicable for each sub item.
@@ -449,7 +449,7 @@
 		if (buttonsHandled)
 			return;
 		//Instantiate the list to store the sub item composites.
-		listOfSubItemCompositeHolders = new ArrayList(20);
+		listOfSubItemCompositeHolders = new ArrayList<>(20);
 
 		ArrayList sublist = item.getSubItems();
 
@@ -518,7 +518,7 @@
 	/*package*/
 	byte runSubItemExecutable(CheatSheetManager csm, int index) {
 		if (item.getSubItems() != null && item.getSubItems().size()>0 && listOfSubItemCompositeHolders != null) {
-			SubItemCompositeHolder s = (SubItemCompositeHolder) listOfSubItemCompositeHolders.get(index);
+			SubItemCompositeHolder s = listOfSubItemCompositeHolders.get(index);
 			if(s != null) {
 				AbstractExecutable executable = getExecutable(index);
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
index fd5c0a0..0bfae11 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
@@ -31,9 +31,9 @@
 	 * Class used to sort status with errors first, then warnings
 	 */
 	private class StatusSorter {
-		private List errors = new ArrayList();
-		private List warnings = new ArrayList();
-		private List info = new ArrayList();
+		private List<IStatus> errors = new ArrayList<>();
+		private List<IStatus> warnings = new ArrayList<>();
+		private List<IStatus> info = new ArrayList<>();
 
 		public StatusSorter(IStatus status) {
 			sortStatus(status);
@@ -59,8 +59,8 @@
 			}
 		}
 
-		public List getSortedStatus() {
-			List result = new ArrayList();
+		public List<IStatus> getSortedStatus() {
+			List<IStatus> result = new ArrayList<IStatus>();
 			result.addAll(errors);
 			result.addAll(warnings);
 			result.addAll(info);
@@ -101,9 +101,9 @@
 
 	private void showStatus(IStatus status) {
 		StatusSorter sorter = new StatusSorter(status);
-		List sorted = sorter.getSortedStatus();
-		for (Iterator iter = sorted.iterator(); iter.hasNext();) {
-			IStatus nextStatus = (IStatus)iter.next();
+		List<IStatus> sorted = sorter.getSortedStatus();
+		for (Iterator<IStatus> iter = sorted.iterator(); iter.hasNext();) {
+			IStatus nextStatus = iter.next();
 			Label imageLabel = toolkit.createLabel(form.getBody(), ""); //$NON-NLS-1$
 			imageLabel.setImage(getImage(nextStatus.getSeverity()));
 			Label messageLabel = toolkit.createLabel(form.getBody(), nextStatus.getMessage(), SWT.WRAP);
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
index 2eef391..80aa925 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ViewItem.java
@@ -85,7 +85,7 @@
 	private Font boldFont;
 	private Font regularFont;
 	private boolean initialized = false;
-	protected ArrayList listOfSubItemCompositeHolders;
+	protected ArrayList<SubItemCompositeHolder> listOfSubItemCompositeHolders;
 
 	/**
 	 * Constructor for ViewItem.