Bug 564416 - Use lambdas and method references cleanup on JDT UI code

For packageview, preferences, propertiesfileeditor

Change-Id: Idac348839c1b37a00271609d1d877a0e214432d4
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java
index ee2ba04..d95de09 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorContentProvider.java
@@ -33,7 +33,6 @@
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.Viewer;
 
 import org.eclipse.ui.IMemento;
@@ -79,20 +78,17 @@
 
 		fStateModel = stateModel;
 		restoreState(memento);
-		fLayoutPropertyListener = new IPropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
-					if (event.getNewValue() != null) {
-						boolean newValue = ((Boolean) event.getNewValue())
-								.booleanValue() ? true : false;
-						setIsFlatLayout(newValue);
-					}
-				} else if (Values.IS_LIBRARIES_NODE_SHOWN.equals(event.getProperty())) {
-					if (event.getNewValue() != null) {
-						boolean newValue = ((Boolean) event.getNewValue()).booleanValue();
-						setShowLibrariesNode(newValue);
-					}
+		fLayoutPropertyListener = event -> {
+			if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
+				if (event.getNewValue() != null) {
+					boolean newValue1 = ((Boolean) event.getNewValue())
+							.booleanValue() ? true : false;
+					setIsFlatLayout(newValue1);
+				}
+			} else if (Values.IS_LIBRARIES_NODE_SHOWN.equals(event.getProperty())) {
+				if (event.getNewValue() != null) {
+					boolean newValue2 = ((Boolean) event.getNewValue()).booleanValue();
+					setShowLibrariesNode(newValue2);
 				}
 			}
 		};
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorLabelProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorLabelProvider.java
index 5db6a2c..a71587e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorLabelProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/navigator/JavaNavigatorLabelProvider.java
@@ -80,18 +80,15 @@
 
 		delegeteLabelProvider.setIsFlatLayout(fStateModel
 				.getBooleanProperty(Values.IS_LAYOUT_FLAT));
-		fLayoutPropertyListener = new IPropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
-					if (event.getNewValue() != null) {
-						boolean newValue = ((Boolean) event.getNewValue())
-								.booleanValue() ? true : false;
-						delegeteLabelProvider.setIsFlatLayout(newValue);
-					}
+		fLayoutPropertyListener = event -> {
+			if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) {
+				if (event.getNewValue() != null) {
+					boolean newValue = ((Boolean) event.getNewValue())
+							.booleanValue() ? true : false;
+					delegeteLabelProvider.setIsFlatLayout(newValue);
 				}
-
 			}
+
 		};
 		fStateModel.addPropertyChangeListener(fLayoutPropertyListener);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/FileTransferDropAdapter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/FileTransferDropAdapter.java
index df6bd58..d6988ea 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/FileTransferDropAdapter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/FileTransferDropAdapter.java
@@ -114,12 +114,9 @@
 			// Run the import operation asynchronously.
 			// Otherwise the drag source (e.g., Windows Explorer) will be blocked
 			// while the operation executes. Fixes bug 35796.
-			Display.getCurrent().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					getShell().forceActive();
-					new CopyFilesAndFoldersOperation(getShell()).copyOrLinkFiles((String[])data, target, currentOperation);
-				}
+			Display.getCurrent().asyncExec(() -> {
+				getShell().forceActive();
+				new CopyFilesAndFoldersOperation(getShell()).copyOrLinkFiles((String[])data, target, currentOperation);
 			});
 
 			return true;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionGroup.java
index 8dc9358..a7a9651 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerActionGroup.java
@@ -33,10 +33,8 @@
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreePath;
 import org.eclipse.jface.viewers.TreeViewer;
 
@@ -129,12 +127,7 @@
 		fFrameActionsShown= false;
 		TreeViewer viewer= part.getTreeViewer();
 
-		IPropertyChangeListener workingSetListener= new IPropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				doWorkingSetChanged(event);
-			}
-		};
+		IPropertyChangeListener workingSetListener= event -> doWorkingSetChanged(event);
 
 		IWorkbenchPartSite site = fPart.getSite();
 		setGroups(new ActionGroup[] {
@@ -160,22 +153,14 @@
 		fFrameList= new FrameList(frameSource);
 		frameSource.connectTo(fFrameList);
 		fZoomInAction= new GoIntoAction(fFrameList);
-		fPart.getSite().getSelectionProvider().addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				fZoomInAction.update();
-				}
-		});
+		fPart.getSite().getSelectionProvider().addSelectionChangedListener(event -> fZoomInAction.update());
 
 		fBackAction= new BackAction(fFrameList);
 		fForwardAction= new ForwardAction(fFrameList);
 		fUpAction= new UpAction(fFrameList);
-		fFrameList.addPropertyChangeListener(new IPropertyChangeListener() { // connect after the actions (order of property listener)
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				fPart.updateTitle();
-				fPart.updateToolbar();
-			}
+		fFrameList.addPropertyChangeListener(event -> {
+			fPart.updateTitle();
+			fPart.updateToolbar();
 		});
 
 		fGotoTypeAction= new GotoTypeAction(fPart);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
index 40acf42..f84a98a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
@@ -842,13 +842,7 @@
 	 * @param runnables the resulting view changes as runnables (type {@link Runnable})
 	 */
 	 private void postUpdateIcon(final IJavaElement element, Collection<Runnable> runnables) {
-		 runnables.add(new Runnable() {
-			@Override
-			public void run() {
-				// 1GF87WR: ITPUI:ALL - SWTEx + NPE closing a workbench window.
-				fViewer.update(element, new String[]{IBasicPropertyConstants.P_IMAGE});
-			}
-		});
+		 runnables.add(() -> fViewer.update(element, new String[]{IBasicPropertyConstants.P_IMAGE}));
 	 }
 
 	/**
@@ -960,55 +954,43 @@
 	}
 
 	protected void postRefresh(final List<Object> toRefresh, final boolean updateLabels, Collection<Runnable> runnables) {
-		runnables.add(new Runnable() {
-			@Override
-			public void run() {
-				for (Object element : toRefresh.toArray()) {
-					if (element == null || fViewer.testFindItems(element).length > 0) {
-						fViewer.refresh(element, updateLabels);
-					}
+		runnables.add(() -> {
+			for (Object element : toRefresh.toArray()) {
+				if (element == null || fViewer.testFindItems(element).length > 0) {
+					fViewer.refresh(element, updateLabels);
 				}
 			}
 		});
 	}
 
 	protected void postAdd(final Object parent, final Object element, Collection<Runnable> runnables) {
-		runnables.add(new Runnable() {
-			@Override
-			public void run() {
-				for (Widget item : fViewer.testFindItems(element)) {
-					if (item instanceof TreeItem && !item.isDisposed()) {
-						TreeItem parentItem= ((TreeItem) item).getParentItem();
-						if (parentItem != null && !parentItem.isDisposed() && parent.equals(parentItem.getData())) {
-							return; // no add, element already added (most likely by a refresh)
-						}
+		runnables.add(() -> {
+			for (Widget item : fViewer.testFindItems(element)) {
+				if (item instanceof TreeItem && !item.isDisposed()) {
+					TreeItem parentItem= ((TreeItem) item).getParentItem();
+					if (parentItem != null && !parentItem.isDisposed() && parent.equals(parentItem.getData())) {
+						return; // no add, element already added (most likely by a refresh)
 					}
 				}
-				fViewer.add(parent, element);
 			}
+			fViewer.add(parent, element);
 		});
 	}
 
 	protected void postRemove(final Object element, Collection<Runnable> runnables) {
-		runnables.add(new Runnable() {
-			@Override
-			public void run() {
-				if (fViewer.testFindItems(element).length > 0) {
-					fViewer.remove(element);
-				}
+		runnables.add(() -> {
+			if (fViewer.testFindItems(element).length > 0) {
+				fViewer.remove(element);
 			}
 		});
 	}
 
 	protected void postProjectStateChanged(final Object root, Collection<Runnable> runnables) {
-		runnables.add(new Runnable() {
-			@Override
-			public void run() {
-				fViewer.refresh(root, true);
-				// trigger a synthetic selection change so that action refresh their
-				// enable state.
-				fViewer.setSelection(fViewer.getSelection());
-			}
+		runnables.add(() -> {
+			fViewer.refresh(root, true);
+			// trigger a synthetic selection change so that action refresh their
+			// enable state.
+			fViewer.setSelection(fViewer.getSelection());
 		});
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerPart.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerPart.java
index 4b3e888..c70a8a8 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerPart.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerPart.java
@@ -56,8 +56,6 @@
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IElementComparer;
 import org.eclipse.jface.viewers.ILabelDecorator;
 import org.eclipse.jface.viewers.ISelection;
@@ -524,12 +522,7 @@
 		initFrameActions();
 		initKeyListener();
 
-		fViewer.addDoubleClickListener(new IDoubleClickListener() {
-			@Override
-			public void doubleClick(DoubleClickEvent event) {
-				fActionSet.handleDoubleClick(event);
-			}
-		});
+		fViewer.addDoubleClickListener(event -> fActionSet.handleDoubleClick(event));
 
 		fOpenAndLinkWithEditorHelper= new OpenAndLinkWithEditorHelper(fViewer) {
 			@Override
@@ -1126,13 +1119,10 @@
 				final IType type2= type;
 				Control ctrl= fViewer.getControl();
 				if (ctrl != null && !ctrl.isDisposed()) {
-					ctrl.getDisplay().asyncExec(new Runnable() {
-						@Override
-						public void run() {
-							Control ctrl2= fViewer.getControl();
-							if (ctrl2 != null && !ctrl2.isDisposed())
-								fViewer.expandToLevel(type2, 1);
-						}
+					ctrl.getDisplay().asyncExec(() -> {
+						Control ctrl2= fViewer.getControl();
+						if (ctrl2 != null && !ctrl2.isDisposed())
+							fViewer.expandToLevel(type2, 1);
 					});
 				}
 			}
@@ -1269,14 +1259,9 @@
 	 * @return the <code>IShowInSource</code>
 	 */
 	protected IShowInSource getShowInSource() {
-		return new IShowInSource() {
-			@Override
-			public ShowInContext getShowInContext() {
-				return new ShowInContext(
-					getTreeViewer().getInput(),
-					getTreeViewer().getSelection());
-			}
-		};
+		return () -> new ShowInContext(
+			getTreeViewer().getInput(),
+			getTreeViewer().getSelection());
 	}
 
 	@Override
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/WorkingSetAwareContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/WorkingSetAwareContentProvider.java
index 99b238e..f87d415 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/WorkingSetAwareContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/WorkingSetAwareContentProvider.java
@@ -50,12 +50,7 @@
 	public WorkingSetAwareContentProvider(boolean provideMembers, WorkingSetModel model) {
 		super(provideMembers);
 		fWorkingSetModel= model;
-		fListener= new IPropertyChangeListener() {
-					@Override
-					public void propertyChange(PropertyChangeEvent event) {
-						workingSetModelChanged(event);
-					}
-				};
+		fListener= event -> workingSetModelChanged(event);
 		fWorkingSetModel.addPropertyChangeListener(fListener);
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/AbstractConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/AbstractConfigurationBlock.java
index 992f565..660645c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/AbstractConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/AbstractConfigurationBlock.java
@@ -22,7 +22,6 @@
 import java.util.Set;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -230,21 +229,13 @@
 
 
 	private Map<Text, String> fTextFields= new HashMap<>();
-	private ModifyListener fTextFieldListener= new ModifyListener() {
-		@Override
-		public void modifyText(ModifyEvent e) {
-			Text text= (Text) e.widget;
-			fStore.setValue(fTextFields.get(text), text.getText());
-		}
+	private ModifyListener fTextFieldListener= e -> {
+		Text text= (Text) e.widget;
+		fStore.setValue(fTextFields.get(text), text.getText());
 	};
 
 	private ArrayList<Text> fNumberFields= new ArrayList<>();
-	private ModifyListener fNumberFieldListener= new ModifyListener() {
-		@Override
-		public void modifyText(ModifyEvent e) {
-			numberFieldChanged((Text) e.widget);
-		}
-	};
+	private ModifyListener fNumberFieldListener= e -> numberFieldChanged((Text) e.widget);
 
 	/**
 	 * List of master/slave listeners when there's a dependency.
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java
index 6535c37..a5f6ff4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/BuildPathsPropertyPage.java
@@ -23,9 +23,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IWorkspaceRunnable;
@@ -219,12 +217,7 @@
 		if (fBuildPathsBlock != null) {
 			getSettings().put(INDEX, fBuildPathsBlock.getPageIndex());
 			if (fBuildPathsBlock.hasChangesInDialog() || fBuildPathsBlock.isClassfileMissing()) {
-				IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
-					@Override
-					public void run(IProgressMonitor monitor)	throws CoreException, OperationCanceledException {
-						fBuildPathsBlock.configureJavaProject(monitor);
-					}
-				};
+				IWorkspaceRunnable runnable= monitor -> fBuildPathsBlock.configureJavaProject(monitor);
 				WorkbenchRunnableAdapter op= new WorkbenchRunnableAdapter(runnable);
 				if (fBlockOnApply) {
 					try {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ClasspathContainerPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ClasspathContainerPreferencePage.java
index 336beb2..bcc9c03 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ClasspathContainerPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ClasspathContainerPreferencePage.java
@@ -18,11 +18,9 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
 
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.wizard.IWizard;
 
 import org.eclipse.ui.PlatformUI;
@@ -108,21 +106,18 @@
 
 			IRunnableContext context= new ProgressMonitorDialog(getShell());
 			context= PlatformUI.getWorkbench().getProgressService();
-			context.run(true, true, new IRunnableWithProgress() {
-				@Override
-				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						if (result.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
-							IPath path= result.getPath();
-							String eeID= JavaRuntime.getExecutionEnvironmentId(path);
-							if (eeID != null) {
-								BuildPathSupport.setEEComplianceOptions(fJavaProject, eeID, null);
-							}
+			context.run(true, true, monitor -> {
+				try {
+					if (result.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
+						IPath path= result.getPath();
+						String eeID= JavaRuntime.getExecutionEnvironmentId(path);
+						if (eeID != null) {
+							BuildPathSupport.setEEComplianceOptions(fJavaProject, eeID, null);
 						}
-						fJavaProject.setRawClasspath(newEntries, fJavaProject.getOutputLocation(), monitor);
-					} catch (CoreException e) {
-						throw new InvocationTargetException(e);
 					}
+					fJavaProject.setRawClasspath(newEntries, fJavaProject.getOutputLocation(), monitor);
+				} catch (CoreException e) {
+					throw new InvocationTargetException(e);
 				}
 			});
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/CodeTemplateSourceViewerConfiguration.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/CodeTemplateSourceViewerConfiguration.java
index bb7f641..568f38a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/CodeTemplateSourceViewerConfiguration.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/CodeTemplateSourceViewerConfiguration.java
@@ -17,7 +17,6 @@
 
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Shell;
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
@@ -25,8 +24,6 @@
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.DefaultInformationControl;
 import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextHover;
 import org.eclipse.jface.text.ITextViewer;
@@ -127,12 +124,7 @@
 		assistant.setAutoActivationDelay(store.getInt(PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY));
 		assistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);
 		assistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
-		assistant.setInformationControlCreator(new IInformationControlCreator() {
-			@Override
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString());
-			}
-		});
+		assistant.setInformationControlCreator(parent -> new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString()));
 
 		Color background= getColor(store, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, manager);
 		assistant.setContextInformationPopupBackground(background);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/EditTemplateDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/EditTemplateDialog.java
index b20257e..10238f7 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/EditTemplateDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/EditTemplateDialog.java
@@ -25,11 +25,8 @@
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -51,7 +48,6 @@
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
@@ -62,17 +58,13 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.util.BidiUtils;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextListener;
 import org.eclipse.jface.text.ITextOperationTarget;
 import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextEvent;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.SourceViewer;
 import org.eclipse.jface.text.templates.ContextTypeRegistry;
@@ -263,12 +255,7 @@
 		parent.setLayout(layout);
 		parent.setLayoutData(new GridData(GridData.FILL_BOTH));
 
-		ModifyListener listener= new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				doTextWidgetChanged(e.widget);
-			}
-		};
+		ModifyListener listener= e -> doTextWidgetChanged(e.widget);
 
 		if (fIsNameModifiable) {
 			createLabel(parent, PreferencesMessages.EditTemplateDialog_name);
@@ -466,20 +453,12 @@
 		data.heightHint= convertHeightInCharsToPixels(nLines);
 		control.setLayoutData(data);
 
-		viewer.addTextListener(new ITextListener() {
-			@Override
-			public void textChanged(TextEvent event) {
-				if (event .getDocumentEvent() != null)
-					doSourceChanged(event.getDocumentEvent().getDocument());
-			}
+		viewer.addTextListener(event -> {
+			if (event .getDocumentEvent() != null)
+				doSourceChanged(event.getDocumentEvent().getDocument());
 		});
 
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateSelectionDependentActions();
-			}
-		});
+		viewer.addSelectionChangedListener(event -> updateSelectionDependentActions());
 
 		return viewer;
 	}
@@ -498,12 +477,7 @@
 		final IHandlerService handlerService= PlatformUI.getWorkbench().getAdapter(IHandlerService.class);
 		final Expression expression= new ActiveShellExpression(fPatternEditor.getControl().getShell());
 
-		getShell().addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				handlerService.deactivateHandlers(handlerActivations);
-				}
-						});
+		getShell().addDisposeListener(e -> handlerService.deactivateHandlers(handlerActivations));
 
 		fPatternEditor.getTextWidget().addFocusListener(new FocusListener() {
 			@Override
@@ -557,12 +531,7 @@
 		// create context menu
 		MenuManager manager= new MenuManager(null, null);
 		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(new IMenuListener() {
-			@Override
-			public void menuAboutToShow(IMenuManager mgr) {
-				fillContextMenu(mgr);
-			}
-		});
+		manager.addMenuListener(mgr -> fillContextMenu(mgr));
 
 		StyledText text= fPatternEditor.getTextWidget();
 		Menu menu= manager.createContextMenu(text);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FilteredPreferenceTree.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FilteredPreferenceTree.java
index 0d25fe8..8f697bd 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FilteredPreferenceTree.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FilteredPreferenceTree.java
@@ -21,8 +21,6 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ControlAdapter;
 import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -310,12 +308,7 @@
 
 		fRefreshJob= doCreateRefreshJob();
 		fRefreshJob.setSystem(true);
-		fParentComposite.addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				fRefreshJob.cancel();
-			}
-		});
+		fParentComposite.addDisposeListener(e -> fRefreshJob.cancel());
 	}
 
 	private void createDescription(String label) {
@@ -378,12 +371,9 @@
 				setAllExpanded(null, expand);
 			}
 		});
-		item.addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				createdImage.dispose();
-				createdDisabledImage.dispose();
-			}
+		item.addDisposeListener(e -> {
+			createdImage.dispose();
+			createdDisabledImage.dispose();
 		});
 		return item;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FoldingConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FoldingConfigurationBlock.java
index 18a7c11..e8fbffc 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FoldingConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/FoldingConfigurationBlock.java
@@ -40,10 +40,8 @@
 import org.eclipse.jface.layout.PixelConverter;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 
 import org.eclipse.jdt.internal.corext.util.Messages;
@@ -260,15 +258,11 @@
 				return ((JavaFoldingStructureProviderDescriptor) element).getName();
 			}
 		});
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection sel= (IStructuredSelection) event.getSelection();
-				if (!sel.isEmpty()) {
-					fStore.setValue(PreferenceConstants.EDITOR_FOLDING_PROVIDER, ((JavaFoldingStructureProviderDescriptor) sel.getFirstElement()).getId());
-					updateListDependencies();
-				}
+		viewer.addSelectionChangedListener(event -> {
+			IStructuredSelection sel= (IStructuredSelection) event.getSelection();
+			if (!sel.isEmpty()) {
+				fStore.setValue(PreferenceConstants.EDITOR_FOLDING_PROVIDER, ((JavaFoldingStructureProviderDescriptor) sel.getFirstElement()).getId());
+				updateListDependencies();
 			}
 		});
 		viewer.setInput(fProviderDescriptors.values());
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaCompilerPropertyPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaCompilerPropertyPage.java
index 669051d..16adce4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaCompilerPropertyPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaCompilerPropertyPage.java
@@ -19,9 +19,7 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
 
 import org.eclipse.core.resources.IWorkspaceRunnable;
 
@@ -121,12 +119,9 @@
 	}
 
 	private static IWorkspaceRunnable getRunnable(final Shell shell, final IJavaProject project, final IClasspathEntry entry) {
-		return new IWorkspaceRunnable() {
-			@Override
-			public void run(IProgressMonitor monitor) throws CoreException {
-				String[] changedAttributes= { CPListElement.IGNORE_OPTIONAL_PROBLEMS };
-				BuildPathSupport.modifyClasspathEntry(shell, entry, changedAttributes, project, null, entry.getReferencingEntry() != null, monitor);
-			}
+		return monitor -> {
+			String[] changedAttributes= { CPListElement.IGNORE_OPTIONAL_PROBLEMS };
+			BuildPathSupport.modifyClasspathEntry(shell, entry, changedAttributes, project, null, entry.getReferencingEntry() != null, monitor);
 		};
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorAppearanceConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorAppearanceConfigurationBlock.java
index e35774c..bb3bd03 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorAppearanceConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorAppearanceConfigurationBlock.java
@@ -469,13 +469,10 @@
 			fAppearanceColorList.add(c[0]);
 		}
 
-		fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
-			@Override
-			public void run() {
-				if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
-					fAppearanceColorList.select(0);
-					handleAppearanceColorListSelection();
-				}
+		fAppearanceColorList.getDisplay().asyncExec(() -> {
+			if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
+				fAppearanceColorList.select(0);
+				handleAppearanceColorListSelection();
 			}
 		});
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorColoringConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorColoringConfigurationBlock.java
index 9656fd3..2c1aa8b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorColoringConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorColoringConfigurationBlock.java
@@ -51,13 +51,9 @@
 import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
@@ -707,12 +703,7 @@
 		gd.widthHint= convertWidthInCharsToPixels(20);
 		previewer.setLayoutData(gd);
 
-		fTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleSyntaxColorListSelection();
-			}
-		});
+		fTreeViewer.addSelectionChangedListener(event -> handleSyntaxColorListSelection());
 
 		foregroundColorButton.addSelectionListener(new SelectionListener() {
 			@Override
@@ -854,17 +845,11 @@
 	 * @since 3.4
 	 */
 	private void installDoubleClickListener() {
-		fTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
-			/*
-			 * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
-			 */
-			@Override
-			public void doubleClick(DoubleClickEvent event) {
-				IStructuredSelection s= (IStructuredSelection) event.getSelection();
-				Object element= s.getFirstElement();
-				if (fTreeViewer.isExpandable(element))
-					fTreeViewer.setExpandedState(element, !fTreeViewer.getExpandedState(element));
-			}
+		fTreeViewer.addDoubleClickListener(event -> {
+			IStructuredSelection s= (IStructuredSelection) event.getSelection();
+			Object element= s.getFirstElement();
+			if (fTreeViewer.isExpandable(element))
+				fTreeViewer.setExpandedState(element, !fTreeViewer.getExpandedState(element));
 		});
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorHoverConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorHoverConfigurationBlock.java
index f47c89d..a507556 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorHoverConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorHoverConfigurationBlock.java
@@ -22,8 +22,6 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Image;
@@ -46,10 +44,8 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.layout.PixelConverter;
 import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateListener;
 import org.eclipse.jface.viewers.ILabelProviderListener;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.ITableLabelProvider;
@@ -284,30 +280,24 @@
 		fHoverTableViewer.setContentProvider(new JavaEditorTextHoverDescriptorContentProvider());
 		fHoverTableViewer.setLabelProvider(new JavaEditorTextHoverDescriptorLabelProvider());
 
-		((CheckboxTableViewer)fHoverTableViewer).addCheckStateListener(new ICheckStateListener() {
-			/*
-			 * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
-			 */
-			@Override
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				String id= ((JavaEditorTextHoverDescriptor)event.getElement()).getId();
-				if (id == null)
-					return;
-				JavaEditorTextHoverDescriptor[] descriptors= getContributedHovers();
-				HoverConfig hoverConfig= null;
-				int i= 0, length= fHoverConfigs.length;
-				while (i < length) {
-					if (id.equals(descriptors[i].getId())) {
-						hoverConfig= fHoverConfigs[i];
-						hoverConfig.fIsEnabled= event.getChecked();
-						fModifierEditor.setEnabled(event.getChecked());
-						fHoverTableViewer.setSelection(new StructuredSelection(descriptors[i]));
-					}
-					i++;
+		((CheckboxTableViewer)fHoverTableViewer).addCheckStateListener(event -> {
+			String id= ((JavaEditorTextHoverDescriptor)event.getElement()).getId();
+			if (id == null)
+				return;
+			JavaEditorTextHoverDescriptor[] descriptors= getContributedHovers();
+			HoverConfig hoverConfig= null;
+			int i= 0, length= fHoverConfigs.length;
+			while (i < length) {
+				if (id.equals(descriptors[i].getId())) {
+					hoverConfig= fHoverConfigs[i];
+					hoverConfig.fIsEnabled= event.getChecked();
+					fModifierEditor.setEnabled(event.getChecked());
+					fHoverTableViewer.setSelection(new StructuredSelection(descriptors[i]));
 				}
-				handleHoverListSelection();
-				updateStatus(hoverConfig);
+				i++;
 			}
+			handleHoverListSelection();
+			updateStatus(hoverConfig);
 		});
 
 		// Text field for modifier string
@@ -358,12 +348,7 @@
 			}
 		});
 
-		fModifierEditor.addModifyListener(new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				handleModifierModified();
-			}
-		});
+		fModifierEditor.addModifyListener(e -> handleModifierModified());
 
 		// Description
 		Label descriptionLabel= new Label(hoverComposite, SWT.LEFT);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaSourcePreviewerUpdater.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaSourcePreviewerUpdater.java
index cb64c2c..767b398 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaSourcePreviewerUpdater.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaSourcePreviewerUpdater.java
@@ -14,8 +14,6 @@
 
 package org.eclipse.jdt.internal.ui.preferences;
 
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.graphics.Font;
 
 import org.eclipse.core.runtime.Assert;
@@ -23,7 +21,6 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
 
 import org.eclipse.jface.text.source.SourceViewer;
 
@@ -48,39 +45,21 @@
 		Assert.isNotNull(viewer);
 		Assert.isNotNull(configuration);
 		Assert.isNotNull(preferenceStore);
-		final IPropertyChangeListener fontChangeListener= new IPropertyChangeListener() {
-			/*
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals(PreferenceConstants.EDITOR_TEXT_FONT)) {
-					Font font= JFaceResources.getFont(PreferenceConstants.EDITOR_TEXT_FONT);
-					viewer.getTextWidget().setFont(font);
-				}
+		final IPropertyChangeListener fontChangeListener= event -> {
+			if (event.getProperty().equals(PreferenceConstants.EDITOR_TEXT_FONT)) {
+				Font font= JFaceResources.getFont(PreferenceConstants.EDITOR_TEXT_FONT);
+				viewer.getTextWidget().setFont(font);
 			}
 		};
-		final IPropertyChangeListener propertyChangeListener= new IPropertyChangeListener() {
-			/*
-			 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-			 */
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				if (configuration.affectsTextPresentation(event)) {
-					configuration.handlePropertyChangeEvent(event);
-					viewer.invalidateTextPresentation();
-				}
+		final IPropertyChangeListener propertyChangeListener= event -> {
+			if (configuration.affectsTextPresentation(event)) {
+				configuration.handlePropertyChangeEvent(event);
+				viewer.invalidateTextPresentation();
 			}
 		};
-		viewer.getTextWidget().addDisposeListener(new DisposeListener() {
-			/*
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-			 */
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				preferenceStore.removePropertyChangeListener(propertyChangeListener);
-				JFaceResources.getFontRegistry().removeListener(fontChangeListener);
-			}
+		viewer.getTextWidget().addDisposeListener(e -> {
+			preferenceStore.removePropertyChangeListener(propertyChangeListener);
+			JFaceResources.getFontRegistry().removeListener(fontChangeListener);
 		});
 		JFaceResources.getFontRegistry().addListener(fontChangeListener);
 		preferenceStore.addPropertyChangeListener(propertyChangeListener);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java
index f20b8fb..82073af 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationBlock.java
@@ -522,12 +522,7 @@
 
 	private String chooseArchivePath() {
 		final String[] res= new String[] { null };
-		BusyIndicator.showWhile(fShell.getDisplay(), new Runnable() {
-			@Override
-			public void run() {
-				res[0]= internalChooseArchivePath();
-			}
-		});
+		BusyIndicator.showWhile(fShell.getDisplay(), () -> res[0]= internalChooseArchivePath());
 		return res[0];
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationPropertyPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationPropertyPage.java
index 224db56..bc804fc 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationPropertyPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavadocConfigurationPropertyPage.java
@@ -29,7 +29,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import org.eclipse.core.resources.IFile;
@@ -271,24 +270,21 @@
 
 
 	private static IRunnableWithProgress getRunnable(final Shell shell, final IJavaElement elem, final URL javadocLocation, final IClasspathEntry entry, final IPath containerPath) {
-		return new IRunnableWithProgress() {
-			@Override
-			public void run(IProgressMonitor monitor) throws InvocationTargetException {
-				try {
-					IJavaProject project= elem.getJavaProject();
-					if (elem instanceof IPackageFragmentRoot) {
-						CPListElement cpElem= CPListElement.createFromExisting(entry, project);
-						String loc= javadocLocation != null ? javadocLocation.toExternalForm() : null;
-						cpElem.setAttribute(CPListElement.JAVADOC, loc);
-						IClasspathEntry newEntry= cpElem.getClasspathEntry();
-						String[] changedAttributes= { CPListElement.JAVADOC };
-						BuildPathSupport.modifyClasspathEntry(shell, newEntry, changedAttributes, project, containerPath, entry.getReferencingEntry() != null, monitor);
-					} else {
-						JavaUI.setProjectJavadocLocation(project, javadocLocation);
-					}
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
+		return monitor -> {
+			try {
+				IJavaProject project= elem.getJavaProject();
+				if (elem instanceof IPackageFragmentRoot) {
+					CPListElement cpElem= CPListElement.createFromExisting(entry, project);
+					String loc= javadocLocation != null ? javadocLocation.toExternalForm() : null;
+					cpElem.setAttribute(CPListElement.JAVADOC, loc);
+					IClasspathEntry newEntry= cpElem.getClasspathEntry();
+					String[] changedAttributes= { CPListElement.JAVADOC };
+					BuildPathSupport.modifyClasspathEntry(shell, newEntry, changedAttributes, project, containerPath, entry.getReferencingEntry() != null, monitor);
+				} else {
+					JavaUI.setProjectJavadocLocation(project, javadocLocation);
 				}
+			} catch (CoreException e) {
+				throw new InvocationTargetException(e);
 			}
 		};
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/MembersOrderPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/MembersOrderPreferencePage.java
index 43ef473..0626a38 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/MembersOrderPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/MembersOrderPreferencePage.java
@@ -44,8 +44,6 @@
 import org.eclipse.jdt.internal.ui.JavaPlugin;
 import org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry;
 import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
 
@@ -179,12 +177,7 @@
 		createListDialogField(sortComposite, fSortOrderList);
 
 		fUseVisibilitySortField= new SelectionButtonDialogField(SWT.CHECK);
-		fUseVisibilitySortField.setDialogFieldListener(new IDialogFieldListener() {
-			@Override
-			public void dialogFieldChanged(DialogField field) {
-				fVisibilityOrderList.setEnabled(fUseVisibilitySortField.isSelected());
-			}
-		});
+		fUseVisibilitySortField.setDialogFieldListener(field -> fVisibilityOrderList.setEnabled(fUseVisibilitySortField.isSelected()));
 		fUseVisibilitySortField.setLabelText(PreferencesMessages.MembersOrderPreferencePage_usevisibilitysort_label);
 		fUseVisibilitySortField.doFillIntoGrid(sortComposite, 2);
 		fUseVisibilitySortField.setSelection(fUseVisibilitySort);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NativeLibrariesPropertyPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NativeLibrariesPropertyPage.java
index f51fa5d..60431da 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NativeLibrariesPropertyPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NativeLibrariesPropertyPage.java
@@ -28,7 +28,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import org.eclipse.core.resources.IFile;
@@ -232,21 +231,18 @@
 	}
 
 	private static IRunnableWithProgress getRunnable(final Shell shell, final IJavaElement elem, final String nativeLibraryPath, final IClasspathEntry entry, final IPath containerPath, final boolean isReferencedEntry) {
-		return new IRunnableWithProgress() {
-			@Override
-			public void run(IProgressMonitor monitor) throws InvocationTargetException {
-				try {
-					IJavaProject project= elem.getJavaProject();
-					if (elem instanceof IPackageFragmentRoot) {
-						CPListElement cpElem= CPListElement.createFromExisting(entry, project);
-						cpElem.setAttribute(CPListElement.NATIVE_LIB_PATH, nativeLibraryPath);
-						IClasspathEntry newEntry= cpElem.getClasspathEntry();
-						String[] changedAttributes= { CPListElement.NATIVE_LIB_PATH };
-						BuildPathSupport.modifyClasspathEntry(shell, newEntry, changedAttributes, project, containerPath, isReferencedEntry,  monitor);
-					}
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
+		return monitor -> {
+			try {
+				IJavaProject project= elem.getJavaProject();
+				if (elem instanceof IPackageFragmentRoot) {
+					CPListElement cpElem= CPListElement.createFromExisting(entry, project);
+					cpElem.setAttribute(CPListElement.NATIVE_LIB_PATH, nativeLibraryPath);
+					IClasspathEntry newEntry= cpElem.getClasspathEntry();
+					String[] changedAttributes= { CPListElement.NATIVE_LIB_PATH };
+					BuildPathSupport.modifyClasspathEntry(shell, newEntry, changedAttributes, project, containerPath, isReferencedEntry,  monitor);
 				}
+			} catch (CoreException e) {
+				throw new InvocationTargetException(e);
 			}
 		};
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NewJavaProjectPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NewJavaProjectPreferencePage.java
index 94d01c0..75ac037 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NewJavaProjectPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/NewJavaProjectPreferencePage.java
@@ -21,7 +21,6 @@
 import java.util.StringTokenizer;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -260,12 +259,7 @@
 			}
 		};
 
-		fModifyListener= new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				controlModified(e.widget);
-			}
-		};
+		fModifyListener= e -> controlModified(e.widget);
 
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
index b7b891b..5062918 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
@@ -25,15 +25,12 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.accessibility.AccessibleAdapter;
 import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -578,16 +575,13 @@
 				}
 			}
 		});
-		link.addTraverseListener(new TraverseListener() {
-			@Override
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit == true) {
-					e.detail= SWT.TRAVERSE_NONE;
-					checkBox.setSelection(!checkBox.getSelection());
-					checkBox.setFocus();
-					linkSelected[0]= false;
-					controlChanged(checkBox);
-				}
+		link.addTraverseListener(e -> {
+			if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit == true) {
+				e.detail= SWT.TRAVERSE_NONE;
+				checkBox.setSelection(!checkBox.getSelection());
+				checkBox.setFocus();
+				linkSelected[0]= false;
+				controlChanged(checkBox);
 			}
 		});
 
@@ -853,12 +847,7 @@
 
 	protected ModifyListener getTextModifyListener() {
 		if (fTextModifyListener == null) {
-			fTextModifyListener= new ModifyListener() {
-				@Override
-				public void modifyText(ModifyEvent e) {
-					textChanged((Text) e.widget);
-				}
-			};
+			fTextModifyListener= e -> textChanged((Text) e.widget);
 		}
 		return fTextModifyListener;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ProjectSelectionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ProjectSelectionDialog.java
index e80369b..4dd1323 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ProjectSelectionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ProjectSelectionDialog.java
@@ -31,11 +31,7 @@
 
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
@@ -93,18 +89,8 @@
 		createMessageArea(composite);
 
 		fTableViewer= new TableViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				doSelectionChanged(((IStructuredSelection) event.getSelection()).toArray());
-			}
-		});
-		fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
-			@Override
-			public void doubleClick(DoubleClickEvent event) {
-                okPressed();
-			}
-		});
+		fTableViewer.addSelectionChangedListener(event -> doSelectionChanged(((IStructuredSelection) event.getSelection()).toArray()));
+		fTableViewer.addDoubleClickListener(event -> okPressed());
 		GridData data= new GridData(SWT.FILL, SWT.FILL, true, true);
 		data.heightHint= SIZING_SELECTION_WIDGET_HEIGHT;
 		data.widthHint= SIZING_SELECTION_WIDGET_WIDTH;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertiesFileEditorPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertiesFileEditorPreferencePage.java
index 334448c..2d72ad8 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertiesFileEditorPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertiesFileEditorPreferencePage.java
@@ -20,8 +20,6 @@
 import java.util.List;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Color;
@@ -46,13 +44,10 @@
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
@@ -107,39 +102,21 @@
 			Assert.isNotNull(viewer);
 			Assert.isNotNull(configuration);
 			Assert.isNotNull(preferenceStore);
-			final IPropertyChangeListener fontChangeListener= new IPropertyChangeListener() {
-				/*
-				 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-				 */
-				@Override
-				public void propertyChange(PropertyChangeEvent event) {
-					if (event.getProperty().equals(PreferenceConstants.PROPERTIES_FILE_EDITOR_TEXT_FONT)) {
-						Font font= JFaceResources.getFont(PreferenceConstants.PROPERTIES_FILE_EDITOR_TEXT_FONT);
-						viewer.getTextWidget().setFont(font);
-					}
+			final IPropertyChangeListener fontChangeListener= event -> {
+				if (event.getProperty().equals(PreferenceConstants.PROPERTIES_FILE_EDITOR_TEXT_FONT)) {
+					Font font= JFaceResources.getFont(PreferenceConstants.PROPERTIES_FILE_EDITOR_TEXT_FONT);
+					viewer.getTextWidget().setFont(font);
 				}
 			};
-			final IPropertyChangeListener propertyChangeListener= new IPropertyChangeListener() {
-				/*
-				 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-				 */
-				@Override
-				public void propertyChange(PropertyChangeEvent event) {
-					if (configuration.affectsTextPresentation(event)) {
-						configuration.handlePropertyChangeEvent(event);
-						viewer.invalidateTextPresentation();
-					}
+			final IPropertyChangeListener propertyChangeListener= event -> {
+				if (configuration.affectsTextPresentation(event)) {
+					configuration.handlePropertyChangeEvent(event);
+					viewer.invalidateTextPresentation();
 				}
 			};
-			viewer.getTextWidget().addDisposeListener(new DisposeListener() {
-				/*
-				 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-				 */
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					preferenceStore.removePropertyChangeListener(propertyChangeListener);
-					JFaceResources.getFontRegistry().removeListener(fontChangeListener);
-				}
+			viewer.getTextWidget().addDisposeListener(e -> {
+				preferenceStore.removePropertyChangeListener(propertyChangeListener);
+				JFaceResources.getFontRegistry().removeListener(fontChangeListener);
 			});
 			JFaceResources.getFontRegistry().addListener(fontChangeListener);
 			preferenceStore.addPropertyChangeListener(propertyChangeListener);
@@ -518,12 +495,7 @@
 		previewer.setLayoutData(gd);
 
 
-		fHighlightingColorListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleSyntaxColorListSelection();
-			}
-		});
+		fHighlightingColorListViewer.addSelectionChangedListener(event -> handleSyntaxColorListSelection());
 
 		foregroundColorButton.addSelectionListener(new SelectionAdapter() {
 			@Override
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertyAndPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertyAndPreferencePage.java
index 0b37316..a9eeeab 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertyAndPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/PropertyAndPreferencePage.java
@@ -51,7 +51,6 @@
 import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
 import org.eclipse.jdt.internal.ui.dialogs.StatusUtil;
 import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
@@ -107,15 +106,12 @@
 			composite.setLayout(layout);
 			composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 
-			IDialogFieldListener listener= new IDialogFieldListener() {
-				@Override
-				public void dialogFieldChanged(DialogField field) {
-					boolean enabled= ((SelectionButtonDialogField) field).isSelected();
-					enableProjectSpecificSettings(enabled);
+			IDialogFieldListener listener= field -> {
+				boolean enabled= ((SelectionButtonDialogField) field).isSelected();
+				enableProjectSpecificSettings(enabled);
 
-					if (enabled && getData() != null) {
-						applyData(getData());
-					}
+				if (enabled && getData() != null) {
+					applyData(getData());
 				}
 			};
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SaveParticipantConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SaveParticipantConfigurationBlock.java
index c05b915..c04c195 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SaveParticipantConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SaveParticipantConfigurationBlock.java
@@ -15,7 +15,6 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Comparator;
 
 import com.ibm.icu.text.Collator;
 
@@ -80,12 +79,7 @@
 		if (descriptors.length == 0)
 			return composite;
 
-		Arrays.sort(descriptors, new Comparator<SaveParticipantDescriptor>() {
-			@Override
-			public int compare(SaveParticipantDescriptor d1, SaveParticipantDescriptor d2) {
-				return Collator.getInstance().compare(d1.getPostSaveListener().getName(), d2.getPostSaveListener().getName());
-			}
-		});
+		Arrays.sort(descriptors, (d1, d2) -> Collator.getInstance().compare(d1.getPostSaveListener().getName(), d2.getPostSaveListener().getName()));
 
 		IPreferencePageContainer container= fPreferencePage.getContainer();
 		for (SaveParticipantDescriptor descriptor : descriptors) {
@@ -110,15 +104,12 @@
 	 */
 	@Override
 	public void initialize() {
-		delegateToPreferenceConfiguration(new IDelegateOperation() {
-			@Override
-			public void run(ISaveParticipantPreferenceConfiguration block) {
-				IAdaptable element= null;
-				if (fPreferencePage instanceof PropertyAndPreferencePage) {
-					element= ((PropertyAndPreferencePage)fPreferencePage).getElement();
-				}
-				block.initialize(fContext, element);
+		delegateToPreferenceConfiguration(block -> {
+			IAdaptable element= null;
+			if (fPreferencePage instanceof PropertyAndPreferencePage) {
+				element= ((PropertyAndPreferencePage)fPreferencePage).getElement();
 			}
+			block.initialize(fContext, element);
 		});
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SmartTypingConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SmartTypingConfigurationBlock.java
index 582ab31..5a6d46b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SmartTypingConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SmartTypingConfigurationBlock.java
@@ -14,7 +14,6 @@
 package org.eclipse.jdt.internal.ui.preferences;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Point;
@@ -272,12 +271,7 @@
 			}
 		};
 		combinedStore.addPropertyChangeListener(propertyChangeListener);
-		link.addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
-					combinedStore.removePropertyChangeListener(propertyChangeListener);
-				}
-		});
+		link.addDisposeListener(e -> combinedStore.removePropertyChangeListener(propertyChangeListener));
 	}
 
 	private String getIndentMode() {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/UserLibraryPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/UserLibraryPreferencePage.java
index c60036f..501c040 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/UserLibraryPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/UserLibraryPreferencePage.java
@@ -80,7 +80,6 @@
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.StatusDialog;
 import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.resource.StringConverter;
 import org.eclipse.jface.util.BidiUtils;
@@ -470,14 +469,11 @@
 					final String charset= encoding;
 					IRunnableContext context= PlatformUI.getWorkbench().getProgressService();
 					try {
-						context.run(true, true, new IRunnableWithProgress() {
-							@Override
-							public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-								try {
-									saveLibraries(elements, file, charset, monitor);
-								} catch (IOException e) {
-									throw new InvocationTargetException(e);
-								}
+						context.run(true, true, monitor -> {
+							try {
+								saveLibraries(elements, file, charset, monitor);
+							} catch (IOException e) {
+								throw new InvocationTargetException(e);
 							}
 						});
 						fSettings.put(PREF_LASTPATH, file.getPath());
@@ -896,20 +892,17 @@
 	@Override
 	public boolean performOk() {
 		try {
-			PlatformUI.getWorkbench().getProgressService().run(true, true, new IRunnableWithProgress() {
-				@Override
-				public void run(IProgressMonitor monitor) throws InvocationTargetException {
-					try {
-						if (monitor != null) {
-							monitor= new NullProgressMonitor();
-						}
-
-						updateUserLibararies(monitor);
-					} catch (CoreException e) {
-						throw new InvocationTargetException(e);
-					} finally {
-						monitor.done();
+			PlatformUI.getWorkbench().getProgressService().run(true, true, monitor -> {
+				try {
+					if (monitor != null) {
+						monitor= new NullProgressMonitor();
 					}
+
+					updateUserLibararies(monitor);
+				} catch (CoreException e) {
+					throw new InvocationTargetException(e);
+				} finally {
+					monitor.done();
 				}
 			});
 		} catch (InterruptedException e) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/AlreadyExistsDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/AlreadyExistsDialog.java
index 9f6552b..4ff02ae 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/AlreadyExistsDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/AlreadyExistsDialog.java
@@ -15,8 +15,6 @@
 package org.eclipse.jdt.internal.ui.preferences.formatter;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
@@ -92,12 +90,7 @@
 		fNameText.setSelection(0, fProfile.getName().length());
 		fNameText.setFocus();
 
-		fNameText.addModifyListener( new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				doValidation();
-			}
-		});
+		fNameText.addModifyListener( e -> doValidation());
 
 		fRenameRadio.addSelectionListener(new SelectionListener() {
 			@Override
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java
index 7c94407..c6a15d5 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java
@@ -18,8 +18,6 @@
 import java.util.Map;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
@@ -108,12 +106,7 @@
 		gd.horizontalSpan= numColumns;
 		fNameText= new Text(composite, SWT.SINGLE | SWT.BORDER);
 		fNameText.setLayoutData(gd);
-		fNameText.addModifyListener( new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				doValidation();
-			}
-		});
+		fNameText.addModifyListener( e -> doValidation());
 
 		// Create "Initialize settings ..." label
 		gd = new GridData();
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/JavaPreview.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/JavaPreview.java
index b95b331..ef403b9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/JavaPreview.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/JavaPreview.java
@@ -19,8 +19,6 @@
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.graphics.RGB;
@@ -85,12 +83,7 @@
 
 		    fPreferenceStore.addPropertyChangeListener(propertyListener);
 
-			fSourceViewer.getTextWidget().addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					fPreferenceStore.removePropertyChangeListener(propertyListener);
-				}
-			});
+			fSourceViewer.getTextWidget().addDisposeListener(e -> fPreferenceStore.removePropertyChangeListener(propertyListener));
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialog.java
index 60fa9cb..d17f8e7 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialog.java
@@ -104,8 +104,6 @@
 import org.eclipse.jdt.internal.ui.preferences.formatter.ProfileManager.Profile;
 import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
 import org.eclipse.jdt.internal.ui.util.SWTUtil;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
 import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField;
 
@@ -1301,12 +1299,7 @@
 		fProfileNameField.setText(fProfile.getName());
 		fProfileNameField.getLabelControl(nameComposite).setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
 		fProfileNameField.getTextControl(nameComposite).setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-		fProfileNameField.setDialogFieldListener(new IDialogFieldListener() {
-			@Override
-			public void dialogFieldChanged(DialogField field) {
-				doValidate();
-			}
-		});
+		fProfileNameField.setDialogFieldListener(field -> doValidate());
 
 		fSaveButton= createButton(nameComposite, SAVE_BUTTON_ID, FormatterMessages.ModifyDialog_Export_Button, false);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialogTabPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialogTabPage.java
index 1cb20d3..632fb95 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialogTabPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialogTabPage.java
@@ -30,8 +30,6 @@
 import org.eclipse.swt.events.FocusAdapter;
 import org.eclipse.swt.events.FocusEvent;
 import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Point;
@@ -71,12 +69,9 @@
 	 * classes. It is added by the respective factory methods and
 	 * updates the page's preview on each change.
 	 */
-	protected final Observer fUpdater= new Observer() {
-		@Override
-		public void update(Observable o, Object arg) {
-			doUpdatePreview();
-			notifyValuesModified();
-		}
+	protected final Observer fUpdater= (o, arg) -> {
+		doUpdatePreview();
+		notifyValuesModified();
 	};
 
 
@@ -379,12 +374,7 @@
 				}
 			});
 
-			fNumberText.addModifyListener(new ModifyListener() {
-				@Override
-				public void modifyText(ModifyEvent e) {
-					fieldModified();
-				}
-			});
+			fNumberText.addModifyListener(e -> fieldModified());
 		}
 
 		private IStatus createErrorStatus() {
@@ -549,12 +539,7 @@
 				}
 			});
 
-			fText.addModifyListener(new ModifyListener() {
-				@Override
-				public void modifyText(ModifyEvent e) {
-					fieldModified();
-				}
-			});
+			fText.addModifyListener(e -> fieldModified());
 		}
 
 		private IStatus createErrorStatus(String errorText) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileConfigurationBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileConfigurationBlock.java
index 2bbc81d..0d5f4ca 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileConfigurationBlock.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileConfigurationBlock.java
@@ -365,12 +365,9 @@
 		new StoreUpdater();
 
 		fPreferenceListenerEnabled= true;
-		fPreferenceListener= new IPreferenceChangeListener() {
-			@Override
-			public void preferenceChange(PreferenceChangeEvent event) {
-				if (fPreferenceListenerEnabled) {
-					preferenceChanged(event);
-				}
+		fPreferenceListener= event -> {
+			if (fPreferenceListenerEnabled) {
+				preferenceChanged(event);
 			}
 		};
 		access.getInstanceScope().getNode(JavaUI.ID_PLUGIN).addPreferenceChangeListener(fPreferenceListener);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionAssistant.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionAssistant.java
index 42456f8..c1705bf 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionAssistant.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionAssistant.java
@@ -13,12 +13,9 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.propertiesfileeditor;
 
-import org.eclipse.swt.widgets.Shell;
-
 import org.eclipse.core.runtime.Assert;
 
 import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IInformationControl;
 import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.quickassist.QuickAssistAssistant;
 
@@ -51,12 +48,7 @@
 	}
 
 	private IInformationControlCreator getInformationControlCreator() {
-		return new IInformationControlCreator() {
-			@Override
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString());
-			}
-		};
+		return parent -> new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString());
 	}
 
 	public IEditorPart getEditor() {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileEditor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileEditor.java
index 81a1a06..5b031d3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileEditor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileEditor.java
@@ -108,12 +108,9 @@
 		setInsertMode(INSERT);
 
 		// Need to listen on Editors UI preference store because JDT disables this functionality in its preferences.
-		fPropertyChangeListener= new IPropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent event) {
-				if (AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SPACES_FOR_TABS.equals(event.getProperty()))
-					handlePreferenceStoreChanged(event);
-			}
+		fPropertyChangeListener= event -> {
+			if (AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SPACES_FOR_TABS.equals(event.getProperty()))
+				handlePreferenceStoreChanged(event);
 		};
 		EditorsUI.getPreferenceStore().addPropertyChangeListener(fPropertyChangeListener);
 	}
@@ -219,13 +216,7 @@
 	@Override
 	public <T> T getAdapter(Class<T> adapter) {
 		if (adapter == IShowInTargetList.class) {
-			return (T) new IShowInTargetList() {
-				@Override
-				public String[] getShowInTargetIds() {
-					return new String[] { JavaUI.ID_PACKAGES };
-				}
-
-			};
+			return (T) (IShowInTargetList) () -> new String[] { JavaUI.ID_PACKAGES };
 		}
 		return super.getAdapter(adapter);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
index 3edd45a..5651f00 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
@@ -19,8 +19,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.swt.widgets.Shell;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.Platform;
@@ -32,7 +30,6 @@
 import org.eclipse.jface.text.DefaultInformationControl;
 import org.eclipse.jface.text.IAutoEditStrategy;
 import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IInformationControl;
 import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.ITextDoubleClickStrategy;
 import org.eclipse.jface.text.ITextHover;
@@ -317,12 +314,7 @@
 	 */
 	@Override
 	public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer) {
-		return new IInformationControlCreator() {
-			@Override
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString());
-			}
-		};
+		return parent -> new DefaultInformationControl(parent, JavaPlugin.getAdditionalInfoAffordanceString());
 	}
 
 	/*
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlink.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlink.java
index fe921ee..23648f5 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlink.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlink.java
@@ -17,7 +17,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Comparator;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -28,7 +27,6 @@
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.PlatformObject;
@@ -44,7 +42,6 @@
 import org.eclipse.core.filebuffers.LocationKind;
 
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.window.Window;
@@ -346,12 +343,7 @@
 
 		TwoPaneElementSelector dialog= new TwoPaneElementSelector(fShell, labelProvider, new WorkbenchLabelProvider());
 		dialog.setLowerListLabel(PropertiesFileEditorMessages.OpenAction_SelectionDialog_details);
-		dialog.setLowerListComparator(new Comparator<Object>() {
-			@Override
-			public int compare(Object o1, Object o2) {
-				return 0; // don't sort
-			}
-		});
+		dialog.setLowerListComparator((o1, o2) -> 0);
 		dialog.setTitle(PropertiesFileEditorMessages.OpenAction_SelectionDialog_title);
 		dialog.setMessage(PropertiesFileEditorMessages.OpenAction_SelectionDialog_message);
 		dialog.setElements(keyReferences);
@@ -403,15 +395,7 @@
 		fShell.getDisplay().beep();
 		final IEditorStatusLine statusLine= fEditor.getAdapter(IEditorStatusLine.class);
 		if (statusLine != null) {
-			fShell.getDisplay().asyncExec(new Runnable() {
-				/*
-				 * @see java.lang.Runnable#run()
-				 */
-				@Override
-				public void run() {
-					statusLine.setMessage(true, message, null);
-				}
-			});
+			fShell.getDisplay().asyncExec(() -> statusLine.setMessage(true, message, null));
 		}
 	}
 
@@ -445,63 +429,60 @@
 		final List<KeyReference> result= new ArrayList<>(5);
 		try {
 			fEditor.getEditorSite().getWorkbenchWindow().getWorkbench().getProgressService().busyCursorWhile(
-				new IRunnableWithProgress() {
-						@Override
-						public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-							if (monitor == null)
-								monitor= new NullProgressMonitor();
+				monitor -> {
+					if (monitor == null)
+						monitor= new NullProgressMonitor();
 
-							monitor.beginTask("", 5); //$NON-NLS-1$
+					monitor.beginTask("", 5); //$NON-NLS-1$
+					try {
+						// XXX: This is a hack to improve the accuracy of matches, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=81140
+						boolean useDoubleQuotedKey= useDoubleQuotedKey();
+						if (useDoubleQuotedKey) {
+							SearchPattern pattern= SearchPattern.createPattern(key, IJavaSearchConstants.FIELD, IJavaSearchConstants.REFERENCES, SearchPattern.R_PATTERN_MATCH
+									| SearchPattern.R_CASE_SENSITIVE);
+							if (pattern == null)
+								return;
 							try {
-								// XXX: This is a hack to improve the accuracy of matches, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=81140
-								boolean useDoubleQuotedKey= useDoubleQuotedKey();
-								if (useDoubleQuotedKey) {
-									SearchPattern pattern= SearchPattern.createPattern(key, IJavaSearchConstants.FIELD, IJavaSearchConstants.REFERENCES, SearchPattern.R_PATTERN_MATCH
-											| SearchPattern.R_CASE_SENSITIVE);
-									if (pattern == null)
-										return;
-									try {
-										new SearchEngine().search(pattern, SearchUtils.getDefaultSearchParticipants(), SearchEngine.createWorkspaceScope(), new SearchRequestor() {
-											@Override
-											public void acceptSearchMatch(SearchMatch match) throws CoreException {
-												IResource resource= match.getResource();
-												if (resource != null)
-													result.add(new KeyReference(resource, (IJavaElement) match.getElement(), match.getOffset(), match.getLength(), fIsFileEditorInput));
-											}
-										}, new SubProgressMonitor(monitor, 1));
-									} catch (CoreException e) {
-										throw new InvocationTargetException(e);
+								new SearchEngine().search(pattern, SearchUtils.getDefaultSearchParticipants(), SearchEngine.createWorkspaceScope(), new SearchRequestor() {
+									@Override
+									public void acceptSearchMatch(SearchMatch match) throws CoreException {
+										IResource resource= match.getResource();
+										if (resource != null)
+											result.add(new KeyReference(resource, (IJavaElement) match.getElement(), match.getOffset(), match.getLength(), fIsFileEditorInput));
 									}
-								}
-								if (result.isEmpty()) {
-									//maybe not an eclipse style NLS string
-									String searchString;
-									if (useDoubleQuotedKey) {
-										StringBuilder buf= new StringBuilder("\""); //$NON-NLS-1$
-										buf.append(key);
-										buf.append('"');
-										searchString= buf.toString();
-									} else
-										searchString= key;
-									ResultCollector collector= new ResultCollector(result, useDoubleQuotedKey);
-									TextSearchEngine engine= TextSearchEngine.create();
-									Pattern searchPattern= PatternConstructor.createPattern(searchString, true, false);
-
-									/* <p>
-									 * XXX: This does not work for properties files coming from a JAR.
-									 * For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=23341
-									 * </p>
-									*/
-									if (fStorage instanceof IResource) {
-										engine.search(createScope(((IResource)fStorage).getProject()), collector, searchPattern, new SubProgressMonitor(monitor, 4));
-									}
-								} else {
-									monitor.worked(1);
-								}
-							} finally {
-								monitor.done();
+								}, new SubProgressMonitor(monitor, 1));
+							} catch (CoreException e) {
+								throw new InvocationTargetException(e);
 							}
 						}
+						if (result.isEmpty()) {
+							//maybe not an eclipse style NLS string
+							String searchString;
+							if (useDoubleQuotedKey) {
+								StringBuilder buf= new StringBuilder("\""); //$NON-NLS-1$
+								buf.append(key);
+								buf.append('"');
+								searchString= buf.toString();
+							} else
+								searchString= key;
+							ResultCollector collector= new ResultCollector(result, useDoubleQuotedKey);
+							TextSearchEngine engine= TextSearchEngine.create();
+							Pattern searchPattern= PatternConstructor.createPattern(searchString, true, false);
+
+							/* <p>
+							 * XXX: This does not work for properties files coming from a JAR.
+							 * For details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=23341
+							 * </p>
+							*/
+							if (fStorage instanceof IResource) {
+								engine.search(createScope(((IResource)fStorage).getProject()), collector, searchPattern, new SubProgressMonitor(monitor, 4));
+							}
+						} else {
+							monitor.worked(1);
+						}
+					} finally {
+						monitor.done();
+					}
 				}
 			);
 		} catch (InvocationTargetException ex) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlinkDetector.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlinkDetector.java
index a9da9e3..b20cc19 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlinkDetector.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertyKeyHyperlinkDetector.java
@@ -176,15 +176,7 @@
 		display.beep();
 		final IEditorStatusLine statusLine= textEditor.getAdapter(IEditorStatusLine.class);
 		if (statusLine != null) {
-			display.asyncExec(new Runnable() {
-				/*
-				 * @see java.lang.Runnable#run()
-				 */
-				@Override
-				public void run() {
-					statusLine.setMessage(true, message, null);
-				}
-			});
+			display.asyncExec(() -> statusLine.setMessage(true, message, null));
 		}
 	}
 }