Generify ListenerList in o.e.dltk.ui.

Change-Id: I91e9080a17bce36e8ff144dfd65f91da58fe6f84
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/BrowserInformationControl.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/BrowserInformationControl.java
index 8643b69..51d471e 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/BrowserInformationControl.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/BrowserInformationControl.java
@@ -109,7 +109,7 @@
 
 	/**
 	 * Minimal size constraints.
-	 * 
+	 *
 	 * @since 3.2
 	 */
 	private static final int MIN_WIDTH = 80;
@@ -167,7 +167,7 @@
 	 *
 	 * @since 3.4
 	 */
-	private ListenerList/* <IInputChangedListener> */ fInputChangeListeners = new ListenerList(
+	private ListenerList<IInputChangedListener> fInputChangeListeners = new ListenerList<>(
 			ListenerList.IDENTITY);
 
 	/**
@@ -356,9 +356,8 @@
 		fCompleted = false;
 		fBrowser.setText(content);
 
-		Object[] listeners = fInputChangeListeners.getListeners();
-		for (int i = 0; i < listeners.length; i++)
-			((IInputChangedListener) listeners[i]).inputChanged(fInput);
+		for (IInputChangedListener listener : fInputChangeListeners)
+			listener.inputChanged(fInput);
 	}
 
 	/*
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
index 538db04..2074f59 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
@@ -2995,7 +2995,7 @@
 		setTitleImage(image);
 	}
 
-	private ListenerList fReconcilingListeners = new ListenerList(
+	private ListenerList<IScriptReconcilingListener> fReconcilingListeners = new ListenerList<>(
 			ListenerList.IDENTITY);
 
 	/**
@@ -3017,9 +3017,8 @@
 		// getInputJavaElement());
 
 		// Notify listeners
-		Object[] listeners = fReconcilingListeners.getListeners();
-		for (int i = 0, length = listeners.length; i < length; ++i)
-			((IScriptReconcilingListener) listeners[i]).aboutToBeReconciled();
+		for (IScriptReconcilingListener listener : fReconcilingListeners)
+			listener.aboutToBeReconciled();
 	}
 
 	/*
@@ -3043,10 +3042,8 @@
 		// progressMonitor);
 
 		// Notify listeners
-		Object[] listeners = fReconcilingListeners.getListeners();
-		for (int i = 0, length = listeners.length; i < length; ++i)
-			((IScriptReconcilingListener) listeners[i]).reconciled(ast, forced,
-					progressMonitor);
+		for (IScriptReconcilingListener listener : fReconcilingListeners)
+			listener.reconciled(ast, forced, progressMonitor);
 
 		// Update Outline page selection
 		if (!forced && !progressMonitor.isCanceled()) {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
index e8b76df..4b6265a 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
@@ -525,9 +525,9 @@
 	protected IPreferenceStore fStore;
 	private MemberFilterActionGroup fMemberFilterActionGroup;
 
-	private ListenerList fSelectionChangedListeners = new ListenerList(
+	private ListenerList<ISelectionChangedListener> fSelectionChangedListeners = new ListenerList<>(
 			ListenerList.IDENTITY);
-	private ListenerList fPostSelectionChangedListeners = new ListenerList(
+	private ListenerList<ISelectionChangedListener> fPostSelectionChangedListeners = new ListenerList<>(
 			ListenerList.IDENTITY);
 	private Hashtable<String, IAction> fActions = new Hashtable<String, IAction>();
 
@@ -602,11 +602,6 @@
 		}
 	}
 
-	/*
-	 * @see org.eclipse.jface.text.IPostSelectionProvider#
-	 * addPostSelectionChangedListener
-	 * (org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
 	@Override
 	public void addPostSelectionChangedListener(
 			ISelectionChangedListener listener) {
@@ -617,10 +612,6 @@
 		}
 	}
 
-	/*
-	 * @see
-	 * ISelectionProvider#addSelectionChangedListener(ISelectionChangedListener)
-	 */
 	@Override
 	public void addSelectionChangedListener(
 			ISelectionChangedListener listener) {
@@ -682,18 +673,14 @@
 		fOutlineViewer.setLabelProvider(
 				new StyledDecoratingModelLabelProvider(lprovider));
 
-		Object[] listeners = fSelectionChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			fSelectionChangedListeners.remove(listeners[i]);
-			fOutlineViewer.addSelectionChangedListener(
-					(ISelectionChangedListener) listeners[i]);
+		for (ISelectionChangedListener listener : fSelectionChangedListeners) {
+			fSelectionChangedListeners.remove(listener);
+			fOutlineViewer.addSelectionChangedListener(listener);
 		}
 
-		listeners = fPostSelectionChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			fPostSelectionChangedListeners.remove(listeners[i]);
-			fOutlineViewer.addPostSelectionChangedListener(
-					(ISelectionChangedListener) listeners[i]);
+		for (ISelectionChangedListener listener : fPostSelectionChangedListeners) {
+			fPostSelectionChangedListeners.remove(listener);
+			fOutlineViewer.addPostSelectionChangedListener(listener);
 		}
 
 		MenuManager manager = new MenuManager(
@@ -1000,11 +987,6 @@
 		// fCategoryFilterActionGroup.contributeToViewMenu(viewMenuManager);
 	}
 
-	/*
-	 * @seeorg.eclipse.jface.text.IPostSelectionProvider#
-	 * removePostSelectionChangedListener
-	 * (org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
 	@Override
 	public void removePostSelectionChangedListener(
 			ISelectionChangedListener listener) {
@@ -1015,10 +997,6 @@
 		}
 	}
 
-	/*
-	 * @see ISelectionProvider#removeSelectionChangedListener(
-	 * ISelectionChangedListener )
-	 */
 	@Override
 	public void removeSelectionChangedListener(
 			ISelectionChangedListener listener) {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/SourceModuleDocumentProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/SourceModuleDocumentProvider.java
index f47de29..99bdd00 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/SourceModuleDocumentProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/SourceModuleDocumentProvider.java
@@ -987,10 +987,10 @@
 	protected static class GlobalAnnotationModelListener implements
 			IAnnotationModelListener, IAnnotationModelListenerExtension {
 
-		private ListenerList fListenerList;
+		private ListenerList<IAnnotationModelListener> fListenerList;
 
 		public GlobalAnnotationModelListener() {
-			fListenerList = new ListenerList(ListenerList.IDENTITY);
+			fListenerList = new ListenerList<>(ListenerList.IDENTITY);
 		}
 
 		/**
@@ -998,9 +998,8 @@
 		 */
 		@Override
 		public void modelChanged(IAnnotationModel model) {
-			Object[] listeners = fListenerList.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				((IAnnotationModelListener) listeners[i]).modelChanged(model);
+			for (IAnnotationModelListener listener : fListenerList) {
+				listener.modelChanged(model);
 			}
 		}
 
@@ -1009,9 +1008,7 @@
 		 */
 		@Override
 		public void modelChanged(AnnotationModelEvent event) {
-			Object[] listeners = fListenerList.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				Object curr = listeners[i];
+			for (IAnnotationModelListener curr : fListenerList) {
 				if (curr instanceof IAnnotationModelListenerExtension) {
 					((IAnnotationModelListenerExtension) curr)
 							.modelChanged(event);
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/PreferencesAdapter.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/PreferencesAdapter.java
index 5cdf8bb..314e5a9 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/PreferencesAdapter.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/PreferencesAdapter.java
@@ -24,23 +24,25 @@
 
 	/**
 	 * Property change listener. Listens for events of type
-	 * {@link org.eclipse.core.runtime.Preferences.PropertyChangeEvent} and fires
-	 * a {@link org.eclipse.jface.util.PropertyChangeEvent} on the
-	 * adapter with arguments from the received event.
+	 * {@link org.eclipse.core.runtime.Preferences.PropertyChangeEvent} and
+	 * fires a {@link org.eclipse.jface.util.PropertyChangeEvent} on the adapter
+	 * with arguments from the received event.
 	 */
-	private class PropertyChangeListener implements Preferences.IPropertyChangeListener {
+	private class PropertyChangeListener
+			implements Preferences.IPropertyChangeListener {
 
 		@Override
 		public void propertyChange(Preferences.PropertyChangeEvent event) {
-			firePropertyChangeEvent(event.getProperty(), event.getOldValue(), event.getNewValue());
+			firePropertyChangeEvent(event.getProperty(), event.getOldValue(),
+					event.getNewValue());
 		}
 	}
 
 	/** Listeners on the adapter */
-	private ListenerList fListeners= new ListenerList();
+	private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>();
 
 	/** Listener on the adapted Preferences */
-	private PropertyChangeListener fListener= new PropertyChangeListener();
+	private PropertyChangeListener fListener = new PropertyChangeListener();
 
 	/** Adapted Preferences */
 	private Preferences fPreferences;
@@ -54,13 +56,15 @@
 	public PreferencesAdapter() {
 		this(new Preferences());
 	}
+
 	/**
 	 * Initialize with the given Preferences.
 	 *
-	 * @param preferences The preferences to wrap.
+	 * @param preferences
+	 *            The preferences to wrap.
 	 */
 	public PreferencesAdapter(Preferences preferences) {
-		fPreferences= preferences;
+		fPreferences = preferences;
 	}
 
 	@Override
@@ -83,12 +87,13 @@
 	}
 
 	@Override
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
+	public void firePropertyChangeEvent(String name, Object oldValue,
+			Object newValue) {
 		if (!fSilent) {
-			PropertyChangeEvent event= new PropertyChangeEvent(this, name, oldValue, newValue);
-			Object[] listeners= fListeners.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IPropertyChangeListener) listeners[i]).propertyChange(event);
+			PropertyChangeEvent event = new PropertyChangeEvent(this, name,
+					oldValue, newValue);
+			for (IPropertyChangeListener listener : fListeners)
+				listener.propertyChange(event);
 		}
 	}
 
@@ -165,10 +170,10 @@
 	@Override
 	public void putValue(String name, String value) {
 		try {
-			fSilent= true;
+			fSilent = true;
 			fPreferences.setValue(name, value);
 		} finally {
-			fSilent= false;
+			fSilent = false;
 		}
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/dialogfields/CheckedListDialogField.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/dialogfields/CheckedListDialogField.java
index 0834763..affeee0 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/dialogfields/CheckedListDialogField.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/dialogfields/CheckedListDialogField.java
@@ -224,7 +224,7 @@
 		checkStateChanged();
 	}
 
-	private final ListenerList checkStateListeners = new ListenerList();
+	private final ListenerList<ICheckStateListener> checkStateListeners = new ListenerList<>();
 
 	public void addCheckStateListener(ICheckStateListener listener) {
 		checkStateListeners.add(listener);
@@ -238,9 +238,8 @@
 		} else {
 			fCheckedElements.remove(e.getElement());
 		}
-		final Object[] listeners = checkStateListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			((ICheckStateListener) listeners[i]).checkStateChanged(e);
+		for (ICheckStateListener listener : checkStateListeners) {
+			listener.checkStateChanged(e);
 		}
 		checkStateChanged();
 	}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/WorkingSetModel.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/WorkingSetModel.java
index 96c7b81..993f616 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/WorkingSetModel.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/WorkingSetModel.java
@@ -46,7 +46,7 @@
 
 	private ILocalWorkingSetManager fLocalWorkingSetManager;
 	private List<IWorkingSet> fActiveWorkingSets;
-	private ListenerList fListeners;
+	private ListenerList<IPropertyChangeListener> fListeners;
 	private IPropertyChangeListener fWorkingSetManagerListener;
 	private OthersWorkingSetUpdater fOthersWorkingSetUpdater;
 
@@ -159,8 +159,7 @@
 
 		private void addElement(IAdaptable element, IWorkingSet ws) {
 			addToMap(fElementToWorkingSet, element, ws);
-			IResource resource = element
-					.getAdapter(IResource.class);
+			IResource resource = element.getAdapter(IResource.class);
 			if (resource != null) {
 				addToMap(fResourceToWorkingSet, resource, ws);
 			}
@@ -168,8 +167,7 @@
 
 		private void removeElement(IAdaptable element, IWorkingSet ws) {
 			removeFromMap(fElementToWorkingSet, element, ws);
-			IResource resource = element
-					.getAdapter(IResource.class);
+			IResource resource = element.getAdapter(IResource.class);
 			if (resource != null) {
 				removeFromMap(fResourceToWorkingSet, resource, ws);
 			}
@@ -249,7 +247,7 @@
 	}
 
 	private void addListenersToWorkingSetManagers() {
-		fListeners = new ListenerList(ListenerList.IDENTITY);
+		fListeners = new ListenerList<>(ListenerList.IDENTITY);
 		fWorkingSetManagerListener = event -> workingSetManagerChanged(event);
 		PlatformUI.getWorkbench().getWorkingSetManager()
 				.addPropertyChangeListener(fWorkingSetManagerListener);
@@ -311,10 +309,9 @@
 	}
 
 	public boolean needsConfiguration() {
-		return !fConfigured
-				&& fActiveWorkingSets.size() == 1
-				&& WorkingSetIDs.OTHERS.equals(fActiveWorkingSets.get(0)
-						.getId());
+		return !fConfigured && fActiveWorkingSets.size() == 1
+				&& WorkingSetIDs.OTHERS
+						.equals(fActiveWorkingSets.get(0).getId());
 	}
 
 	public void configured() {
@@ -344,8 +341,8 @@
 	}
 
 	public IWorkingSet[] getActiveWorkingSets() {
-		return fActiveWorkingSets.toArray(new IWorkingSet[fActiveWorkingSets
-				.size()]);
+		return fActiveWorkingSets
+				.toArray(new IWorkingSet[fActiveWorkingSets.size()]);
 	}
 
 	public IWorkingSet[] getAllWorkingSets() {
@@ -356,8 +353,8 @@
 			if (!result.contains(locals[i]))
 				result.add(locals[i]);
 		}
-		IWorkingSet[] globals = PlatformUI.getWorkbench()
-				.getWorkingSetManager().getWorkingSets();
+		IWorkingSet[] globals = PlatformUI.getWorkbench().getWorkingSetManager()
+				.getWorkingSets();
 		for (int i = 0; i < globals.length; i++) {
 			if (!result.contains(globals[i]))
 				result.add(globals[i]);
@@ -366,8 +363,8 @@
 	}
 
 	public void setActiveWorkingSets(IWorkingSet[] workingSets) {
-		fActiveWorkingSets = new ArrayList<IWorkingSet>(Arrays
-				.asList(workingSets));
+		fActiveWorkingSets = new ArrayList<IWorkingSet>(
+				Arrays.asList(workingSets));
 		fElementMapper.rebuild(getActiveWorkingSets());
 		fOthersWorkingSetUpdater.updateElements();
 		fireEvent(new PropertyChangeEvent(this,
@@ -376,11 +373,12 @@
 
 	public void saveState(IMemento memento) {
 		memento.putString(TAG_CONFIGURED, Boolean.toString(fConfigured));
-		fLocalWorkingSetManager.saveState(memento
-				.createChild(TAG_LOCAL_WORKING_SET_MANAGER));
-		for (Iterator iter = fActiveWorkingSets.iterator(); iter.hasNext();) {
+		fLocalWorkingSetManager
+				.saveState(memento.createChild(TAG_LOCAL_WORKING_SET_MANAGER));
+		for (Iterator<IWorkingSet> iter = fActiveWorkingSets.iterator(); iter
+				.hasNext();) {
 			IMemento active = memento.createChild(TAG_ACTIVE_WORKING_SET);
-			IWorkingSet workingSet = (IWorkingSet) iter.next();
+			IWorkingSet workingSet = iter.next();
 			active.putString(TAG_WORKING_SET_NAME, workingSet.getName());
 		}
 	}
@@ -421,9 +419,8 @@
 
 	private void workingSetManagerChanged(PropertyChangeEvent event) {
 		String property = event.getProperty();
-		if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED
-				.equals(property)
-				&& event.getSource() == fLocalWorkingSetManager) {
+		if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED.equals(
+				property) && event.getSource() == fLocalWorkingSetManager) {
 			IWorkingSetUpdater updater = (IWorkingSetUpdater) event
 					.getNewValue();
 			if (updater instanceof OthersWorkingSetUpdater) {
@@ -449,8 +446,8 @@
 			List<IWorkingSet> elements = new ArrayList<IWorkingSet>(
 					fActiveWorkingSets);
 			elements.remove(workingSet);
-			setActiveWorkingSets(elements.toArray(new IWorkingSet[elements
-					.size()]));
+			setActiveWorkingSets(
+					elements.toArray(new IWorkingSet[elements.size()]));
 		} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE
 				.equals(property)) {
 			fireEvent(event);
@@ -458,9 +455,8 @@
 	}
 
 	private void fireEvent(PropertyChangeEvent event) {
-		Object[] listeners = fListeners.getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			((IPropertyChangeListener) listeners[i]).propertyChange(event);
+		for (IPropertyChangeListener listener : fListeners) {
+			listener.propertyChange(event);
 		}
 	}
 
@@ -470,7 +466,8 @@
 		Object oldValue = event.getOldValue();
 		Object newValue = event.getNewValue();
 		if ((oldValue != null && fActiveWorkingSets.contains(oldValue))
-				|| (newValue != null && fActiveWorkingSets.contains(newValue))) {
+				|| (newValue != null
+						&& fActiveWorkingSets.contains(newValue))) {
 			return true;
 		}
 		return false;
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/DLTKUIPlugin.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/DLTKUIPlugin.java
index 8dc3de1..cd56e19 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/DLTKUIPlugin.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/DLTKUIPlugin.java
@@ -204,8 +204,8 @@
 		new InitializeJob().schedule();
 	}
 
-	static class ShutdownCloseRemoteEditorsListener implements
-			IWorkbenchListener {
+	static class ShutdownCloseRemoteEditorsListener
+			implements IWorkbenchListener {
 		@Override
 		public void postShutdown(IWorkbench workbench) {
 			// empty
@@ -256,8 +256,8 @@
 		}
 	}
 
-	private static class UIExecutionContextManager implements
-			IExecutionContextManager {
+	private static class UIExecutionContextManager
+			implements IExecutionContextManager {
 
 		private boolean active = false;
 
@@ -301,7 +301,7 @@
 
 	}
 
-	private final ListenerList shutdownListeners = new ListenerList();
+	private final ListenerList<IShutdownListener> shutdownListeners = new ListenerList<>();
 
 	public void addShutdownListener(IShutdownListener listener) {
 		shutdownListeners.add(listener);
@@ -318,9 +318,8 @@
 			fMembersOrderPreferenceCache.dispose();
 			fMembersOrderPreferenceCache = null;
 		}
-		Object[] listeners = shutdownListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			((IShutdownListener) listeners[i]).shutdown();
+		for (IShutdownListener listener : shutdownListeners) {
+			listener.shutdown();
 		}
 		shutdownListeners.clear();
 		super.stop(context);
@@ -376,8 +375,8 @@
 	 * @return the image descriptor
 	 */
 	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(
-				"org.eclipse.dltk.ui", path); //$NON-NLS-1$
+		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.dltk.ui", //$NON-NLS-1$
+				path);
 	}
 
 	private IWorkingCopyManager fWorkingCopyManager;
@@ -434,13 +433,13 @@
 		}
 
 		if (editorInput instanceof FileStoreEditorInput) {
-			ISourceModule module = resolveSourceModule((FileStoreEditorInput) editorInput);
+			ISourceModule module = resolveSourceModule(
+					(FileStoreEditorInput) editorInput);
 			if (module != null) {
 				return module;
 			}
 		}
-		IModelElement me = editorInput
-				.getAdapter(IModelElement.class);
+		IModelElement me = editorInput.getAdapter(IModelElement.class);
 		if (me instanceof ISourceModule) {
 			return (ISourceModule) me;
 		}
@@ -617,7 +616,8 @@
 			descriptors = editorTextHoverDescriptorsByNature.get(natureId);
 		}
 		if (descriptors == null) {
-			descriptors = initializeEditorTextHoverDescriprtors(store, natureId);
+			descriptors = initializeEditorTextHoverDescriprtors(store,
+					natureId);
 			if (descriptors != null && natureId != null) {
 				synchronized (editorTextHoverDescriptorsByNature) {
 					editorTextHoverDescriptorsByNature.put(natureId,
@@ -638,7 +638,8 @@
 			 * getConfigurationElement(java.lang.Object)
 			 */
 			@Override
-			public IConfigurationElement getConfigurationElement(Object object) {
+			public IConfigurationElement getConfigurationElement(
+					Object object) {
 				return ((EditorTextHoverDescriptor) object)
 						.getConfigurationElement();
 			}
@@ -646,8 +647,8 @@
 		sorter.sort(descriptors);
 		// Move Best Match hover to front
 		for (int i = 0; i < descriptors.length - 1; i++) {
-			if (PreferenceConstants.ID_BESTMATCH_HOVER.equals(descriptors[i]
-					.getId())) {
+			if (PreferenceConstants.ID_BESTMATCH_HOVER
+					.equals(descriptors[i].getId())) {
 				final EditorTextHoverDescriptor hoverDescriptor = descriptors[i];
 				for (int j = i; j > 0; j--)
 					descriptors[j] = descriptors[j - 1];
@@ -711,8 +712,8 @@
 	 * @since 3.3
 	 */
 	public static IEditorPart openInEditor(IModelElement element,
-			boolean activate, boolean reveal) throws ModelException,
-			PartInitException {
+			boolean activate, boolean reveal)
+			throws ModelException, PartInitException {
 		if (!(element instanceof ISourceReference)) {
 			return null;
 		}
@@ -741,11 +742,12 @@
 		return fBuildpathAttributeConfigurationDescriptors;
 	}
 
-	public static ISourceModule resolveSourceModule(FileStoreEditorInput input) {
+	public static ISourceModule resolveSourceModule(
+			FileStoreEditorInput input) {
 		final ISourceModule[] modules = new ISourceModule[1];
 		final IPath filePath = URIUtil.toPath(input.getURI());
-		IScriptModel scriptModel = DLTKCore.create(ResourcesPlugin
-				.getWorkspace().getRoot());
+		IScriptModel scriptModel = DLTKCore
+				.create(ResourcesPlugin.getWorkspace().getRoot());
 		try {
 			scriptModel.accept(element -> {
 				boolean shouldDescend = (modules[0] == null);
@@ -762,11 +764,10 @@
 								IPath folderPath = new Path(
 										filePath.removeLastSegments(1).toFile()
 												.getCanonicalPath());
-								folderPath = folderPath
-										.removeFirstSegments(new Path(
-												fragment.getPath().toFile()
-														.getCanonicalPath())
-																.segmentCount());
+								folderPath = folderPath.removeFirstSegments(
+										new Path(fragment.getPath().toFile()
+												.getCanonicalPath())
+														.segmentCount());
 								IScriptFolder folder = fragment
 										.getScriptFolder(folderPath);
 								if ((folder != null)
@@ -813,10 +814,8 @@
 	}
 
 	public static String getAdditionalInfoAffordanceString() {
-		if (!EditorsUI
-				.getPreferenceStore()
-				.getBoolean(
-						AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE))
+		if (!EditorsUI.getPreferenceStore().getBoolean(
+				AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE))
 			return null;
 		return Messages.DLTKUIPlugin_additionalInfo_affordance;
 	}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/EclipsePreferencesAdapter.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/EclipsePreferencesAdapter.java
index 010b1ac..30c69ea 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/EclipsePreferencesAdapter.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/EclipsePreferencesAdapter.java
@@ -24,8 +24,8 @@
 	 * {@link org.eclipse.jface.util.PropertyChangeEvent} on this adapter with
 	 * arguments from the received event.
 	 */
-	private class PreferenceChangeListener implements
-			IEclipsePreferences.IPreferenceChangeListener {
+	private class PreferenceChangeListener
+			implements IEclipsePreferences.IPreferenceChangeListener {
 		@Override
 		public void preferenceChange(
 				final IEclipsePreferences.PreferenceChangeEvent event) {
@@ -41,7 +41,7 @@
 	}
 
 	/** Listeners on on this adapter */
-	private ListenerList fListeners = new ListenerList();
+	private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>();
 
 	/** Listener on the node */
 	private IEclipsePreferences.IPreferenceChangeListener fListener = new PreferenceChangeListener();
@@ -95,9 +95,8 @@
 			Object newValue) {
 		PropertyChangeEvent event = new PropertyChangeEvent(this, name,
 				oldValue, newValue);
-		Object[] listeners = fListeners.getListeners();
-		for (int i = 0; i < listeners.length; i++)
-			((IPropertyChangeListener) listeners[i]).propertyChange(event);
+		for (IPropertyChangeListener listener : fListeners)
+			listener.propertyChange(event);
 	}
 
 	@Override
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/PreferencesAdapter.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/PreferencesAdapter.java
index 1f7048e..1121457 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/PreferencesAdapter.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/PreferencesAdapter.java
@@ -18,29 +18,32 @@
  * Adapts {@link org.eclipse.core.runtime.Preferences} to
  * {@link org.eclipse.jface.preference.IPreferenceStore}
  *
-	 *
+ *
  */
 public class PreferencesAdapter implements IPreferenceStore {
 
 	/**
 	 * Property change listener. Listens for events of type
-	 * {@link org.eclipse.core.runtime.Preferences.PropertyChangeEvent} and fires
-	 * a {@link org.eclipse.jface.util.PropertyChangeEvent} on the
-	 * adapter with arguments from the received event.
+	 * {@link org.eclipse.core.runtime.Preferences.PropertyChangeEvent} and
+	 * fires a {@link org.eclipse.jface.util.PropertyChangeEvent} on the adapter
+	 * with arguments from the received event.
 	 */
-	private class PropertyChangeListener implements Preferences.IPropertyChangeListener {
+	private class PropertyChangeListener
+			implements Preferences.IPropertyChangeListener {
 
 		@Override
 		public void propertyChange(Preferences.PropertyChangeEvent event) {
-			firePropertyChangeEvent(event.getProperty(), event.getOldValue(), event.getNewValue());
+			firePropertyChangeEvent(event.getProperty(), event.getOldValue(),
+					event.getNewValue());
 		}
 	}
 
 	/** Listeners on the adapter */
-	private ListenerList fListeners= new ListenerList(ListenerList.IDENTITY);
+	private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>(
+			ListenerList.IDENTITY);
 
 	/** Listener on the adapted Preferences */
-	private PropertyChangeListener fListener= new PropertyChangeListener();
+	private PropertyChangeListener fListener = new PropertyChangeListener();
 
 	/** Adapted Preferences */
 	private Preferences fPreferences;
@@ -54,10 +57,12 @@
 	public PreferencesAdapter() {
 		this(new Preferences());
 	}
+
 	/**
 	 * Initialize with the given Preferences.
 	 *
-	 * @param preferences The preferences to wrap.
+	 * @param preferences
+	 *            The preferences to wrap.
 	 */
 	public PreferencesAdapter(Preferences preferences) {
 		fPreferences = preferences;
@@ -83,12 +88,13 @@
 	}
 
 	@Override
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
+	public void firePropertyChangeEvent(String name, Object oldValue,
+			Object newValue) {
 		if (!fSilent) {
-			PropertyChangeEvent event= new PropertyChangeEvent(this, name, oldValue, newValue);
-			Object[] listeners= fListeners.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IPropertyChangeListener) listeners[i]).propertyChange(event);
+			PropertyChangeEvent event = new PropertyChangeEvent(this, name,
+					oldValue, newValue);
+			for (IPropertyChangeListener listener : fListeners)
+				listener.propertyChange(event);
 		}
 	}
 
@@ -165,10 +171,10 @@
 	@Override
 	public void putValue(String name, String value) {
 		try {
-			fSilent= true;
+			fSilent = true;
 			fPreferences.setValue(name, value);
 		} finally {
-			fSilent= false;
+			fSilent = false;
 		}
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ProblemsLabelDecorator.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ProblemsLabelDecorator.java
index a94a6ec..49e4f74 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ProblemsLabelDecorator.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ProblemsLabelDecorator.java
@@ -110,7 +110,7 @@
 	private boolean fUseNewRegistry = false;
 	private IProblemChangedListener fProblemChangedListener;
 
-	private ListenerList fListeners;
+	private ListenerList<ILabelProviderListener> fListeners;
 	private ISourceRange fCachedRange;
 
 	/**
@@ -376,7 +376,7 @@
 	@Override
 	public void addListener(ILabelProviderListener listener) {
 		if (fListeners == null) {
-			fListeners = new ListenerList();
+			fListeners = new ListenerList<>();
 		}
 		fListeners.add(listener);
 		if (fProblemChangedListener == null) {
@@ -405,10 +405,8 @@
 		if (fListeners != null && !fListeners.isEmpty()) {
 			LabelProviderChangedEvent event = new ProblemsLabelChangedEvent(
 					this, changedResources, isMarkerChange);
-			Object[] listeners = fListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				((ILabelProviderListener) listeners[i])
-						.labelProviderChanged(event);
+			for (ILabelProviderListener listener : fListeners) {
+				listener.labelProviderChanged(event);
 			}
 		}
 	}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/PackageViewerWrapper.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/PackageViewerWrapper.java
index 5824f73..7f5e73e 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/PackageViewerWrapper.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/PackageViewerWrapper.java
@@ -33,30 +33,32 @@
 import org.eclipse.swt.widgets.Widget;
 
 /**
- * Wrapper who transfers listeners and filters and to which clients
- * can refer.
+ * Wrapper who transfers listeners and filters and to which clients can refer.
  *
- * @deprecated needs to be replaced by a manager who handles transfer of listeners and filters
+ * @deprecated needs to be replaced by a manager who handles transfer of
+ *             listeners and filters
  */
 @Deprecated
 class PackageViewerWrapper extends StructuredViewer {
 
 	private StructuredViewer fViewer;
 	private ListenerList fListenerList;
-	private ListenerList fSelectionChangedListenerList;
-	private ListenerList fPostSelectionChangedListenerList;
+	private ListenerList<ISelectionChangedListener> fSelectionChangedListenerList;
+	private ListenerList<ISelectionChangedListener> fPostSelectionChangedListenerList;
 
 	public PackageViewerWrapper() {
-		fListenerList= new ListenerList(ListenerList.IDENTITY);
-		fPostSelectionChangedListenerList= new ListenerList(ListenerList.IDENTITY);
-		fSelectionChangedListenerList= new ListenerList(ListenerList.IDENTITY);
+		fListenerList = new ListenerList(ListenerList.IDENTITY);
+		fPostSelectionChangedListenerList = new ListenerList<>(
+				ListenerList.IDENTITY);
+		fSelectionChangedListenerList = new ListenerList<>(
+				ListenerList.IDENTITY);
 	}
 
 	public void setViewer(StructuredViewer viewer) {
 		Assert.isNotNull(viewer);
 
-		StructuredViewer oldViewer= fViewer;
-		fViewer= viewer;
+		StructuredViewer oldViewer = fViewer;
+		fViewer = viewer;
 
 		if (fViewer.getContentProvider() != null)
 			super.setContentProvider(fViewer.getContentProvider());
@@ -64,16 +66,16 @@
 		transferListeners();
 	}
 
-	StructuredViewer getViewer(){
+	StructuredViewer getViewer() {
 		return fViewer;
 	}
 
 	private void transferFilters(StructuredViewer oldViewer) {
-		//set filters
+		// set filters
 		if (oldViewer != null) {
-			ViewerFilter[] filters= oldViewer.getFilters();
-			for (int i= 0; i < filters.length; i++) {
-				ViewerFilter filter= filters[i];
+			ViewerFilter[] filters = oldViewer.getFilters();
+			for (int i = 0; i < filters.length; i++) {
+				ViewerFilter filter = filters[i];
 				fViewer.addFilter(filter);
 			}
 		}
@@ -81,33 +83,27 @@
 
 	private void transferListeners() {
 
-		Object[] listeners= fPostSelectionChangedListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
-			ISelectionChangedListener listener= (ISelectionChangedListener)object;
+		for (ISelectionChangedListener listener : fPostSelectionChangedListenerList) {
 			fViewer.addPostSelectionChangedListener(listener);
 		}
 
-		listeners= fSelectionChangedListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
-			ISelectionChangedListener listener= (ISelectionChangedListener)object;
+		for (ISelectionChangedListener listener : fSelectionChangedListenerList) {
 			fViewer.addSelectionChangedListener(listener);
 		}
 
 		// Add all other listeners
-		listeners= fListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
+		Object[] listeners = fListenerList.getListeners();
+		for (int i = 0; i < listeners.length; i++) {
+			Object object = listeners[i];
 
 			if (object instanceof IOpenListener) {
-				IOpenListener listener= (IOpenListener) object;
+				IOpenListener listener = (IOpenListener) object;
 				addOpenListener(listener);
 			} else if (object instanceof HelpListener) {
-				HelpListener listener= (HelpListener) object;
+				HelpListener listener = (HelpListener) object;
 				addHelpListener(listener);
 			} else if (object instanceof IDoubleClickListener) {
-				IDoubleClickListener listener= (IDoubleClickListener) object;
+				IDoubleClickListener listener = (IDoubleClickListener) object;
 				addDoubleClickListener(listener);
 			}
 		}
@@ -116,24 +112,26 @@
 	@Override
 	public void setSelection(ISelection selection, boolean reveal) {
 		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection sel= (IStructuredSelection) selection;
+			IStructuredSelection sel = (IStructuredSelection) selection;
 
-			//try and give the two a common super class
-			IContentProvider provider= getContentProvider();
+			// try and give the two a common super class
+			IContentProvider provider = getContentProvider();
 			if (provider instanceof LogicalPackagesProvider) {
-				LogicalPackagesProvider fprovider= (LogicalPackagesProvider) provider;
+				LogicalPackagesProvider fprovider = (LogicalPackagesProvider) provider;
 
-				Object object= sel.getFirstElement();
+				Object object = sel.getFirstElement();
 				if (object instanceof IScriptFolder) {
-					IScriptFolder pkgFragment= (IScriptFolder)object;
-					LogicalPackage logicalPkg= fprovider.findLogicalPackage(pkgFragment);
+					IScriptFolder pkgFragment = (IScriptFolder) object;
+					LogicalPackage logicalPkg = fprovider
+							.findLogicalPackage(pkgFragment);
 					if (logicalPkg != null)
-						object= logicalPkg;
+						object = logicalPkg;
 					else
-						object= pkgFragment;
+						object = pkgFragment;
 				}
 				if (object != null)
-					fViewer.setSelection(new StructuredSelection(object), reveal);
+					fViewer.setSelection(new StructuredSelection(object),
+							reveal);
 				else
 					fViewer.setSelection(StructuredSelection.EMPTY, reveal);
 			}
@@ -142,13 +140,15 @@
 	}
 
 	@Override
-	public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
+	public void addPostSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fPostSelectionChangedListenerList.add(listener);
 		fViewer.addPostSelectionChangedListener(listener);
 	}
 
 	@Override
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+	public void addSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fSelectionChangedListenerList.add(listener);
 		fViewer.addSelectionChangedListener(listener);
 	}
@@ -172,13 +172,15 @@
 	}
 
 	@Override
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fViewer.removeSelectionChangedListener(listener);
 		fSelectionChangedListenerList.remove(listener);
 	}
 
 	@Override
-	public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
+	public void removePostSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fViewer.removePostSelectionChangedListener(listener);
 		fPostSelectionChangedListenerList.remove(listener);
 	}
@@ -352,40 +354,39 @@
 		return fViewer.toString();
 	}
 
-	public void setViewerInput(Object input){
+	public void setViewerInput(Object input) {
 		fViewer.setInput(input);
 	}
 
 	// need to provide implementation for abstract methods
 	@Override
 	protected Widget doFindInputItem(Object element) {
-		return ((IPackagesViewViewer)fViewer).doFindInputItem(element);
+		return ((IPackagesViewViewer) fViewer).doFindInputItem(element);
 	}
 
 	@Override
 	protected Widget doFindItem(Object element) {
-		return ((IPackagesViewViewer)fViewer).doFindItem(element);
+		return ((IPackagesViewViewer) fViewer).doFindItem(element);
 	}
 
 	@Override
 	protected void doUpdateItem(Widget item, Object element, boolean fullMap) {
-		((IPackagesViewViewer)fViewer).doUpdateItem(item, element, fullMap);
+		((IPackagesViewViewer) fViewer).doUpdateItem(item, element, fullMap);
 	}
 
 	@Override
 	protected List getSelectionFromWidget() {
-		return ((IPackagesViewViewer)fViewer).getSelectionFromWidget();
+		return ((IPackagesViewViewer) fViewer).getSelectionFromWidget();
 	}
 
 	@Override
 	protected void internalRefresh(Object element) {
-		((IPackagesViewViewer)fViewer).internalRefresh(element);
+		((IPackagesViewViewer) fViewer).internalRefresh(element);
 	}
 
 	@Override
 	protected void setSelectionToWidget(List l, boolean reveal) {
-		((IPackagesViewViewer)fViewer).setSelectionToWidget(l, reveal);
+		((IPackagesViewViewer) fViewer).setSelectionToWidget(l, reveal);
 	}
 
-
 }
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ext/ExtendedClassesView.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ext/ExtendedClassesView.java
index 903937e..dae730d 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ext/ExtendedClassesView.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ext/ExtendedClassesView.java
@@ -66,12 +66,12 @@
 import org.eclipse.ui.contexts.IContextService;
 import org.eclipse.ui.part.ViewPart;
 
-public class ExtendedClassesView extends ViewPart implements
-		IViewPartInputProvider, ISelectionListener, ISelectionProvider,
-		IExecutableExtension, IMenuListener {
+public class ExtendedClassesView extends ViewPart
+		implements IViewPartInputProvider, ISelectionListener,
+		ISelectionProvider, IExecutableExtension, IMenuListener {
 
-	private final class IElementChangedListenerImplementation implements
-			IElementChangedListener {
+	private final class IElementChangedListenerImplementation
+			implements IElementChangedListener {
 		@Override
 		public void elementChanged(ElementChangedEvent event) {
 			// We need to update
@@ -79,7 +79,8 @@
 			IModelElementDelta delta = event.getDelta();
 			if (browsingPane != null && !browsingPane.isDisposed()
 					&& typesChanged(delta)) {
-				browsingPane.getDisplay().asyncExec(() -> browsingPane.refresh());
+				browsingPane.getDisplay()
+						.asyncExec(() -> browsingPane.refresh());
 			}
 			// }
 		}
@@ -87,7 +88,8 @@
 		private boolean typesChanged(IModelElementDelta delta) {
 			IModelElementDelta[] affectedChildren = delta.getAffectedChildren();
 			for (int i = 0; i < affectedChildren.length; i++) {
-				if (affectedChildren[i].getElement().getElementType() == IModelElement.TYPE) {
+				if (affectedChildren[i].getElement()
+						.getElementType() == IModelElement.TYPE) {
 					return true;
 				} else {
 					if (typesChanged(affectedChildren[i])) {
@@ -116,8 +118,8 @@
 
 	public ExtendedClassesView() {
 		elementChangedListenerImplementation = new IElementChangedListenerImplementation();
-		DLTKCore
-				.addElementChangedListener(elementChangedListenerImplementation);
+		DLTKCore.addElementChangedListener(
+				elementChangedListenerImplementation);
 	}
 
 	@Override
@@ -130,8 +132,8 @@
 			}
 		}
 		super.dispose();
-		DLTKCore
-				.removeElementChangedListener(elementChangedListenerImplementation);
+		DLTKCore.removeElementChangedListener(
+				elementChangedListenerImplementation);
 	}
 
 	//
@@ -141,12 +143,10 @@
 		browsingPane = new MultiSelectionListViewer(parent, SWT.NONE) {
 			@Override
 			public void elementSelectionChanged(ISelection selection) {
-				Object[] listeners = listenerList.getListeners();
 				SelectionChangedEvent event = new SelectionChangedEvent(
 						ExtendedClassesView.this, convertSelection(selection));
-				for (int i = 0; i < listeners.length; i++) {
-					((ISelectionChangedListener) (listeners[i]))
-							.selectionChanged(event);
+				for (ISelectionChangedListener listener : listenerList) {
+					listener.selectionChanged(event);
 				}
 			}
 
@@ -212,17 +212,17 @@
 				SearchEngine.createWorkspaceScope(this.fToolkit), parent,
 				this.fToolkit));
 
-		browsingPane.setLabelProvider(new ExtendedClasesLabelProvider(
-				DLTKUILanguageManager.createLabelProvider(this.fToolkit
-						.getNatureId())));
+		browsingPane.setLabelProvider(
+				new ExtendedClasesLabelProvider(DLTKUILanguageManager
+						.createLabelProvider(this.fToolkit.getNatureId())));
 
 		getSite().setSelectionProvider(this);
 		getViewSite().getPage().addPostSelectionListener(this);
 		getViewSite().getPage().addPartListener(fPartListener);
 
 		createActions();
-		IContextService ctxService = getSite().getService(
-				IContextService.class);
+		IContextService ctxService = getSite()
+				.getService(IContextService.class);
 		if (ctxService != null) {
 			fContextActivation = ctxService
 					.activateContext(DLTKUIPlugin.CONTEXT_VIEWS);
@@ -299,8 +299,8 @@
 
 	protected boolean needsToProcessSelectionChanged(IWorkbenchPart part,
 			ISelection selection) {
-		if (!fProcessSelectionEvents || part == this
-				|| isSearchResultView(part) || part instanceof AbstractInfoView) {
+		if (!fProcessSelectionEvents || part == this || isSearchResultView(part)
+				|| part instanceof AbstractInfoView) {
 			if (part == this)
 				fPreviousSelectionProvider = part;
 			return false;
@@ -334,8 +334,7 @@
 		}
 		Object currentInput = browsingPane.getInput();
 		List elements = new ArrayList();
-		if (currentInput == null
-				|| !currentInput.equals(firstElement))
+		if (currentInput == null || !currentInput.equals(firstElement))
 			if (iter.hasNext() && selection instanceof StructuredSelection) {
 				// multi-selection and view is empty
 				return ((StructuredSelection) selection).toList();
@@ -388,7 +387,8 @@
 		fPreviousSelectedElement = selectedElement;
 
 		if (selectedElement != null
-				&& (selectedElement instanceof IScriptProject || selectedElement instanceof IProjectFragment)) {
+				&& (selectedElement instanceof IScriptProject
+						|| selectedElement instanceof IProjectFragment)) {
 			browsingPane.setInput(selectedElement);
 		}
 
@@ -452,12 +452,13 @@
 		}
 	};
 
-	ListenerList listenerList = new ListenerList();
+	ListenerList<ISelectionChangedListener> listenerList = new ListenerList<>();
 	private IDLTKLanguageToolkit fToolkit;
 	private IElementChangedListenerImplementation elementChangedListenerImplementation;
 
 	@Override
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+	public void addSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		listenerList.add(listener);
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentContainer.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentContainer.java
index 1a5aa85..03607d5 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentContainer.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentContainer.java
@@ -57,8 +57,8 @@
 		}
 	}
 
-	private static class EnvironmentComparator implements
-			Comparator<IEnvironment> {
+	private static class EnvironmentComparator
+			implements Comparator<IEnvironment> {
 
 		@Override
 		public int compare(final IEnvironment e1, final IEnvironment e2) {
@@ -90,7 +90,8 @@
 					synchronized (environments) {
 						initEnvironments();
 					}
-					Display.getDefault().asyncExec(() -> fireChangeNotifications());
+					Display.getDefault()
+							.asyncExec(() -> fireChangeNotifications());
 				}
 
 			};
@@ -162,7 +163,7 @@
 		initialized = false;
 	}
 
-	private final ListenerList changeListeners = new ListenerList();
+	private final ListenerList<Runnable> changeListeners = new ListenerList<>();
 
 	/**
 	 * Registers the specified change listener to be called when available
@@ -176,9 +177,8 @@
 	}
 
 	protected void fireChangeNotifications() {
-		Object[] listeners = changeListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			((Runnable) listeners[i]).run();
+		for (Runnable listener : changeListeners) {
+			listener.run();
 		}
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentPathBlock.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentPathBlock.java
index b272967..0981ffe 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentPathBlock.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/environment/EnvironmentPathBlock.java
@@ -40,7 +40,7 @@
 	private Table pathTable;
 	private TableViewer pathViewer;
 
-	private ListenerList listeners = new ListenerList();
+	private ListenerList<IEnvironmentPathBlockListener> listeners = new ListenerList<>();
 
 	/**
 	 * Environment to path association.
@@ -56,8 +56,8 @@
 		this.useFolders = useFolders;
 	}
 
-	protected class PathLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
+	protected class PathLabelProvider extends LabelProvider
+			implements ITableLabelProvider {
 
 		private final int pathColumn;
 
@@ -102,8 +102,8 @@
 			IEnvironment[] environments) {
 		PixelConverter conv = new PixelConverter(parent);
 
-		pathTable = new Table(parent, SWT.SINGLE | SWT.BORDER
-				| SWT.FULL_SELECTION);
+		pathTable = new Table(parent,
+				SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
 		pathTable.setHeaderVisible(true);
 		pathTable.setLinesVisible(true);
 		// GridData tableData = new GridData(SWT.FILL, SWT.DEFAULT, true,
@@ -153,13 +153,14 @@
 		initPathColumn(viewer, conv);
 	}
 
-	protected void initEnvironmentColumn(TableViewer viewer, PixelConverter conv) {
-		TableViewerColumn environmentsColumn = new TableViewerColumn(
-				pathViewer, SWT.NULL);
-		environmentsColumn.getColumn().setText(
-				Messages.EnvironmentPathBlock_environment);
-		environmentsColumn.getColumn().setWidth(
-				conv.convertWidthInCharsToPixels(30));
+	protected void initEnvironmentColumn(TableViewer viewer,
+			PixelConverter conv) {
+		TableViewerColumn environmentsColumn = new TableViewerColumn(pathViewer,
+				SWT.NULL);
+		environmentsColumn.getColumn()
+				.setText(Messages.EnvironmentPathBlock_environment);
+		environmentsColumn.getColumn()
+				.setWidth(conv.convertWidthInCharsToPixels(30));
 	}
 
 	protected void initPathColumn(TableViewer viewer, PixelConverter conv) {
@@ -198,8 +199,8 @@
 						Font font = new Font(compositeParent.getDisplay(),
 								"arial", 6, 0); //$NON-NLS-1$
 						browse.setFont(font);
-						browse.setLayoutData(new GridData(SWT.DEFAULT,
-								SWT.FILL, false, true));
+						browse.setLayoutData(new GridData(SWT.DEFAULT, SWT.FILL,
+								false, true));
 						browse.addSelectionListener(new SelectionAdapter() {
 							@Override
 							public void widgetSelected(SelectionEvent e) {
@@ -271,8 +272,7 @@
 		if (selection instanceof IStructuredSelection) {
 			IStructuredSelection sel = (IStructuredSelection) selection;
 			IEnvironment environment = (IEnvironment) sel.getFirstElement();
-			IEnvironmentUI ui = environment
-					.getAdapter(IEnvironmentUI.class);
+			IEnvironmentUI ui = environment.getAdapter(IEnvironmentUI.class);
 			String file = null;
 			if (!useFolders) {
 				file = ui.selectFile(this.pathTable.getShell(),
@@ -305,9 +305,7 @@
 	}
 
 	protected void fireValueChanged() {
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			final IEnvironmentPathBlockListener listener = (IEnvironmentPathBlockListener) array[i];
+		for (final IEnvironmentPathBlockListener listener : listeners) {
 			SafeRunnable.run(new SafeRunnable() {
 				@Override
 				public void run() {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/formatter/internal/FormatterControlManager.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/formatter/internal/FormatterControlManager.java
index 2c434fa..845c24c 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/formatter/internal/FormatterControlManager.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/formatter/internal/FormatterControlManager.java
@@ -31,8 +31,8 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
-public class FormatterControlManager implements IFormatterControlManager,
-		IStatusChangeListener {
+public class FormatterControlManager
+		implements IFormatterControlManager, IStatusChangeListener {
 
 	private final IPreferenceDelegate<String> delegate;
 	private final ControlBindingManager<String> bindingManager;
@@ -63,8 +63,8 @@
 	public Combo createCombo(Composite parent, String key, String label,
 			String[] items) {
 		final Label labelControl = SWTFactory.createLabel(parent, label, 1);
-		Combo combo = SWTFactory.createCombo(parent,
-				SWT.READ_ONLY | SWT.BORDER, 1, items);
+		Combo combo = SWTFactory.createCombo(parent, SWT.READ_ONLY | SWT.BORDER,
+				1, items);
 		bindingManager.bindControl(combo, key);
 		registerAssociatedLabel(combo, labelControl);
 		return combo;
@@ -74,8 +74,8 @@
 	public Combo createCombo(Composite parent, String key, String label,
 			String[] itemValues, String[] itemLabels) {
 		final Label labelControl = SWTFactory.createLabel(parent, label, 1);
-		Combo combo = SWTFactory.createCombo(parent,
-				SWT.READ_ONLY | SWT.BORDER, 1, itemLabels);
+		Combo combo = SWTFactory.createCombo(parent, SWT.READ_ONLY | SWT.BORDER,
+				1, itemLabels);
 		bindingManager.bindControl(combo, key, itemValues);
 		registerAssociatedLabel(combo, labelControl);
 		return combo;
@@ -111,7 +111,7 @@
 		}
 	}
 
-	private final ListenerList initListeners = new ListenerList();
+	private final ListenerList<IInitializeListener> initListeners = new ListenerList<>();
 
 	@Override
 	public void addInitializeListener(IInitializeListener listener) {
@@ -129,9 +129,8 @@
 		initialization = true;
 		try {
 			bindingManager.initialize();
-			final Object[] listeners = initListeners.getListeners();
-			for (int i = 0; i < listeners.length; ++i) {
-				((IInitializeListener) listeners[i]).initialize();
+			for (IInitializeListener listener : initListeners) {
+				listener.initialize();
 			}
 		} finally {
 			initialization = false;
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java
index cb905ce..9a9d08e 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -81,8 +81,8 @@
 	/**
 	 * Preference key for the preference whether to show a dialog when the SWT
 	 * Browser widget is not available.
-	 * 
-	 * 
+	 *
+	 *
 	 */
 	private static final String DO_NOT_WARN_PREFERENCE_KEY = "AbstractDocumentationView.error.doNotWarn"; //$NON-NLS-1$
 	// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=73558
@@ -122,7 +122,7 @@
 
 		/**
 		 * Creates the action.
-		 * 
+		 *
 		 * @param control
 		 *            the widget
 		 * @param selectionProvider
@@ -164,14 +164,14 @@
 	 */
 	private static class SelectionProvider implements ISelectionProvider {
 		/** The selection changed listeners. */
-		private ListenerList fListeners = new ListenerList(
+		private ListenerList<ISelectionChangedListener> fListeners = new ListenerList<>(
 				ListenerList.IDENTITY);
 		/** The widget. */
 		private Control fControl;
 
 		/**
 		 * Creates a new selection provider.
-		 * 
+		 *
 		 * @param control
 		 *            the widget
 		 */
@@ -204,10 +204,8 @@
 			ISelection selection = getSelection();
 			SelectionChangedEvent event = new SelectionChangedEvent(this,
 					selection);
-			Object[] selectionChangedListeners = fListeners.getListeners();
-			for (int i = 0; i < selectionChangedListeners.length; i++)
-				((ISelectionChangedListener) selectionChangedListeners[i])
-						.selectionChanged(event);
+			for (ISelectionChangedListener listener : fListeners)
+				listener.selectionChanged(event);
 		}
 
 		@Override
@@ -219,8 +217,8 @@
 		@Override
 		public ISelection getSelection() {
 			if (fControl instanceof StyledText) {
-				IDocument document = new Document(((StyledText) fControl)
-						.getSelectionText());
+				IDocument document = new Document(
+						((StyledText) fControl).getSelectionText());
 				return new TextSelection(document, 0, document.getLength());
 			} else {
 				// FIXME: see
@@ -264,8 +262,8 @@
 						.openError(parent.getShell(), title, message,
 								toggleMessage, false, null, null);
 				if (dialog.getReturnCode() == Window.OK)
-					store.setValue(DO_NOT_WARN_PREFERENCE_KEY, dialog
-							.getToggleState());
+					store.setValue(DO_NOT_WARN_PREFERENCE_KEY,
+							dialog.getToggleState());
 			}
 			fIsUsingBrowserWidget = false;
 		}
@@ -295,8 +293,8 @@
 			return;
 		try {
 			styleSheetURL = FileLocator.toFileURL(styleSheetURL);
-			BufferedReader reader = new BufferedReader(new InputStreamReader(
-					styleSheetURL.openStream()));
+			BufferedReader reader = new BufferedReader(
+					new InputStreamReader(styleSheetURL.openStream()));
 			StringBuffer buffer = new StringBuffer(200);
 			String line = reader.readLine();
 			while (line != null) {
@@ -350,8 +348,7 @@
 		if (getInput() == null) {
 			StringBuffer buffer = new StringBuffer();
 			HTMLPrinter.insertPageProlog(buffer, 0, fBackgroundColorRGB,
-					fForegroundColorRGB,
-					fgStyleSheet);
+					fForegroundColorRGB, fgStyleSheet);
 			setInput(buffer.toString());
 		} else {
 			setInput(computeInput(getInput()));
@@ -405,7 +402,8 @@
 		String javadocHtml = (String) input;
 		if (fIsUsingBrowserWidget) {
 			if (javadocHtml != null && javadocHtml.length() > 0) {
-				boolean RTL = (getSite().getShell().getStyle() & SWT.RIGHT_TO_LEFT) != 0;
+				boolean RTL = (getSite().getShell().getStyle()
+						& SWT.RIGHT_TO_LEFT) != 0;
 				if (RTL) {
 					StringBuffer buffer = new StringBuffer(javadocHtml);
 					HTMLPrinter.insertStyles(buffer,
@@ -432,7 +430,7 @@
 
 	/**
 	 * Returns the doc in HTML format.
-	 * 
+	 *
 	 * @param result
 	 *            the Script elements for which to get the Javadoc
 	 * @return a string with the Javadoc in HTML format.
@@ -459,7 +457,7 @@
 
 	/**
 	 * Returns the Javadoc in HTML format.
-	 * 
+	 *
 	 * @param result
 	 *            the Script elements for which to get the Javadoc
 	 * @return a string with the Javadoc in HTML format.
@@ -469,8 +467,8 @@
 		final List<String> nodocs = new ArrayList<String>();
 		for (int i = 0; i < result.length; i++) {
 			final Object member = result[i];
-			Reader reader = ScriptDocumentationAccess.getHTMLContentReader(
-					getNature(), member, true, true);
+			Reader reader = ScriptDocumentationAccess
+					.getHTMLContentReader(getNature(), member, true, true);
 			if (reader != null) {
 				buffer.append("<b>"); //$NON-NLS-1$
 				buffer.append(getInfoText(member));
@@ -478,11 +476,9 @@
 				HTMLPrinter.addParagraph(buffer, reader);
 			} else {
 				if (member instanceof IModelElement) {
-					nodocs.add(ScriptElementLabels.getDefault()
-							.getElementLabel(
-									(IModelElement) member,
-									LABEL_FLAGS
-											| ScriptElementLabels.APPEND_FILE));
+					nodocs.add(ScriptElementLabels.getDefault().getElementLabel(
+							(IModelElement) member,
+							LABEL_FLAGS | ScriptElementLabels.APPEND_FILE));
 				} else {
 					// TODO
 				}
@@ -503,7 +499,7 @@
 
 	/**
 	 * Returns the Javadoc in HTML format.
-	 * 
+	 *
 	 * @param result
 	 *            the Script elements for which to get the Javadoc
 	 * @return a string with the Javadoc in HTML format.
@@ -524,7 +520,7 @@
 
 	/**
 	 * Returns the Javadoc in HTML format.
-	 * 
+	 *
 	 * @param result
 	 *            the Script elements for which to get the Javadoc
 	 * @return a string with the Javadoc in HTML format.
@@ -534,8 +530,8 @@
 		if (curr instanceof IMember) {
 			IMember member = (IMember) curr;
 			// HTMLPrinter.addSmallHeader(buffer, getInfoText(member));
-			Reader reader = ScriptDocumentationAccess.getHTMLContentReader(
-					getNature(), member, true, true);
+			Reader reader = ScriptDocumentationAccess
+					.getHTMLContentReader(getNature(), member, true, true);
 			if (reader != null) {
 				HTMLPrinter.addParagraph(buffer, reader);
 			} else {
@@ -550,8 +546,7 @@
 	private String addPrologeEpilog(StringBuffer buffer) {
 		if (buffer.length() > 0) {
 			HTMLPrinter.insertPageProlog(buffer, 0, fBackgroundColorRGB,
-					fForegroundColorRGB,
-					fgStyleSheet);
+					fForegroundColorRGB, fgStyleSheet);
 			HTMLPrinter.addPageEpilog(buffer);
 			return buffer.toString();
 		}
@@ -561,7 +556,7 @@
 	/**
 	 * The method is overridden to compare {@link ScriptEditor} nature with the
 	 * nature of this view.
-	 * 
+	 *
 	 * @see org.eclipse.dltk.ui.infoviews.AbstractInfoView#isValidWorkbenchPart(org.eclipse.ui.IWorkbenchPart)
 	 */
 	@Override
@@ -586,15 +581,15 @@
 
 	/**
 	 * Gets the label for the given member.
-	 * 
+	 *
 	 * @param member
 	 *            the Script member
 	 * @return a string containing the member's label
 	 */
 	private String getInfoText(Object member) {
 		if (member instanceof IModelElement) {
-			return ScriptElementLabels.getDefault().getElementLabel(
-					(IModelElement) member, LABEL_FLAGS);
+			return ScriptElementLabels.getDefault()
+					.getElementLabel((IModelElement) member, LABEL_FLAGS);
 		} else {
 			// TODO
 			return null;
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ProblemMarkerManager.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ProblemMarkerManager.java
index 9928058..d20b148 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ProblemMarkerManager.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ProblemMarkerManager.java
@@ -30,28 +30,31 @@
 import org.eclipse.swt.widgets.Display;
 
 /**
- * Listens to resource deltas and filters for marker changes of type IMarker.PROBLEM
- * Viewers showing error ticks should register as listener to
+ * Listens to resource deltas and filters for marker changes of type
+ * IMarker.PROBLEM Viewers showing error ticks should register as listener to
  * this type.
  */
-public class ProblemMarkerManager implements IResourceChangeListener, IAnnotationModelListener , IAnnotationModelListenerExtension {
+public class ProblemMarkerManager implements IResourceChangeListener,
+		IAnnotationModelListener, IAnnotationModelListenerExtension {
 
 	/**
-	 * Visitors used to look if the element change delta contains a marker change.
+	 * Visitors used to look if the element change delta contains a marker
+	 * change.
 	 */
 	private static class ProjectErrorVisitor implements IResourceDeltaVisitor {
 
 		private HashSet fChangedElements;
 
 		public ProjectErrorVisitor(HashSet changedElements) {
-			fChangedElements= changedElements;
+			fChangedElements = changedElements;
 		}
 
 		@Override
 		public boolean visit(IResourceDelta delta) throws CoreException {
-			IResource res= delta.getResource();
-			if (res instanceof IProject && delta.getKind() == IResourceDelta.CHANGED) {
-				IProject project= (IProject) res;
+			IResource res = delta.getResource();
+			if (res instanceof IProject
+					&& delta.getKind() == IResourceDelta.CHANGED) {
+				IProject project = (IProject) res;
 				if (!project.isAccessible()) {
 					// only track open Java projects
 					return false;
@@ -62,25 +65,31 @@
 		}
 
 		private void checkInvalidate(IResourceDelta delta, IResource resource) {
-			int kind= delta.getKind();
-			if (kind == IResourceDelta.REMOVED || kind == IResourceDelta.ADDED || (kind == IResourceDelta.CHANGED && isErrorDelta(delta))) {
+			int kind = delta.getKind();
+			if (kind == IResourceDelta.REMOVED || kind == IResourceDelta.ADDED
+					|| (kind == IResourceDelta.CHANGED
+							&& isErrorDelta(delta))) {
 				// invalidate the resource and all parents
-				while (resource.getType() != IResource.ROOT && fChangedElements.add(resource)) {
-					resource= resource.getParent();
+				while (resource.getType() != IResource.ROOT
+						&& fChangedElements.add(resource)) {
+					resource = resource.getParent();
 				}
 			}
 		}
 
 		private boolean isErrorDelta(IResourceDelta delta) {
 			if ((delta.getFlags() & IResourceDelta.MARKERS) != 0) {
-				IMarkerDelta[] markerDeltas= delta.getMarkerDeltas();
-				for (int i= 0; i < markerDeltas.length; i++) {
+				IMarkerDelta[] markerDeltas = delta.getMarkerDeltas();
+				for (int i = 0; i < markerDeltas.length; i++) {
 					if (markerDeltas[i].isSubtypeOf(IMarker.PROBLEM)) {
-						int kind= markerDeltas[i].getKind();
-						if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED)
+						int kind = markerDeltas[i].getKind();
+						if (kind == IResourceDelta.ADDED
+								|| kind == IResourceDelta.REMOVED)
 							return true;
-						int severity= markerDeltas[i].getAttribute(IMarker.SEVERITY, -1);
-						int newSeverity= markerDeltas[i].getMarker().getAttribute(IMarker.SEVERITY, -1);
+						int severity = markerDeltas[i]
+								.getAttribute(IMarker.SEVERITY, -1);
+						int newSeverity = markerDeltas[i].getMarker()
+								.getAttribute(IMarker.SEVERITY, -1);
 						if (newSeverity != severity)
 							return true;
 					}
@@ -90,11 +99,10 @@
 		}
 	}
 
-	private ListenerList fListeners;
-
+	private ListenerList<IProblemChangedListener> fListeners;
 
 	public ProblemMarkerManager() {
-		fListeners= new ListenerList();
+		fListeners = new ListenerList<>();
 	}
 
 	@Override
@@ -102,7 +110,7 @@
 		HashSet<IResource> changedElements = new HashSet<IResource>();
 
 		try {
-			IResourceDelta delta= event.getDelta();
+			IResourceDelta delta = event.getDelta();
 			if (delta != null)
 				delta.accept(new ProjectErrorVisitor(changedElements));
 		} catch (CoreException e) {
@@ -124,22 +132,23 @@
 	@Override
 	public void modelChanged(AnnotationModelEvent event) {
 		if (event instanceof SourceModuleAnnotationModelEvent) {
-			SourceModuleAnnotationModelEvent cuEvent= (SourceModuleAnnotationModelEvent) event;
+			SourceModuleAnnotationModelEvent cuEvent = (SourceModuleAnnotationModelEvent) event;
 			if (cuEvent.includesProblemMarkerAnnotationChanges()) {
-				IResource[] changes= new IResource[] { cuEvent.getUnderlyingResource() };
+				IResource[] changes = new IResource[] {
+						cuEvent.getUnderlyingResource() };
 				fireChanges(changes, false);
 			}
 		}
 	}
 
-
 	/**
 	 * Adds a listener for problem marker changes.
 	 */
 	public void addListener(IProblemChangedListener listener) {
 		if (fListeners.isEmpty()) {
 			DLTKUIPlugin.getWorkspace().addResourceChangeListener(this);
-			DLTKUIPlugin.getDefault().getSourceModuleDocumentProvider().addGlobalAnnotationModelListener(this);
+			DLTKUIPlugin.getDefault().getSourceModuleDocumentProvider()
+					.addGlobalAnnotationModelListener(this);
 		}
 		fListeners.add(listener);
 	}
@@ -151,17 +160,17 @@
 		fListeners.remove(listener);
 		if (fListeners.isEmpty()) {
 			DLTKUIPlugin.getWorkspace().removeResourceChangeListener(this);
-			DLTKUIPlugin.getDefault().getSourceModuleDocumentProvider().removeGlobalAnnotationModelListener(this);
+			DLTKUIPlugin.getDefault().getSourceModuleDocumentProvider()
+					.removeGlobalAnnotationModelListener(this);
 		}
 	}
 
-	private void fireChanges(final IResource[] changes, final boolean isMarkerChange) {
-		Display display= SWTUtil.getStandardDisplay();
+	private void fireChanges(final IResource[] changes,
+			final boolean isMarkerChange) {
+		Display display = SWTUtil.getStandardDisplay();
 		if (display != null && !display.isDisposed()) {
 			display.asyncExec(() -> {
-				Object[] listeners= fListeners.getListeners();
-				for (int i= 0; i < listeners.length; i++) {
-					IProblemChangedListener curr= (IProblemChangedListener) listeners[i];
+				for (IProblemChangedListener curr : fListeners) {
 					curr.problemsChanged(changes, isMarkerChange);
 				}
 			});
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
index 4748894..f5c0c28 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
@@ -36,9 +36,11 @@
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.Point;
 
-public class ScriptUILabelProvider implements ILabelProvider, IColorProvider,  IStyledLabelProvider {
+public class ScriptUILabelProvider
+		implements ILabelProvider, IColorProvider, IStyledLabelProvider {
 
-	protected ListenerList fListeners = new ListenerList(1);
+	protected ListenerList<ILabelProviderListener> fListeners = new ListenerList<>(
+			1);
 
 	protected ScriptElementImageProvider fImageLabelProvider;
 
@@ -123,9 +125,8 @@
 					if (ScriptElementImageProvider.useSmallSize(flags)) {
 						result = image;
 					} else {
-						result = getLocalRegistry().get(
-								new BigImageDescriptor(image,
-										ScriptElementImageProvider.BIG_SIZE));
+						result = getLocalRegistry().get(new BigImageDescriptor(
+								image, ScriptElementImageProvider.BIG_SIZE));
 					}
 					break;
 				}
@@ -134,16 +135,15 @@
 		if (result == null) {
 			result = fImageLabelProvider.getImageLabel(element, flags);
 		}
-		if (result == null
-				&& (element instanceof IStorage || element instanceof ISourceModule)) {
+		if (result == null && (element instanceof IStorage
+				|| element instanceof ISourceModule)) {
 			result = fStorageLabelProvider.getImage(element);
 			// StorageLabelProvider always returns 16x16 images
 			// resize if this provider returns big icons
 			if (result != null
 					&& !ScriptElementImageProvider.useSmallSize(flags)) {
-				result = getLocalRegistry().get(
-						new BigImageDescriptor(result,
-								ScriptElementImageProvider.BIG_SIZE));
+				result = getLocalRegistry().get(new BigImageDescriptor(result,
+						ScriptElementImageProvider.BIG_SIZE));
 			}
 		}
 		return decorateImage(result, element);
@@ -292,10 +292,7 @@
 	protected void fireLabelProviderChanged(
 			final LabelProviderChangedEvent event) {
 
-		Object[] listeners = fListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ILabelProviderListener l = (ILabelProviderListener) listeners[i];
-
+		for (final ILabelProviderListener l : fListeners) {
 			SafeRunner.run(new SafeRunnable() {
 				@Override
 				public void run() {
@@ -342,7 +339,8 @@
 		if (providers != null) {
 			for (int i = 0; i < providers.length; i++) {
 				if (providers[i] instanceof IStyledLabelProvider) {
-					StyledString string = ((IStyledLabelProvider) providers[i]).getStyledText(element);
+					StyledString string = ((IStyledLabelProvider) providers[i])
+							.getStyledText(element);
 					if (string != null) {
 						result = string;
 						break;
@@ -357,7 +355,8 @@
 			}
 		}
 		if (result == null) {
-			result = new StyledString(ScriptElementLabels.getDefault().getTextLabel(element, evaluateTextFlags(element)));
+			result = new StyledString(ScriptElementLabels.getDefault()
+					.getTextLabel(element, evaluateTextFlags(element)));
 		}
 
 		if (result.length() == 0 && (element instanceof IStorage)) {
@@ -366,7 +365,8 @@
 
 		String decorated = decorateText(result.getString(), element);
 		if (decorated != null) {
-			return StyledCellLabelProvider.styleDecoratedString(decorated, StyledString.DECORATIONS_STYLER, result);
+			return StyledCellLabelProvider.styleDecoratedString(decorated,
+					StyledString.DECORATIONS_STYLER, result);
 		}
 		return result;
 	}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionListenerWithASTManager.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionListenerWithASTManager.java
index 3840932..7b980e9 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionListenerWithASTManager.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionListenerWithASTManager.java
@@ -55,7 +55,7 @@
 		private ISelectionListener fPostSelectionListener;
 		private ISelectionChangedListener fSelectionListener;
 		private Job fCurrentJob;
-		protected final ListenerList fAstListeners;
+		protected final ListenerList<ISelectionListenerWithAST> fAstListeners;
 		/**
 		 * Lock to avoid having more than one calculateAndInform job in
 		 * parallel. Only jobs may synchronize on this as otherwise deadlocks
@@ -66,7 +66,7 @@
 		public PartListenerGroup(ITextEditor editorPart) {
 			fPart = editorPart;
 			fCurrentJob = null;
-			fAstListeners = new ListenerList(ListenerList.IDENTITY);
+			fAstListeners = new ListenerList<>(ListenerList.IDENTITY);
 
 			fSelectionListener = event -> {
 				ISelection selection = event.getSelection();
@@ -131,8 +131,8 @@
 		 */
 		public void firePostSelectionChanged(final ITextSelection selection) {
 			cancelJob();
-			IModelElement input = EditorUtility.getEditorInputModelElement(
-					fPart, false);
+			IModelElement input = EditorUtility
+					.getEditorInputModelElement(fPart, false);
 			if (!(input instanceof ISourceModule)) {
 				return;
 			}
@@ -194,21 +194,20 @@
 			}
 		}
 
-		protected final IStatus calculateASTandInform(IProgressMonitor monitor) {
+		protected final IStatus calculateASTandInform(
+				IProgressMonitor monitor) {
 			if (monitor.isCanceled()) {
 				return Status.CANCEL_STATUS;
 			}
 			// create AST
 			try {
-				IModuleDeclaration astRoot = SourceParserUtil
-						.parse(input, null);
+				IModuleDeclaration astRoot = SourceParserUtil.parse(input,
+						null);
 
 				if (astRoot != null && !monitor.isCanceled()) {
-					Object[] listeners = owner.fAstListeners.getListeners();
-					for (int i = 0; i < listeners.length; i++) {
-						((ISelectionListenerWithAST) listeners[i])
-								.selectionChanged(owner.fPart, selection,
-										input, astRoot);
+					for (ISelectionListenerWithAST listener : owner.fAstListeners) {
+						listener.selectionChanged(owner.fPart, selection, input,
+								astRoot);
 						if (monitor.isCanceled()) {
 							return Status.CANCEL_STATUS;
 						}
@@ -236,7 +235,8 @@
 	 * @param listener
 	 *            The listener to register.
 	 */
-	public void addListener(ITextEditor part, ISelectionListenerWithAST listener) {
+	public void addListener(ITextEditor part,
+			ISelectionListenerWithAST listener) {
 		synchronized (this) {
 			PartListenerGroup partListener = fListenerGroups.get(part);
 			if (partListener == null) {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionProviderMediator.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionProviderMediator.java
index 70dffae..84b0fcb 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionProviderMediator.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/SelectionProviderMediator.java
@@ -22,30 +22,32 @@
 import org.eclipse.swt.widgets.Widget;
 
 /**
- * A selection provider for view parts with more that one viewer.
- * Tracks the focus of the viewers to provide the correct selection.
+ * A selection provider for view parts with more that one viewer. Tracks the
+ * focus of the viewers to provide the correct selection.
  */
 public class SelectionProviderMediator implements IPostSelectionProvider {
 
-	private class InternalListener implements ISelectionChangedListener, FocusListener {
+	private class InternalListener
+			implements ISelectionChangedListener, FocusListener {
 		@Override
 		public void selectionChanged(SelectionChangedEvent event) {
 			doSelectionChanged(event);
 		}
 
-	    @Override
+		@Override
 		public void focusGained(FocusEvent e) {
-	    	doFocusChanged(e.widget);
-	    }
+			doFocusChanged(e.widget);
+		}
 
-	    @Override
+		@Override
 		public void focusLost(FocusEvent e) {
-	    	// do not reset due to focus behavior on GTK
-	    	//fViewerInFocus= null;
-	    }
+			// do not reset due to focus behavior on GTK
+			// fViewerInFocus= null;
+		}
 	}
 
-	private class InternalPostSelectionListener implements ISelectionChangedListener {
+	private class InternalPostSelectionListener
+			implements ISelectionChangedListener {
 		@Override
 		public void selectionChanged(SelectionChangedEvent event) {
 			doPostSelectionChanged(event);
@@ -56,31 +58,35 @@
 	private StructuredViewer[] fViewers;
 
 	private StructuredViewer fViewerInFocus;
-	private ListenerList fSelectionChangedListeners;
-	private ListenerList fPostSelectionChangedListeners;
+	private ListenerList<ISelectionChangedListener> fSelectionChangedListeners;
+	private ListenerList<ISelectionChangedListener> fPostSelectionChangedListeners;
 
 	/**
-	 * @param viewers All viewers that can provide a selection
-	 * @param viewerInFocus the viewer currently in focus or <code>null</code>
+	 * @param viewers
+	 *            All viewers that can provide a selection
+	 * @param viewerInFocus
+	 *            the viewer currently in focus or <code>null</code>
 	 */
-	public SelectionProviderMediator(StructuredViewer[] viewers, StructuredViewer viewerInFocus) {
-		fViewers= viewers;
-		InternalListener listener= new InternalListener();
-		fSelectionChangedListeners= new ListenerList();
-		fPostSelectionChangedListeners= new ListenerList();
-		fViewerInFocus= viewerInFocus;
+	public SelectionProviderMediator(StructuredViewer[] viewers,
+			StructuredViewer viewerInFocus) {
+		fViewers = viewers;
+		InternalListener listener = new InternalListener();
+		fSelectionChangedListeners = new ListenerList<>();
+		fPostSelectionChangedListeners = new ListenerList<>();
+		fViewerInFocus = viewerInFocus;
 
-		for (int i= 0; i < fViewers.length; i++) {
-			StructuredViewer viewer= fViewers[i];
+		for (int i = 0; i < fViewers.length; i++) {
+			StructuredViewer viewer = fViewers[i];
 			viewer.addSelectionChangedListener(listener);
-			viewer.addPostSelectionChangedListener(new InternalPostSelectionListener());
-			Control control= viewer.getControl();
+			viewer.addPostSelectionChangedListener(
+					new InternalPostSelectionListener());
+			Control control = viewer.getControl();
 			control.addFocusListener(listener);
 		}
 	}
 
 	private void doFocusChanged(Widget control) {
-		for (int i= 0; i < fViewers.length; i++) {
+		for (int i = 0; i < fViewers.length; i++) {
 			if (fViewers[i].getControl() == control) {
 				propagateFocusChanged(fViewers[i]);
 				return;
@@ -89,14 +95,14 @@
 	}
 
 	final void doPostSelectionChanged(SelectionChangedEvent event) {
-		ISelectionProvider provider= event.getSelectionProvider();
+		ISelectionProvider provider = event.getSelectionProvider();
 		if (provider == fViewerInFocus) {
 			firePostSelectionChanged();
 		}
 	}
 
 	final void doSelectionChanged(SelectionChangedEvent event) {
-		ISelectionProvider provider= event.getSelectionProvider();
+		ISelectionProvider provider = event.getSelectionProvider();
 		if (provider == fViewerInFocus) {
 			fireSelectionChanged();
 		}
@@ -104,7 +110,7 @@
 
 	final void propagateFocusChanged(StructuredViewer viewer) {
 		if (viewer != fViewerInFocus) { // OK to compare by identity
-			fViewerInFocus= viewer;
+			fViewerInFocus = viewer;
 			fireSelectionChanged();
 			firePostSelectionChanged();
 		}
@@ -112,11 +118,10 @@
 
 	private void fireSelectionChanged() {
 		if (fSelectionChangedListeners != null) {
-			SelectionChangedEvent event= new SelectionChangedEvent(this, getSelection());
+			SelectionChangedEvent event = new SelectionChangedEvent(this,
+					getSelection());
 
-			Object[] listeners= fSelectionChangedListeners.getListeners();
-			for (int i= 0; i < listeners.length; i++) {
-				ISelectionChangedListener listener= (ISelectionChangedListener) listeners[i];
+			for (ISelectionChangedListener listener : fSelectionChangedListeners) {
 				listener.selectionChanged(event);
 			}
 		}
@@ -124,34 +129,36 @@
 
 	private void firePostSelectionChanged() {
 		if (fPostSelectionChangedListeners != null) {
-			SelectionChangedEvent event= new SelectionChangedEvent(this, getSelection());
+			SelectionChangedEvent event = new SelectionChangedEvent(this,
+					getSelection());
 
-			Object[] listeners= fPostSelectionChangedListeners.getListeners();
-			for (int i= 0; i < listeners.length; i++) {
-				ISelectionChangedListener listener= (ISelectionChangedListener) listeners[i];
+			for (ISelectionChangedListener listener : fPostSelectionChangedListeners) {
 				listener.selectionChanged(event);
 			}
 		}
 	}
 
 	@Override
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+	public void addSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fSelectionChangedListeners.add(listener);
 	}
 
 	@Override
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fSelectionChangedListeners.remove(listener);
 	}
 
 	@Override
-	public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
+	public void addPostSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fPostSelectionChangedListeners.add(listener);
 	}
 
-
 	@Override
-	public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
+	public void removePostSelectionChangedListener(
+			ISelectionChangedListener listener) {
 		fPostSelectionChangedListeners.remove(listener);
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/wizards/NewSourceModuleWizard.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/wizards/NewSourceModuleWizard.java
index b418362..8e95505 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/wizards/NewSourceModuleWizard.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/wizards/NewSourceModuleWizard.java
@@ -35,11 +35,11 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.PartInitException;
 
-public abstract class NewSourceModuleWizard extends NewElementWizard implements
-		ISourceModuleWizard {
+public abstract class NewSourceModuleWizard extends NewElementWizard
+		implements ISourceModuleWizard {
 
-	static class WizardExtensionManager extends
-			LazyExtensionManager<ISourceModuleWizardExtension> {
+	static class WizardExtensionManager
+			extends LazyExtensionManager<ISourceModuleWizardExtension> {
 
 		static final String EXTENSION_POINT = DLTKUIPlugin.PLUGIN_ID
 				+ ".sourceModuleWizardExtension"; //$NON-NLS-1$
@@ -85,8 +85,8 @@
 	}
 
 	private void createExtensions() {
-		final WizardExtensionManager manager = new WizardExtensionManager(page
-				.getRequiredNature());
+		final WizardExtensionManager manager = new WizardExtensionManager(
+				page.getRequiredNature());
 		for (Descriptor<ISourceModuleWizardExtension> descriptor : manager
 				.getDescriptors()) {
 			final ISourceModuleWizardExtension extension = descriptor.get();
@@ -246,7 +246,7 @@
 		return !disabledModes.contains(mode);
 	}
 
-	private Map<String, ListenerList> listeners = null;
+	private Map<String, ListenerList<IFieldChangeListener>> listeners = null;
 
 	/**
 	 * @since 2.0
@@ -255,11 +255,11 @@
 	public void addFieldChangeListener(String field,
 			IFieldChangeListener listener) {
 		if (listeners == null) {
-			listeners = new HashMap<String, ListenerList>();
+			listeners = new HashMap<String, ListenerList<IFieldChangeListener>>();
 		}
-		ListenerList list = listeners.get(field);
+		ListenerList<IFieldChangeListener> list = listeners.get(field);
 		if (list == null) {
-			list = new ListenerList();
+			list = new ListenerList<>();
 			listeners.put(field, list);
 		}
 		list.add(listener);
@@ -272,7 +272,8 @@
 	public void removeFieldChangeListener(String field,
 			IFieldChangeListener listener) {
 		if (listeners != null) {
-			final ListenerList list = listeners.get(field);
+			final ListenerList<IFieldChangeListener> list = listeners
+					.get(field);
 			if (list != null) {
 				list.remove(listener);
 				if (list.isEmpty()) {
@@ -284,11 +285,12 @@
 
 	void fireFieldChange(String field) {
 		if (listeners != null) {
-			final ListenerList list = listeners.get(field);
+			final ListenerList<IFieldChangeListener> list = listeners
+					.get(field);
 			if (list != null) {
-				for (Object listener : list.getListeners()) {
+				for (IFieldChangeListener listener : list) {
 					if (listener instanceof IFieldChangeListener) {
-						((IFieldChangeListener) listener).fieldChanged();
+						listener.fieldChanged();
 					}
 				}
 			}