Bug 478941 - Use lambdas in org.eclipse.e4.ui.workbench.renderers.swt

Change-Id: Ia5e100a7dc148fe0d426c5be316e2601278cf031
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/internal/workbench/renderers/swt/AbstractTableInformationControl.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/internal/workbench/renderers/swt/AbstractTableInformationControl.java
index 8660ac7..64dac13 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/internal/workbench/renderers/swt/AbstractTableInformationControl.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/internal/workbench/renderers/swt/AbstractTableInformationControl.java
@@ -22,16 +22,12 @@
 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.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.MouseMoveListener;
 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.graphics.Color;
 import org.eclipse.swt.graphics.FontMetrics;
 import org.eclipse.swt.graphics.GC;
@@ -270,40 +266,37 @@
 			}
 		});
 
-		fShell.addTraverseListener(new TraverseListener() {
-			@Override
-			public void keyTraversed(TraverseEvent e) {
-				switch (e.detail) {
-				case SWT.TRAVERSE_PAGE_NEXT:
-					e.detail = SWT.TRAVERSE_NONE;
-					e.doit = true;
-					{
-						int n = table.getItemCount();
-						if (n == 0)
-							return;
+		fShell.addTraverseListener(e -> {
+			switch (e.detail) {
+			case SWT.TRAVERSE_PAGE_NEXT:
+				e.detail = SWT.TRAVERSE_NONE;
+				e.doit = true;
+				{
+					int n1 = table.getItemCount();
+					if (n1 == 0)
+						return;
 
-						int i = table.getSelectionIndex() + 1;
-						if (i >= n)
-							i = 0;
-						table.setSelection(i);
-					}
-					break;
-
-				case SWT.TRAVERSE_PAGE_PREVIOUS:
-					e.detail = SWT.TRAVERSE_NONE;
-					e.doit = true;
-					{
-						int n = table.getItemCount();
-						if (n == 0)
-							return;
-
-						int i = table.getSelectionIndex() - 1;
-						if (i < 0)
-							i = n - 1;
-						table.setSelection(i);
-					}
-					break;
+					int i1 = table.getSelectionIndex() + 1;
+					if (i1 >= n1)
+						i1 = 0;
+					table.setSelection(i1);
 				}
+				break;
+
+			case SWT.TRAVERSE_PAGE_PREVIOUS:
+				e.detail = SWT.TRAVERSE_NONE;
+				e.doit = true;
+				{
+					int n2 = table.getItemCount();
+					if (n2 == 0)
+						return;
+
+					int i2 = table.getSelectionIndex() - 1;
+					if (i2 < 0)
+						i2 = n2 - 1;
+					table.setSelection(i2);
+				}
+				break;
 			}
 		});
 
@@ -397,12 +390,9 @@
 		fFilterText.setMessage(WorkbenchSWTMessages.FilteredTree_FilterMessage);
 		fFilterText.setText(""); //$NON-NLS-1$
 
-		fFilterText.addModifyListener(new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				String text = ((Text) e.widget).getText();
-				setMatcherString(text);
-			}
+		fFilterText.addModifyListener(e -> {
+			String text = ((Text) e.widget).getText();
+			setMatcherString(text);
 		});
 	}
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AbstractContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AbstractContributionItem.java
index c40bc6f..508f1ae 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AbstractContributionItem.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AbstractContributionItem.java
@@ -44,8 +44,6 @@
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.resource.LocalResourceManager;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
@@ -93,12 +91,7 @@
 
 	private ISWTResourceUtilities resUtils = null;
 
-	protected IMenuListener menuListener = new IMenuListener() {
-		@Override
-		public void menuAboutToShow(IMenuManager manager) {
-			update(null);
-		}
-	};
+	protected IMenuListener menuListener = manager -> update(null);
 
 	/**
 	 * Flag to ensure that an error during updates are only logged once to
@@ -378,13 +371,10 @@
 				final IMenuCreator creator = (IMenuCreator) obj;
 				final Menu menu = creator.getMenu(toolItem.getParent().getShell());
 				if (menu != null) {
-					toolItem.addDisposeListener(new DisposeListener() {
-						@Override
-						public void widgetDisposed(DisposeEvent e) {
-							if (menu != null && !menu.isDisposed()) {
-								creator.dispose();
-								mmenu.setWidget(null);
-							}
+					toolItem.addDisposeListener(e -> {
+						if (menu != null && !menu.isDisposed()) {
+							creator.dispose();
+							mmenu.setWidget(null);
 						}
 					});
 					menu.setData(AbstractPartRenderer.OWNING_ME, menu);
@@ -469,23 +459,20 @@
 
 	protected Listener getItemListener() {
 		if (menuItemListener == null) {
-			menuItemListener = new Listener() {
-				@Override
-				public void handleEvent(Event event) {
-					switch (event.type) {
-					case SWT.Dispose:
-						handleWidgetDispose(event);
-						break;
-					case SWT.DefaultSelection:
-					case SWT.Selection:
-						if (event.widget != null) {
-							handleWidgetSelection(event);
-						}
-						break;
-					case SWT.Help:
-						handleHelpRequest();
-						break;
+			menuItemListener = event -> {
+				switch (event.type) {
+				case SWT.Dispose:
+					handleWidgetDispose(event);
+					break;
+				case SWT.DefaultSelection:
+				case SWT.Selection:
+					if (event.widget != null) {
+						handleWidgetSelection(event);
 					}
+					break;
+				case SWT.Help:
+					handleHelpRequest();
+					break;
 				}
 			};
 		}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AreaRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AreaRenderer.java
index cec6c64..e039f8c 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AreaRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/AreaRenderer.java
@@ -41,33 +41,30 @@
 	@Inject
 	private IEventBroker eventBroker;
 
-	private EventHandler itemUpdater = new EventHandler() {
-		@Override
-		public void handleEvent(Event event) {
-			// Ensure that this event is for a MArea
-			if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MArea))
-				return;
+	private EventHandler itemUpdater = event -> {
+		// Ensure that this event is for a MArea
+		if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MArea))
+			return;
 
-			MArea areaModel = (MArea) event
-					.getProperty(UIEvents.EventTags.ELEMENT);
-			CTabFolder ctf = (CTabFolder) areaModel.getWidget();
-			CTabItem areaItem = ctf.getItem(0);
+		MArea areaModel = (MArea) event
+				.getProperty(UIEvents.EventTags.ELEMENT);
+		CTabFolder ctf = (CTabFolder) areaModel.getWidget();
+		CTabItem areaItem = ctf.getItem(0);
 
-			// No widget == nothing to update
-			if (areaItem == null)
-				return;
+		// No widget == nothing to update
+		if (areaItem == null)
+			return;
 
-			String attName = (String) event
-					.getProperty(UIEvents.EventTags.ATTNAME);
-			if (UIEvents.UILabel.LABEL.equals(attName)
-					|| UIEvents.UILabel.LOCALIZED_LABEL.equals(attName)) {
-				areaItem.setText(areaModel.getLocalizedLabel());
-			} else if (UIEvents.UILabel.ICONURI.equals(attName)) {
-				areaItem.setImage(getImage(areaModel));
-			} else if (UIEvents.UILabel.TOOLTIP.equals(attName)
-					|| UIEvents.UILabel.LOCALIZED_TOOLTIP.equals(attName)) {
-				areaItem.setToolTipText(areaModel.getLocalizedTooltip());
-			}
+		String attName = (String) event
+				.getProperty(UIEvents.EventTags.ATTNAME);
+		if (UIEvents.UILabel.LABEL.equals(attName)
+				|| UIEvents.UILabel.LOCALIZED_LABEL.equals(attName)) {
+			areaItem.setText(areaModel.getLocalizedLabel());
+		} else if (UIEvents.UILabel.ICONURI.equals(attName)) {
+			areaItem.setImage(getImage(areaModel));
+		} else if (UIEvents.UILabel.TOOLTIP.equals(attName)
+				|| UIEvents.UILabel.LOCALIZED_TOOLTIP.equals(attName)) {
+			areaItem.setToolTipText(areaModel.getLocalizedTooltip());
 		}
 	};
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java
index 956ad41..a4657b2 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java
@@ -30,7 +30,6 @@
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Listener;
@@ -51,19 +50,16 @@
 
 	private MPart partToActivate;
 
-	private Listener activationListener = new Listener() {
-		@Override
-		public void handleEvent(Event event) {
-			// we only want to activate the part if the activated widget is
-			// actually bound to a model element
-			MPart part = (MPart) event.widget.getData(OWNING_ME);
-			if (part != null) {
-				try {
-					partToActivate = part;
-					activate(partToActivate);
-				} finally {
-					partToActivate = null;
-				}
+	private Listener activationListener = event -> {
+		// we only want to activate the part if the activated widget is
+		// actually bound to a model element
+		MPart part = (MPart) event.widget.getData(OWNING_ME);
+		if (part != null) {
+			try {
+				partToActivate = part;
+				activate(partToActivate);
+			} finally {
+				partToActivate = null;
 			}
 		}
 	};
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DynamicContributionContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DynamicContributionContributionItem.java
index efbbea2..0ec3a0c 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DynamicContributionContributionItem.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DynamicContributionContributionItem.java
@@ -24,12 +24,7 @@
 class DynamicContributionContributionItem extends ContributionItem {
 	private MDynamicMenuContribution model;
 
-	private IMenuListener menuListener = new IMenuListener() {
-		@Override
-		public void menuAboutToShow(IMenuManager manager) {
-			manager.markDirty();
-		}
-	};
+	private IMenuListener menuListener = manager -> manager.markDirty();
 
 	/**
 	 * Create the item and associated model;
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
index c4755b0..103aa67 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
@@ -89,12 +89,7 @@
 
 	private Runnable unreferenceRunnable;
 
-	private IStateListener stateListener = new IStateListener() {
-		@Override
-		public void handleStateChange(State state, Object oldValue) {
-			updateState();
-		}
-	};
+	private IStateListener stateListener = (state, oldValue) -> updateState();
 
 	private IEclipseContext infoContext;
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java
index b668654..ecf17fa 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java
@@ -33,7 +33,6 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
-import org.osgi.service.event.Event;
 import org.osgi.service.event.EventHandler;
 
 /**
@@ -47,29 +46,26 @@
  *
  */
 public abstract class LazyStackRenderer extends SWTPartRenderer {
-	private EventHandler lazyLoader = new EventHandler() {
-		@Override
-		public void handleEvent(Event event) {
-			Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
+	private EventHandler lazyLoader = event -> {
+		Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
 
-			if (!(element instanceof MGenericStack<?>))
-				return;
+		if (!(element instanceof MGenericStack<?>))
+			return;
 
-			@SuppressWarnings("unchecked")
-			MGenericStack<MUIElement> stack = (MGenericStack<MUIElement>) element;
-			if (stack.getRenderer() != LazyStackRenderer.this)
-				return;
-			LazyStackRenderer lsr = (LazyStackRenderer) stack.getRenderer();
+		@SuppressWarnings("unchecked")
+		MGenericStack<MUIElement> stack = (MGenericStack<MUIElement>) element;
+		if (stack.getRenderer() != LazyStackRenderer.this)
+			return;
+		LazyStackRenderer lsr = (LazyStackRenderer) stack.getRenderer();
 
-			// Gather up the elements that are being 'hidden' by this change
-			MUIElement oldSel = (MUIElement) event.getProperty(UIEvents.EventTags.OLD_VALUE);
-			if (oldSel != null) {
-				hideElementRecursive(oldSel);
-			}
-
-			if (stack.getSelectedElement() != null)
-				lsr.showTab(stack.getSelectedElement());
+		// Gather up the elements that are being 'hidden' by this change
+		MUIElement oldSel = (MUIElement) event.getProperty(UIEvents.EventTags.OLD_VALUE);
+		if (oldSel != null) {
+			hideElementRecursive(oldSel);
 		}
+
+		if (stack.getSelectedElement() != null)
+			lsr.showTab(stack.getSelectedElement());
 	};
 
 	public void init(IEventBroker eventBroker) {
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerHideProcessor.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerHideProcessor.java
index 687f147..fb46c58 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerHideProcessor.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerHideProcessor.java
@@ -88,34 +88,31 @@
 		}
 
 		if (!menu.isDisposed()) {
-			menu.getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					for (Entry<MDynamicMenuContribution, ArrayList<MMenuElement>> entry : toBeHidden.entrySet()) {
-						MDynamicMenuContribution currentMenuElement = entry.getKey();
-						Object contribution = currentMenuElement.getObject();
-						IEclipseContext dynamicMenuContext = EclipseContextFactory.create();
+			menu.getDisplay().asyncExec(() -> {
+				for (Entry<MDynamicMenuContribution, ArrayList<MMenuElement>> entry : toBeHidden.entrySet()) {
+					MDynamicMenuContribution currentMenuElement = entry.getKey();
+					Object contribution = currentMenuElement.getObject();
+					IEclipseContext dynamicMenuContext = EclipseContextFactory.create();
 
-						ArrayList<MMenuElement> mel = entry.getValue();
+					ArrayList<MMenuElement> mel = entry.getValue();
 
-						dynamicMenuContext.set(List.class, mel);
-						dynamicMenuContext.set(MDynamicMenuContribution.class, currentMenuElement);
-						IEclipseContext parentContext = modelService.getContainingContext(currentMenuElement);
-						ContextInjectionFactory.invoke(contribution, AboutToHide.class, parentContext,
-								dynamicMenuContext, null);
-						dynamicMenuContext.dispose();
-						// remove existing entries for this dynamic
-						// contribution item if there are any
-						if (mel != null && mel.size() > 0) {
-							renderer.removeDynamicMenuContributions(menuManager, menuModel, mel);
-						}
+					dynamicMenuContext.set(List.class, mel);
+					dynamicMenuContext.set(MDynamicMenuContribution.class, currentMenuElement);
+					IEclipseContext parentContext = modelService.getContainingContext(currentMenuElement);
+					ContextInjectionFactory.invoke(contribution, AboutToHide.class, parentContext,
+							dynamicMenuContext, null);
+					dynamicMenuContext.dispose();
+					// remove existing entries for this dynamic
+					// contribution item if there are any
+					if (mel != null && mel.size() > 0) {
+						renderer.removeDynamicMenuContributions(menuManager, menuModel, mel);
+					}
 
-						// make existing entries for this dynamic contribution
-						// item invisible if there are any
-						if (mel != null && mel.size() > 0) {
-							for (MMenuElement item : mel) {
-								item.setVisible(false);
-							}
+					// make existing entries for this dynamic contribution
+					// item invisible if there are any
+					if (mel != null && mel.size() > 0) {
+						for (MMenuElement item : mel) {
+							item.setVisible(false);
 						}
 					}
 				}
@@ -134,14 +131,11 @@
 				.get(MenuManagerRendererFilter.TMP_ORIGINAL_CONTEXT);
 		popupContext.remove(MenuManagerRendererFilter.TMP_ORIGINAL_CONTEXT);
 		if (!menu.isDisposed()) {
-			menu.getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (originalChild == null) {
-						popupContext.deactivate();
-					} else {
-						originalChild.activate();
-					}
+			menu.getDisplay().asyncExec(() -> {
+				if (originalChild == null) {
+					popupContext.deactivate();
+				} else {
+					originalChild.activate();
 				}
 			});
 		}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
index 85b926e..2fb4eff 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
@@ -79,8 +79,6 @@
 import org.eclipse.jface.internal.MenuManagerEventHelper;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Decorations;
 import org.eclipse.swt.widgets.Display;
@@ -279,18 +277,15 @@
 	}
 
 
-	private EventHandler selectionUpdater = new EventHandler() {
-		@Override
-		public void handleEvent(Event event) {
-			// Ensure that this event is for a MToolItem
-			if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MMenuItem))
-				return;
+	private EventHandler selectionUpdater = event -> {
+		// Ensure that this event is for a MToolItem
+		if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MMenuItem))
+			return;
 
-			MMenuItem itemModel = (MMenuItem) event.getProperty(UIEvents.EventTags.ELEMENT);
-			IContributionItem ici = getContribution(itemModel);
-			if (ici != null) {
-				ici.update();
-			}
+		MMenuItem itemModel = (MMenuItem) event.getProperty(UIEvents.EventTags.ELEMENT);
+		IContributionItem ici = getContribution(itemModel);
+		if (ici != null) {
+			ici.update();
 		}
 	};
 
@@ -412,14 +407,11 @@
 			processContributions(menuModel, menuModel.getElementId(), menuBar, menuModel instanceof MPopupMenu);
 		}
 		if (newMenu != null) {
-			newMenu.addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					cleanUp(menuModel);
-					MenuManager manager = getManager(menuModel);
-					if (manager != null) {
-						manager.markDirty();
-					}
+			newMenu.addDisposeListener(e -> {
+				cleanUp(menuModel);
+				MenuManager manager = getManager(menuModel);
+				if (manager != null) {
+					manager.markDirty();
 				}
 			});
 		}
@@ -1194,18 +1186,14 @@
 			if (this.mgrToUpdate.isEmpty()) {
 				Display display = context.get(Display.class);
 				if (display != null && !display.isDisposed()) {
-					display.timerExec(100, new Runnable() {
-
-						@Override
-						public void run() {
-							Collection<IContributionManager> toUpdate = new LinkedHashSet<>();
-							synchronized (mgrToUpdate) {
-								toUpdate.addAll(mgrToUpdate);
-								mgrToUpdate.clear();
-							}
-							for (IContributionManager mgr : toUpdate) {
-								mgr.update(false);
-							}
+					display.timerExec(100, () -> {
+						Collection<IContributionManager> toUpdate = new LinkedHashSet<>();
+						synchronized (mgrToUpdate) {
+							toUpdate.addAll(mgrToUpdate);
+							mgrToUpdate.clear();
+						}
+						for (IContributionManager mgr1 : toUpdate) {
+							mgr1.update(false);
 						}
 					});
 				}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerServiceFilter.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerServiceFilter.java
index b80f913..7d80116 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerServiceFilter.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerServiceFilter.java
@@ -151,14 +151,11 @@
 				.get(TMP_ORIGINAL_CONTEXT);
 		popupContext.remove(TMP_ORIGINAL_CONTEXT);
 		if (!menu.isDisposed()) {
-			menu.getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (originalChild == null) {
-						popupContext.deactivate();
-					} else {
-						originalChild.activate();
-					}
+			menu.getDisplay().asyncExec(() -> {
+				if (originalChild == null) {
+					popupContext.deactivate();
+				} else {
+					originalChild.activate();
 				}
 			});
 		}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SWTPartRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SWTPartRenderer.java
index 5eabc3c..eccc063 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SWTPartRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SWTPartRenderer.java
@@ -34,8 +34,6 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.swt.accessibility.AccessibleAdapter;
 import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
@@ -130,14 +128,11 @@
 
 			// Ensure that disposed widgets are unbound form the model
 			Widget swtWidget = (Widget) widget;
-			swtWidget.addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					MUIElement element = (MUIElement) e.widget
-							.getData(OWNING_ME);
-					if (element != null)
-						unbindWidget(element);
-				}
+			swtWidget.addDisposeListener(e -> {
+				MUIElement element = (MUIElement) e.widget
+						.getData(OWNING_ME);
+				if (element != null)
+					unbindWidget(element);
 			});
 		}
 
@@ -329,12 +324,9 @@
 				.getName());
 		pinImage = getImageFromURI(pinURI);
 
-		Display.getCurrent().disposeExec(new Runnable() {
-			@Override
-			public void run() {
-				for (Image image : imageMap.values()) {
-					image.dispose();
-				}
+		Display.getCurrent().disposeExec(() -> {
+			for (Image image : imageMap.values()) {
+				image.dispose();
 			}
 		});
 	}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
index 227dcdf..a41c4ba 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashRenderer.java
@@ -20,8 +20,6 @@
 import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement;
 import org.eclipse.e4.ui.workbench.UIEvents;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Layout;
@@ -94,12 +92,9 @@
 
 			// If my layout's container gets disposed 'unbind' the sash elements
 			if (parent instanceof Composite) {
-				((Composite) parent).addDisposeListener(new DisposeListener() {
-					@Override
-					public void widgetDisposed(DisposeEvent e) {
-						element.setWidget(null);
-						element.setRenderer(null);
-					}
+				((Composite) parent).addDisposeListener(e -> {
+					element.setWidget(null);
+					element.setRenderer(null);
 				});
 			}
 			return newRect;
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
index b6d38a0..642eb6a 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
@@ -73,18 +73,12 @@
 import org.eclipse.swt.custom.CTabItem;
 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.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.MouseListener;
 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.graphics.Color;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
@@ -96,7 +90,6 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.Monitor;
@@ -995,22 +988,19 @@
 		final CTabFolder tabFolder = (CTabFolder) me.getWidget();
 
 		// Handle traverse events for accessibility
-		tabFolder.addTraverseListener(new TraverseListener() {
-			@Override
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ARROW_NEXT || e.detail == SWT.TRAVERSE_ARROW_PREVIOUS) {
-					me.getTransientData().put(INHIBIT_FOCUS, true);
-				} else if (e.detail == SWT.TRAVERSE_RETURN) {
-					me.getTransientData().remove(INHIBIT_FOCUS);
-					CTabItem cti = tabFolder.getSelection();
-					if (cti != null) {
-						MUIElement stackElement = (MUIElement) cti.getData(OWNING_ME);
-						if (stackElement instanceof MPlaceholder)
-							stackElement = ((MPlaceholder) stackElement).getRef();
-						if ((stackElement instanceof MPart) && (tabFolder.isFocusControl())) {
-							MPart thePart = (MPart) stackElement;
-							renderer.focusGui(thePart);
-						}
+		tabFolder.addTraverseListener(e -> {
+			if (e.detail == SWT.TRAVERSE_ARROW_NEXT || e.detail == SWT.TRAVERSE_ARROW_PREVIOUS) {
+				me.getTransientData().put(INHIBIT_FOCUS, true);
+			} else if (e.detail == SWT.TRAVERSE_RETURN) {
+				me.getTransientData().remove(INHIBIT_FOCUS);
+				CTabItem cti = tabFolder.getSelection();
+				if (cti != null) {
+					MUIElement stackElement = (MUIElement) cti.getData(OWNING_ME);
+					if (stackElement instanceof MPlaceholder)
+						stackElement = ((MPlaceholder) stackElement).getRef();
+					if ((stackElement instanceof MPart) && (tabFolder.isFocusControl())) {
+						MPart thePart = (MPart) stackElement;
+						renderer.focusGui(thePart);
 					}
 				}
 			}
@@ -1018,28 +1008,25 @@
 
 		// Detect activation...picks up cases where the user clicks on the
 		// (already active) tab
-		tabFolder.addListener(SWT.Activate, new org.eclipse.swt.widgets.Listener() {
-			@Override
-			public void handleEvent(org.eclipse.swt.widgets.Event event) {
-				if (event.detail == SWT.MouseDown) {
-					CTabFolder tabFolder = (CTabFolder) event.widget;
-					if (tabFolder.getSelection() == null)
-						return;
+		tabFolder.addListener(SWT.Activate, event -> {
+			if (event.detail == SWT.MouseDown) {
+				CTabFolder tabFolder1 = (CTabFolder) event.widget;
+				if (tabFolder1.getSelection() == null)
+					return;
 
-					// get the item under the cursor
-					Point cp = event.display.getCursorLocation();
-					cp = event.display.map(null, tabFolder, cp);
-					CTabItem overItem = tabFolder.getItem(cp);
+				// get the item under the cursor
+				Point cp = event.display.getCursorLocation();
+				cp = event.display.map(null, tabFolder1, cp);
+				CTabItem overItem = tabFolder1.getItem(cp);
 
-					// If the item we're over is *not* the current one do
-					// nothing (it'll get activated when the tab changes)
-					if (overItem == null || overItem == tabFolder.getSelection()) {
-						MUIElement uiElement = (MUIElement) tabFolder.getSelection().getData(OWNING_ME);
-						if (uiElement instanceof MPlaceholder)
-							uiElement = ((MPlaceholder) uiElement).getRef();
-						if (uiElement instanceof MPart)
-							activate((MPart) uiElement);
-					}
+				// If the item we're over is *not* the current one do
+				// nothing (it'll get activated when the tab changes)
+				if (overItem == null || overItem == tabFolder1.getSelection()) {
+					MUIElement uiElement = (MUIElement) tabFolder1.getSelection().getData(OWNING_ME);
+					if (uiElement instanceof MPlaceholder)
+						uiElement = ((MPlaceholder) uiElement).getRef();
+					if (uiElement instanceof MPart)
+						activate((MPart) uiElement);
 				}
 			}
 		});
@@ -1128,27 +1115,24 @@
 		};
 		tabFolder.addCTabFolder2Listener(closeListener);
 
-		tabFolder.addMenuDetectListener(new MenuDetectListener() {
-			@Override
-			public void menuDetected(MenuDetectEvent e) {
-				Point absolutePoint = new Point(e.x, e.y);
-				Point relativePoint = tabFolder.getDisplay().map(null, tabFolder, absolutePoint);
-				CTabItem eventTabItem = tabFolder.getItem(relativePoint);
+		tabFolder.addMenuDetectListener(e -> {
+			Point absolutePoint = new Point(e.x, e.y);
+			Point relativePoint = tabFolder.getDisplay().map(null, tabFolder, absolutePoint);
+			CTabItem eventTabItem = tabFolder.getItem(relativePoint);
 
-				// If click happened in empty area, still show the menu
-				if (eventTabItem == null) {
-					Rectangle clientArea = tabFolder.getClientArea();
-					if (!clientArea.contains(relativePoint)) {
-						eventTabItem = tabFolder.getSelection();
-					}
+			// If click happened in empty area, still show the menu
+			if (eventTabItem == null) {
+				Rectangle clientArea = tabFolder.getClientArea();
+				if (!clientArea.contains(relativePoint)) {
+					eventTabItem = tabFolder.getSelection();
 				}
+			}
 
-				if (eventTabItem != null) {
-					MUIElement uiElement = (MUIElement) eventTabItem.getData(AbstractPartRenderer.OWNING_ME);
-					MPart tabPart = (MPart) ((uiElement instanceof MPart) ? uiElement
-							: ((MPlaceholder) uiElement).getRef());
-					openMenuFor(tabPart, tabFolder, absolutePoint);
-				}
+			if (eventTabItem != null) {
+				MUIElement uiElement = (MUIElement) eventTabItem.getData(AbstractPartRenderer.OWNING_ME);
+				MPart tabPart = (MPart) ((uiElement instanceof MPart) ? uiElement
+						: ((MPlaceholder) uiElement).getRef());
+				openMenuFor(tabPart, tabFolder, absolutePoint);
 			}
 		});
 
@@ -1215,17 +1199,7 @@
 
 		editorList.setVisible(true);
 		editorList.setFocus();
-		editorList.getShell().addListener(SWT.Deactivate, new Listener() {
-			@Override
-			public void handleEvent(org.eclipse.swt.widgets.Event event) {
-				editorList.getShell().getDisplay().asyncExec(new Runnable() {
-					@Override
-					public void run() {
-						editorList.dispose();
-					}
-				});
-			}
-		});
+		editorList.getShell().addListener(SWT.Deactivate, event -> editorList.getShell().getDisplay().asyncExec(() -> editorList.dispose()));
 	}
 
 	private Point getChevronLocation(CTabFolder tabFolder) {
@@ -1338,12 +1312,9 @@
 		if (swtMenu == null)
 			return;
 
-		ctrl.addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				if (!swtMenu.isDisposed()) {
-					swtMenu.dispose();
-				}
+		ctrl.addDisposeListener(e -> {
+			if (!swtMenu.isDisposed()) {
+				swtMenu.dispose();
 			}
 		});
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
index 200173a..94d1805 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
@@ -70,8 +70,6 @@
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.ToolBar;
@@ -84,13 +82,7 @@
  */
 public class ToolBarManagerRenderer extends SWTPartRenderer {
 
-	private static final Selector ALL_SELECTOR = new Selector() {
-
-		@Override
-		public boolean select(MApplicationElement element) {
-			return true;
-		}
-	};
+	private static final Selector ALL_SELECTOR = element -> true;
 
 	/**	 */
 	public static final String POST_PROCESSING_FUNCTION = "ToolBarManagerRenderer.postProcess.func"; //$NON-NLS-1$
@@ -283,12 +275,7 @@
 			if (v == null || UIEvents.ALL_ELEMENT_ID.equals(v)) {
 				s = ALL_SELECTOR;
 			} else {
-				s = new Selector() {
-					@Override
-					public boolean select(MApplicationElement element) {
-						return v.equals(element.getElementId());
-					}
-				};
+				s = element -> v.equals(element.getElementId());
 			}
 		}
 
@@ -418,17 +405,14 @@
 		final Map<String, Object> transientData = toolbarModel.getTransientData();
 		if (!transientData.containsKey(DISPOSE_ADDED)) {
 			transientData.put(DISPOSE_ADDED, Boolean.TRUE);
-			control.addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					cleanUp(toolbarModel);
-					Object dispose = transientData.get(POST_PROCESSING_DISPOSE);
-					if (dispose instanceof Runnable) {
-						((Runnable) dispose).run();
-					}
-					transientData.remove(POST_PROCESSING_DISPOSE);
-					transientData.remove(DISPOSE_ADDED);
+			control.addDisposeListener(e -> {
+				cleanUp(toolbarModel);
+				Object dispose = transientData.get(POST_PROCESSING_DISPOSE);
+				if (dispose instanceof Runnable) {
+					((Runnable) dispose).run();
 				}
+				transientData.remove(POST_PROCESSING_DISPOSE);
+				transientData.remove(DISPOSE_ADDED);
 			});
 		}
 
@@ -477,13 +461,9 @@
 					}
 
 					record.updateVisibility(parentContext.getActiveLeaf());
-					runExternalCode(new Runnable() {
-
-						@Override
-						public void run() {
-							manager.update(false);
-							getUpdater().updateContributionItems(ALL_SELECTOR);
-						}
+					runExternalCode(() -> {
+						manager.update(false);
+						getUpdater().updateContributionItems(ALL_SELECTOR);
 					});
 					return true;
 				}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlContribution.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlContribution.java
index eec0938..bd4780e 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlContribution.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlContribution.java
@@ -21,8 +21,6 @@
 import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.jface.action.ControlContribution;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -58,13 +56,9 @@
 			final Object tcImpl = contribFactory.create(
 					model.getContributionURI(), parentContext, localContext);
 			model.setObject(tcImpl);
-			newComposite.addDisposeListener(new DisposeListener() {
-
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					ContextInjectionFactory.uninject(tcImpl, parentContext);
-					model.setObject(null);
-				}
+			newComposite.addDisposeListener(e -> {
+				ContextInjectionFactory.uninject(tcImpl, parentContext);
+				model.setObject(null);
 			});
 		}
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlRenderer.java
index 02b9f4b..848f4ac 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolControlRenderer.java
@@ -36,7 +36,6 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.ToolBar;
@@ -214,13 +213,8 @@
 		if (hideable) {
 			MenuItem hideItem = new MenuItem(toolControlMenu, SWT.NONE);
 			hideItem.setText(Messages.ToolBarManagerRenderer_MenuCloseText);
-			hideItem.addListener(SWT.Selection, new Listener() {
-				@Override
-				public void handleEvent(org.eclipse.swt.widgets.Event event) {
-					toolControl.getTags().add(
-							IPresentationEngine.HIDDEN_EXPLICITLY);
-				}
-			});
+			hideItem.addListener(SWT.Selection, event -> toolControl.getTags().add(
+					IPresentationEngine.HIDDEN_EXPLICITLY));
 
 			new MenuItem(toolControlMenu, SWT.SEPARATOR);
 		}
@@ -228,12 +222,7 @@
 		MenuItem restoreHiddenItems = new MenuItem(toolControlMenu, SWT.NONE);
 		restoreHiddenItems
 				.setText(Messages.ToolBarManagerRenderer_MenuRestoreText);
-		restoreHiddenItems.addListener(SWT.Selection, new Listener() {
-			@Override
-			public void handleEvent(org.eclipse.swt.widgets.Event event) {
-				removeHiddenTags(toolControl);
-			}
-		});
+		restoreHiddenItems.addListener(SWT.Selection, event -> removeHiddenTags(toolControl));
 		renderedCtrl.setMenu(toolControlMenu);
 
 	}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimBarRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimBarRenderer.java
index 115a40c..301edfb 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimBarRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimBarRenderer.java
@@ -29,8 +29,6 @@
 import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow;
 import org.eclipse.e4.ui.model.application.ui.menu.MTrimContribution;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Composite;
 
 /**
@@ -105,12 +103,7 @@
 			default:
 				return null;
 			}
-			trimComposite.addDisposeListener(new DisposeListener() {
-				@Override
-				public void widgetDisposed(DisposeEvent e) {
-					cleanUp(trimModel);
-				}
-			});
+			trimComposite.addDisposeListener(e -> cleanUp(trimModel));
 		} else {
 			trimComposite = new Composite(parentComp, SWT.NONE);
 			trimComposite.setLayout(new TrimBarLayout(true));
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimmedPartLayout.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimmedPartLayout.java
index 47a65e4..528480c 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimmedPartLayout.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/TrimmedPartLayout.java
@@ -11,8 +11,6 @@
 package org.eclipse.e4.ui.workbench.renderers.swt;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
@@ -190,48 +188,28 @@
 			if (top == null) {
 				top = new Composite(parent, SWT.NONE);
 				top.setLayout(new TrimBarLayout(true));
-				top.addDisposeListener(new DisposeListener() {
-					@Override
-					public void widgetDisposed(DisposeEvent e) {
-						top = null;
-					}
-				});
+				top.addDisposeListener(e -> top = null);
 			}
 			return top;
 		} else if (side == SWT.BOTTOM) {
 			if (bottom == null) {
 				bottom = new Composite(parent, SWT.NONE);
 				bottom.setLayout(new TrimBarLayout(true));
-				bottom.addDisposeListener(new DisposeListener() {
-					@Override
-					public void widgetDisposed(DisposeEvent e) {
-						bottom = null;
-					}
-				});
+				bottom.addDisposeListener(e -> bottom = null);
 			}
 			return bottom;
 		} else if (side == SWT.LEFT) {
 			if (left == null) {
 				left = new Composite(parent, SWT.NONE);
 				left.setLayout(new TrimBarLayout(false));
-				left.addDisposeListener(new DisposeListener() {
-					@Override
-					public void widgetDisposed(DisposeEvent e) {
-						left = null;
-					}
-				});
+				left.addDisposeListener(e -> left = null);
 			}
 			return left;
 		} else if (side == SWT.RIGHT) {
 			if (right == null) {
 				right = new Composite(parent, SWT.NONE);
 				right.setLayout(new TrimBarLayout(false));
-				right.addDisposeListener(new DisposeListener() {
-					@Override
-					public void widgetDisposed(DisposeEvent e) {
-						right = null;
-					}
-				});
+				right.addDisposeListener(e -> right = null);
 			}
 			return right;
 		}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
index 28c73c8..1308904 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
@@ -67,12 +67,8 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ControlEvent;
 import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.ShellAdapter;
 import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Image;
@@ -84,7 +80,6 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Monitor;
 import org.eclipse.swt.widgets.Shell;
@@ -392,12 +387,9 @@
 			}
 
 			// Prevent ESC from closing the DW
-			wbwShell.addTraverseListener(new TraverseListener() {
-				@Override
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_ESCAPE) {
-						e.doit = false;
-					}
+			wbwShell.addTraverseListener(e -> {
+				if (e.detail == SWT.TRAVERSE_ESCAPE) {
+					e.doit = false;
 				}
 			});
 		}
@@ -452,12 +444,7 @@
 		localContext.set(Shell.class, wbwShell);
 		localContext.set(E4Workbench.LOCAL_ACTIVE_SHELL, wbwShell);
 		setCloseHandler(wbwModel);
-		localContext.set(IShellProvider.class, new IShellProvider() {
-			@Override
-			public Shell getShell() {
-				return wbwShell;
-			}
-		});
+		localContext.set(IShellProvider.class, () -> wbwShell);
 		final PartServiceSaveHandler saveHandler = new PartServiceSaveHandler() {
 			@Override
 			public Save promptToSave(MPart dirtyPart) {
@@ -552,20 +539,12 @@
 		// no direct model parent, must be a detached window
 		if (window.getParent() == null) {
 			context.set(IWindowCloseHandler.class,
-					new IWindowCloseHandler() {
-						@Override
-						public boolean close(MWindow window) {
-							return closeDetachedWindow(window);
-						}
-					});
+					window1 -> closeDetachedWindow(window1));
 		} else {
 			context.set(IWindowCloseHandler.class,
-					new IWindowCloseHandler() {
-						@Override
-						public boolean close(MWindow window) {
-							EPartService partService = window.getContext().get(EPartService.class);
-							return partService.saveAll(true);
-						}
+					window1 -> {
+						EPartService partService = window1.getContext().get(EPartService.class);
+						return partService.saveAll(true);
 					});
 		}
 	}
@@ -640,30 +619,22 @@
 					}
 				}
 			});
-			shell.addListener(SWT.Activate, new Listener() {
-				@Override
-				public void handleEvent(org.eclipse.swt.widgets.Event event) {
-					MUIElement parentME = w.getParent();
-					if (parentME instanceof MApplication) {
-						MApplication app = (MApplication) parentME;
-						app.setSelectedElement(w);
+			shell.addListener(SWT.Activate, event -> {
+				MUIElement parentME = w.getParent();
+				if (parentME instanceof MApplication) {
+					MApplication app = (MApplication) parentME;
+					app.setSelectedElement(w);
+					w.getContext().activate();
+				} else if (parentME == null) {
+					parentME = modelService.getContainer(w);
+					if (parentME instanceof MContext) {
 						w.getContext().activate();
-					} else if (parentME == null) {
-						parentME = modelService.getContainer(w);
-						if (parentME instanceof MContext) {
-							w.getContext().activate();
-						}
 					}
-					updateNonFocusState(SWT.Activate, w);
 				}
+				updateNonFocusState(SWT.Activate, w);
 			});
 
-			shell.addListener(SWT.Deactivate, new Listener() {
-				@Override
-				public void handleEvent(org.eclipse.swt.widgets.Event event) {
-					updateNonFocusState(SWT.Deactivate, w);
-				}
-			});
+			shell.addListener(SWT.Deactivate, event -> updateNonFocusState(SWT.Deactivate, w));
 		}
 	}
 
@@ -788,19 +759,16 @@
 
 		// Capture the max/min state
 		final MUIElement disposeME = shellME;
-		shell.addDisposeListener(new DisposeListener() {
-			@Override
-			public void widgetDisposed(DisposeEvent e) {
-				Shell shell = (Shell) e.widget;
-				if (disposeME != null) {
-					disposeME.getTags().remove(ShellMinimizedTag);
-					disposeME.getTags().remove(ShellMaximizedTag);
-					if (shell.getMinimized()) {
-						disposeME.getTags().add(ShellMinimizedTag);
-					}
-					if (shell.getMaximized()) {
-						disposeME.getTags().add(ShellMaximizedTag);
-					}
+		shell.addDisposeListener(e -> {
+			Shell shell1 = (Shell) e.widget;
+			if (disposeME != null) {
+				disposeME.getTags().remove(ShellMinimizedTag);
+				disposeME.getTags().remove(ShellMaximizedTag);
+				if (shell1.getMinimized()) {
+					disposeME.getTags().add(ShellMinimizedTag);
+				}
+				if (shell1.getMaximized()) {
+					disposeME.getTags().add(ShellMaximizedTag);
 				}
 			}
 		});