[refactoring] Improve some code thanks to JavaSE-8.0

Change-Id: If0cb48804b274f430b6aa7b30750c242c366643e
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
index 140ae901..3786f5d 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFPageImpl.java
@@ -105,19 +105,16 @@
 			Boolean preconditionValid = EvalFactory.of(this.interpreter, this.variableManager).logIfInvalidType(Boolean.class)
 					.evaluate(preconditionExpression);
 			if (preconditionValid == null || preconditionValid.booleanValue()) {
-				IConsumer<Object> consumer = new IConsumer<Object>() {
-					@Override
-					public void apply(Object value) {
-						DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefGroupDescription.getDomainClass(), domainClassTester);
-						Iterable<Object> iterable = Util.asIterable(value, Object.class);
-						Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
-						for (Object object : objects) {
-							IVariableManager childVariableManager = EEFPageImpl.this.getVariableManager().createChild();
-							childVariableManager.put(EEFExpressionUtils.SELF, object);
-							EEFGroupImpl eefGroupImpl = new EEFGroupImpl(EEFPageImpl.this, eefGroupDescription, childVariableManager, interpreter);
-							eefGroups.add(eefGroupImpl);
-						}
-					}
+				IConsumer<Object> consumer = (value) -> {
+					DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefGroupDescription.getDomainClass(), domainClassTester);
+					Iterable<Object> iterable = Util.asIterable(value, Object.class);
+					Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
+					objects.forEach(object -> {
+						IVariableManager childVariableManager = EEFPageImpl.this.getVariableManager().createChild();
+						childVariableManager.put(EEFExpressionUtils.SELF, object);
+						EEFGroupImpl eefGroupImpl = new EEFGroupImpl(EEFPageImpl.this, eefGroupDescription, childVariableManager, interpreter);
+						this.eefGroups.add(eefGroupImpl);
+					});
 				};
 
 				Object self = this.variableManager.getVariables().get(EEFExpressionUtils.SELF);
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
index dd4c454..86ea39f 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/EEFViewImpl.java
@@ -104,25 +104,22 @@
 			Boolean preconditionValid = EvalFactory.of(this.interpreter, this.variableManager).logIfInvalidType(Boolean.class)
 					.evaluate(preconditionExpression);
 			if (preconditionValid == null || preconditionValid.booleanValue()) {
-				IConsumer<Object> consumer = new IConsumer<Object>() {
-					@Override
-					public void apply(Object value) {
-						DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefPageDescription.getDomainClass(), domainClassTester);
-						Iterable<Object> iterable = Util.asIterable(value, Object.class);
-						Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
+				IConsumer<Object> consumer = (value) -> {
+					DomainClassPredicate domainClassPredicate = new DomainClassPredicate(eefPageDescription.getDomainClass(), domainClassTester);
+					Iterable<Object> iterable = Util.asIterable(value, Object.class);
+					Iterable<Object> objects = Iterables.filter(iterable, domainClassPredicate);
 
-						boolean isUnique = true;
-						Iterator<Object> iterator = objects.iterator();
-						while (iterator.hasNext()) {
-							Object object = iterator.next();
+					boolean isUnique = true;
+					Iterator<Object> iterator = objects.iterator();
+					while (iterator.hasNext()) {
+						Object object = iterator.next();
 
-							if (isUnique && iterator.hasNext()) {
-								isUnique = false;
-							}
-							EEFPageImpl ePage = createPage(eefPageDescription, object, isUnique);
-							ePage.initialize();
-							EEFViewImpl.this.eefPages.add(ePage);
+						if (isUnique && iterator.hasNext()) {
+							isUnique = false;
 						}
+						EEFPageImpl ePage = createPage(eefPageDescription, object, isUnique);
+						ePage.initialize();
+						this.eefPages.add(ePage);
 					}
 				};
 
@@ -189,14 +186,9 @@
 			// All your update process for EEFPages need to be updated. It's not simple in any way or shape, I know.
 
 			for (final EEFPage eefPage : this.eefPages) {
-				IConsumer<Object> pageConsumer = new IConsumer<Object>() {
-					@Override
-					public void apply(Object value) {
-						for (Object pageSemanticCandidate : Util.asIterable(value, Object.class)) {
-							eefPage.getVariableManager().put(EEFExpressionUtils.SELF, pageSemanticCandidate);
-						}
-					}
-				};
+				IConsumer<Object> pageConsumer = (value) -> Util.asIterable(value, Object.class).forEach(pageSemanticCandidate -> {
+					eefPage.getVariableManager().put(EEFExpressionUtils.SELF, pageSemanticCandidate);
+				});
 
 				// If the semantic candidate expression is blank, we will use the variable self of the view
 				Object viewSelf = this.variableManager.getVariables().get(EEFExpressionUtils.SELF);
@@ -205,16 +197,11 @@
 
 				List<EEFGroup> groups = eefPage.getGroups();
 				for (final EEFGroup eefGroup : groups) {
-					IConsumer<Object> groupConsumer = new IConsumer<Object>() {
-						@Override
-						public void apply(Object value) {
-							// FIXME We need only one semantic candidate, so we just take the last one available as self
-							// as we did for the pages just before
-							for (Object groupSemanticCandidate : Util.asIterable(value, Object.class)) {
-								eefGroup.getVariableManager().put(EEFExpressionUtils.SELF, groupSemanticCandidate);
-							}
-						}
-					};
+					// FIXME We need only one semantic candidate, so we just take the last one available as self
+					// as we did for the pages just before
+					IConsumer<Object> groupConsumer = (value) -> Util.asIterable(value, Object.class).forEach(groupSemanticCandidate -> {
+						eefGroup.getVariableManager().put(EEFExpressionUtils.SELF, groupSemanticCandidate);
+					});
 
 					// If the semantic candidate expression is blank, we will use the variable self of the page
 					Object pageSelf = eefPage.getVariableManager().getVariables().get(EEFExpressionUtils.SELF);
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFButtonController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFButtonController.java
index 12d65dd..ac11154 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFButtonController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFButtonController.java
@@ -87,13 +87,10 @@
 
 	@Override
 	public IStatus pushed() {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String pushExpression = EEFButtonController.this.description.getPushExpression();
-				EAttribute attr = EefPackage.Literals.EEF_BUTTON_DESCRIPTION__PUSH_EXPRESSION;
-				EEFButtonController.this.newEval().logIfBlank(attr).call(pushExpression);
-			}
+		return contextAdapter.performModelChange(() -> {
+			String pushExpression = this.description.getPushExpression();
+			EAttribute attr = EefPackage.Literals.EEF_BUTTON_DESCRIPTION__PUSH_EXPRESSION;
+			this.newEval().logIfBlank(attr).call(pushExpression);
 		});
 	}
 }
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFCheckboxController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFCheckboxController.java
index e733aab..c92bfb5 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFCheckboxController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFCheckboxController.java
@@ -69,18 +69,15 @@
 
 	@Override
 	public IStatus updateValue(final boolean checkbox) {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String editExpression = EEFCheckboxController.this.description.getEditExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_CHECKBOX_DESCRIPTION__EDIT_EXPRESSION;
+		return contextAdapter.performModelChange(() -> {
+			String editExpression = this.description.getEditExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_CHECKBOX_DESCRIPTION__EDIT_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFCheckboxController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFCheckbox.NEW_VALUE, Boolean.valueOf(checkbox));
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFCheckbox.NEW_VALUE, Boolean.valueOf(checkbox));
 
-				EvalFactory.of(EEFCheckboxController.this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
 		});
 	}
 
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFHyperlinkController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFHyperlinkController.java
index e238265..c246c2b 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFHyperlinkController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFHyperlinkController.java
@@ -110,18 +110,15 @@
 	 */
 	@Override
 	public IStatus onClick(final Object element) {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String expression = EEFHyperlinkController.this.description.getOnClickExpression();
-				EAttribute attr = EefPackage.Literals.EEF_HYPERLINK_DESCRIPTION__ON_CLICK_EXPRESSION;
+		return contextAdapter.performModelChange(() -> {
+			String expression = this.description.getOnClickExpression();
+			EAttribute attr = EefPackage.Literals.EEF_HYPERLINK_DESCRIPTION__ON_CLICK_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFHyperlinkController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFHyperlink.SELECTION, element);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFHyperlink.SELECTION, element);
 
-				EvalFactory.of(EEFHyperlinkController.this.interpreter, variables).logIfBlank(attr).call(expression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(attr).call(expression);
 		});
 	}
 
@@ -162,17 +159,14 @@
 	 */
 	@Override
 	public IStatus action(final EEFWidgetAction action) {
-		return this.contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String expression = action.getActionExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
+		return this.contextAdapter.performModelChange(() -> {
+			String expression = action.getActionExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFHyperlinkController.this.variableManager.getVariables());
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
 
-				EvalFactory.of(EEFHyperlinkController.this.interpreter, variables).logIfBlank(eAttribute).call(expression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(expression);
 		});
 	}
 
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelController.java
index 080c48f..bd05793 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelController.java
@@ -130,17 +130,14 @@
 	 */
 	@Override
 	public IStatus action(final EEFWidgetAction action) {
-		return this.contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String expression = action.getActionExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
+		return this.contextAdapter.performModelChange(() -> {
+			String expression = action.getActionExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFLabelController.this.variableManager.getVariables());
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
 
-				EvalFactory.of(EEFLabelController.this.interpreter, variables).logIfBlank(eAttribute).call(expression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(expression);
 		});
 	}
 
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFListController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFListController.java
index 69f5ce5..e2ad71b 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFListController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFListController.java
@@ -109,18 +109,15 @@
 	 */
 	@Override
 	public void onClick(final Object element, final String onClickEventKind) {
-		contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String expression = EEFListController.this.description.getOnClickExpression();
+		contextAdapter.performModelChange(() -> {
+			String expression = this.description.getOnClickExpression();
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFListController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFList.SELECTION, element);
-				variables.put(EEFExpressionUtils.EEFList.ON_CLICK_EVENT_KIND, onClickEventKind);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFList.SELECTION, element);
+			variables.put(EEFExpressionUtils.EEFList.ON_CLICK_EVENT_KIND, onClickEventKind);
 
-				EvalFactory.of(EEFListController.this.interpreter, variables).call(expression);
-			}
+			EvalFactory.of(this.interpreter, variables).call(expression);
 		});
 	}
 
@@ -142,18 +139,15 @@
 	 */
 	@Override
 	public IStatus action(final EEFWidgetAction action, final List<Object> elements) {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String expression = action.getActionExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
+		return contextAdapter.performModelChange(() -> {
+			String expression = action.getActionExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_WIDGET_ACTION__ACTION_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFListController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFList.SELECTION, elements);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFList.SELECTION, elements);
 
-				EvalFactory.of(EEFListController.this.interpreter, variables).logIfBlank(eAttribute).call(expression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(expression);
 		});
 	}
 }
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFRadioController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFRadioController.java
index 74cafbc..0bb5511 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFRadioController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFRadioController.java
@@ -76,18 +76,15 @@
 
 	@Override
 	public IStatus updateValue(final Object text) {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String editExpression = EEFRadioController.this.description.getEditExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_RADIO_DESCRIPTION__EDIT_EXPRESSION;
+		return contextAdapter.performModelChange(() -> {
+			String editExpression = this.description.getEditExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_RADIO_DESCRIPTION__EDIT_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFRadioController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
 
-				EvalFactory.of(EEFRadioController.this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
 		});
 	}
 
@@ -102,16 +99,13 @@
 		String candidatesExpression = this.description.getCandidatesExpression();
 		EAttribute candidatesExpressionEAttribute = EefPackage.Literals.EEF_RADIO_DESCRIPTION__CANDIDATES_EXPRESSION;
 
-		this.newEval().logIfBlank(candidatesExpressionEAttribute).call(candidatesExpression, new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (value instanceof Iterable<?>) {
-					List<Object> candidates = new ArrayList<Object>();
-					for (Object iterator : (Iterable<?>) value) {
-						candidates.add(iterator);
-					}
-					EEFRadioController.this.newCandidatesConsumer.apply(candidates);
-				}
+		this.newEval().logIfBlank(candidatesExpressionEAttribute).call(candidatesExpression, (value) -> {
+			if (value instanceof Iterable<?>) {
+				List<Object> candidates = new ArrayList<Object>();
+
+				((Iterable<?>) value).forEach(object -> candidates.add(object));
+
+				this.newCandidatesConsumer.apply(candidates);
 			}
 		});
 
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSelectController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSelectController.java
index 143ffd1..703c599 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSelectController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSelectController.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.eef.core.internal.controllers;
 
+import com.google.common.collect.Iterators;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -76,18 +78,15 @@
 
 	@Override
 	public IStatus updateValue(final Object text) {
-		return contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String editExpression = EEFSelectController.this.description.getEditExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_SELECT_DESCRIPTION__EDIT_EXPRESSION;
+		return contextAdapter.performModelChange(() -> {
+			String editExpression = this.description.getEditExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_SELECT_DESCRIPTION__EDIT_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFSelectController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
 
-				EvalFactory.of(EEFSelectController.this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
 		});
 	}
 
@@ -103,16 +102,13 @@
 		String candidatesExpression = this.description.getCandidatesExpression();
 		EAttribute candidatesExpressionEAttribute = EefPackage.Literals.EEF_SELECT_DESCRIPTION__CANDIDATES_EXPRESSION;
 
-		this.newEval().logIfBlank(candidatesExpressionEAttribute).call(candidatesExpression, new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (value instanceof Iterable<?>) {
-					List<Object> candidates = new ArrayList<Object>();
-					for (Object iterator : (Iterable<?>) value) {
-						candidates.add(iterator);
-					}
-					EEFSelectController.this.newCandidatesConsumer.apply(candidates);
-				}
+		this.newEval().logIfBlank(candidatesExpressionEAttribute).call(candidatesExpression, (value) -> {
+			if (value instanceof Iterable<?>) {
+				List<Object> candidates = new ArrayList<Object>();
+
+				Iterators.addAll(candidates, ((Iterable<?>) value).iterator());
+
+				this.newCandidatesConsumer.apply(candidates);
 			}
 		});
 
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFTextController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFTextController.java
index 0016dc5..57ca68d 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFTextController.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFTextController.java
@@ -69,18 +69,15 @@
 
 	@Override
 	public IStatus updateValue(final String text) {
-		return this.contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String editExpression = EEFTextController.this.description.getEditExpression();
-				EAttribute eAttribute = EefPackage.Literals.EEF_TEXT_DESCRIPTION__EDIT_EXPRESSION;
+		return this.contextAdapter.performModelChange(() -> {
+			String editExpression = this.description.getEditExpression();
+			EAttribute eAttribute = EefPackage.Literals.EEF_TEXT_DESCRIPTION__EDIT_EXPRESSION;
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(EEFTextController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, text);
 
-				EvalFactory.of(EEFTextController.this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
-			}
+			EvalFactory.of(this.interpreter, variables).logIfBlank(eAttribute).call(editExpression);
 		});
 	}
 
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/AbstractEEFExtReferenceLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/AbstractEEFExtReferenceLifecycleManager.java
index 7a10e43..ed5c4a8 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/AbstractEEFExtReferenceLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/AbstractEEFExtReferenceLifecycleManager.java
@@ -191,14 +191,7 @@
 	 * Initializes the browse button.
 	 */
 	private void initializeBrowseButton() {
-		final Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				AbstractEEFExtReferenceLifecycleManager.this.browseButtonCallback();
-			}
-		};
-
-		this.browseButtonListener = new ButtonSelectionListener(this.contextAdapter, runnable);
+		this.browseButtonListener = new ButtonSelectionListener(this.contextAdapter, () -> this.browseButtonCallback());
 		this.browseButton.addSelectionListener(this.browseButtonListener);
 		this.browseButton.setToolTipText(Messages.ReferenceBrowseButton_tooltipText);
 	}
@@ -212,14 +205,7 @@
 	 * Initializes the add button.
 	 */
 	private void initializeAddButton() {
-		Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				AbstractEEFExtReferenceLifecycleManager.this.addButtonCallback();
-			}
-		};
-
-		this.addButtonListener = new ButtonSelectionListener(this.contextAdapter, runnable);
+		this.addButtonListener = new ButtonSelectionListener(this.contextAdapter, () -> this.addButtonCallback());
 		this.addButton.addSelectionListener(this.addButtonListener);
 		this.addButton.setToolTipText(Messages.ReferenceAddButton_tooltipText);
 	}
@@ -233,13 +219,7 @@
 	 * Initializes the remove button.
 	 */
 	private void initializeRemoveButton() {
-		Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				AbstractEEFExtReferenceLifecycleManager.this.removeButtonCallback();
-			}
-		};
-		this.removeButtonListener = new ButtonSelectionListener(this.contextAdapter, runnable);
+		this.removeButtonListener = new ButtonSelectionListener(this.contextAdapter, () -> this.removeButtonCallback());
 		this.removeButton.addSelectionListener(this.removeButtonListener);
 		if (this.eReference.isContainment()) {
 			this.removeButton.setToolTipText(Messages.ReferenceRemoveButton_containmentTooltipText);
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectCreationWizard.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectCreationWizard.java
index 0d6d65f..9d702cb 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectCreationWizard.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectCreationWizard.java
@@ -12,7 +12,6 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.eef.core.api.EditingContextAdapter;
@@ -65,8 +64,8 @@
 		this.eReference = eReference;
 		this.editingContextAdapter = editingContextAdapter;
 		this.setWindowTitle(Messages.ReferenceCreationWizard_windowTitle);
-		ImageDescriptor imageDescriptor = ExtendedImageRegistry.INSTANCE.getImageDescriptor(EEFExtReferenceUIPlugin.getPlugin().getImage(
-				EEFExtReferenceUIPlugin.Implementation.NEW_WIZBAN_PATH));
+		ImageDescriptor imageDescriptor = ExtendedImageRegistry.INSTANCE
+				.getImageDescriptor(EEFExtReferenceUIPlugin.getPlugin().getImage(EEFExtReferenceUIPlugin.Implementation.NEW_WIZBAN_PATH));
 		this.setDefaultPageImageDescriptor(imageDescriptor);
 		this.setNeedsProgressMonitor(true);
 	}
@@ -93,18 +92,8 @@
 	public boolean performFinish() {
 		boolean finishedProperly = true;
 
-		IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
-			@Override
-			public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-				Runnable runnable = new Runnable() {
-					@Override
-					public void run() {
-						EEFExtEObjectCreationWizard.this.eObjectCreationPage.performFinish(monitor);
-					}
-				};
-
-				EEFExtEObjectCreationWizard.this.editingContextAdapter.performModelChange(runnable);
-			}
+		IRunnableWithProgress runnableWithProgress = (monitor) -> {
+			this.editingContextAdapter.performModelChange(() -> this.eObjectCreationPage.performFinish(monitor));
 		};
 
 		try {
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionPage.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionPage.java
index 288f622..50fb321 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionPage.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionPage.java
@@ -26,7 +26,6 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jface.wizard.WizardPage;
@@ -131,8 +130,8 @@
 		label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
 
 		this.eObjectTreeViewer = new TreeViewer(new Tree(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER));
-		this.eObjectTreeViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new AdapterFactoryLabelProvider.StyledLabelProvider(
-				this.composedAdapterFactory, this.eObjectTreeViewer)));
+		this.eObjectTreeViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(
+				new AdapterFactoryLabelProvider.StyledLabelProvider(this.composedAdapterFactory, this.eObjectTreeViewer)));
 		this.eObjectTreeViewer.setContentProvider(new AdapterFactoryContentProvider(this.composedAdapterFactory));
 		this.eObjectTreeViewer.setAutoExpandLevel(2);
 
@@ -142,12 +141,7 @@
 		List<ViewerFilter> viewFilters = EEFExtReferenceUIPlugin.getPlugin().getViewFilters(ContextKind.EOBJECT_SELECTION);
 		this.eObjectTreeViewer.setFilters(viewFilters.toArray(new ViewerFilter[viewFilters.size()]));
 
-		this.eObjectTreeViewerListener = new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				EEFExtEObjectSelectionPage.this.determinePageCompletion();
-			}
-		};
+		this.eObjectTreeViewerListener = (event) -> this.determinePageCompletion();
 		this.eObjectTreeViewer.addSelectionChangedListener(this.eObjectTreeViewerListener);
 	}
 
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionWizard.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionWizard.java
index 9d31ab6..086eb1b 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionWizard.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtEObjectSelectionWizard.java
@@ -12,7 +12,6 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.eef.core.api.EditingContextAdapter;
@@ -65,8 +64,8 @@
 		this.eReference = eReference;
 		this.editingContextAdapter = editingContextAdapter;
 		this.setWindowTitle(Messages.ReferenceSelectionWizard_windowTitle);
-		ImageDescriptor imageDescriptor = ExtendedImageRegistry.INSTANCE.getImageDescriptor(EEFExtReferenceUIPlugin.getPlugin().getImage(
-				EEFExtReferenceUIPlugin.Implementation.NEW_WIZBAN_PATH));
+		ImageDescriptor imageDescriptor = ExtendedImageRegistry.INSTANCE
+				.getImageDescriptor(EEFExtReferenceUIPlugin.getPlugin().getImage(EEFExtReferenceUIPlugin.Implementation.NEW_WIZBAN_PATH));
 		this.setDefaultPageImageDescriptor(imageDescriptor);
 		this.setNeedsProgressMonitor(true);
 	}
@@ -93,18 +92,8 @@
 	public boolean performFinish() {
 		boolean finishedProperly = true;
 
-		IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
-			@Override
-			public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-				Runnable runnable = new Runnable() {
-					@Override
-					public void run() {
-						EEFExtEObjectSelectionWizard.this.eObjectSelectionPage.performFinish(monitor);
-					}
-				};
-
-				EEFExtEObjectSelectionWizard.this.editingContextAdapter.performModelChange(runnable);
-			}
+		IRunnableWithProgress runnableWithProgress = (monitor) -> {
+			this.editingContextAdapter.performModelChange(() -> this.eObjectSelectionPage.performFinish(monitor));
 		};
 
 		try {
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtMultipleReferenceLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtMultipleReferenceLifecycleManager.java
index 409bb67..54c4e5f 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtMultipleReferenceLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtMultipleReferenceLifecycleManager.java
@@ -256,13 +256,10 @@
 	 */
 	@Override
 	protected void removeButtonCallback() {
-		this.contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				List<Object> objects = selectionToList(tableViewer.getSelection());
-				for (Object object : objects) {
-					EcoreUtil.remove(target, eReference, object);
-				}
+		this.contextAdapter.performModelChange(() -> {
+			List<Object> objects = selectionToList(tableViewer.getSelection());
+			for (Object object : objects) {
+				EcoreUtil.remove(target, eReference, object);
 			}
 		});
 	}
@@ -274,13 +271,7 @@
 	 *            The direction
 	 */
 	private void initializeMoveButton(final Direction direction) {
-		Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				EEFExtMultipleReferenceLifecycleManager.this.moveButtonCallback(direction);
-			}
-		};
-		ButtonSelectionListener listener = new ButtonSelectionListener(this.contextAdapter, runnable);
+		ButtonSelectionListener listener = new ButtonSelectionListener(this.contextAdapter, () -> this.moveButtonCallback(direction));
 
 		if (direction == Direction.UP) {
 			this.upButtonListener = listener;
diff --git a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtSingleReferenceLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtSingleReferenceLifecycleManager.java
index b191a53..76fa151 100644
--- a/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtSingleReferenceLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui.ext.widgets.reference/src/org/eclipse/eef/ide/ui/ext/widgets/reference/internal/EEFExtSingleReferenceLifecycleManager.java
@@ -179,12 +179,7 @@
 	 */
 	@Override
 	protected void removeButtonCallback() {
-		this.contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				target.eUnset(eReference);
-			}
-		});
+		this.contextAdapter.performModelChange(() -> target.eUnset(eReference));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.eef.ide.ui.properties/src/org/eclipse/eef/ide/ui/properties/api/EEFSectionDescriptor.java b/plugins/org.eclipse.eef.ide.ui.properties/src/org/eclipse/eef/ide/ui/properties/api/EEFSectionDescriptor.java
index b481e43..350b70f 100644
--- a/plugins/org.eclipse.eef.ide.ui.properties/src/org/eclipse/eef/ide/ui/properties/api/EEFSectionDescriptor.java
+++ b/plugins/org.eclipse.eef.ide.ui.properties/src/org/eclipse/eef/ide/ui/properties/api/EEFSectionDescriptor.java
@@ -75,12 +75,6 @@
 	 */
 	@Override
 	public IFilter getFilter() {
-		return new IFilter() {
-
-			@Override
-			public boolean select(Object toTest) {
-				return true;
-			}
-		};
+		return (object) -> true;
 	}
 }
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFLifecycleManager.java
index 9a3eee2..88b13e3 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFLifecycleManager.java
@@ -10,10 +10,7 @@
  *******************************************************************************/
 package org.eclipse.eef.ide.ui.api.widgets;
 
-import java.util.List;
-
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFController;
 import org.eclipse.eef.core.api.controllers.IInvalidValidationRuleResult;
 import org.eclipse.eef.core.api.controllers.IValidationRuleResult;
@@ -51,26 +48,23 @@
 	 */
 	@Override
 	public void aboutToBeShown() {
-		this.getController().onValidation(new IConsumer<List<IValidationRuleResult>>() {
-			@Override
-			public void apply(List<IValidationRuleResult> validationRuleResults) {
-				IMessageManager messageManager = container.getForm().getMessageManager();
+		this.getController().onValidation((validationRuleResults) -> {
+			IMessageManager messageManager = container.getForm().getMessageManager();
 
-				for (IValidationRuleResult validationRuleResult : validationRuleResults) {
-					if (validationRuleResult instanceof IInvalidValidationRuleResult) {
-						IInvalidValidationRuleResult result = (IInvalidValidationRuleResult) validationRuleResult;
-						if (getValidationControl() != null) {
-							messageManager.addMessage(result.getValidationRule(), result.getMessage(), result.getData(), result.getSeverity(),
-									getValidationControl());
-						} else {
-							messageManager.addMessage(result.getValidationRule(), result.getMessage(), result.getData(), result.getSeverity());
-						}
+			for (IValidationRuleResult validationRuleResult : validationRuleResults) {
+				if (validationRuleResult instanceof IInvalidValidationRuleResult) {
+					IInvalidValidationRuleResult result = (IInvalidValidationRuleResult) validationRuleResult;
+					if (getValidationControl() != null) {
+						messageManager.addMessage(result.getValidationRule(), result.getMessage(), result.getData(), result.getSeverity(),
+								getValidationControl());
 					} else {
-						if (getValidationControl() != null) {
-							messageManager.removeMessage(validationRuleResult.getValidationRule(), getValidationControl());
-						} else {
-							messageManager.removeMessage(validationRuleResult.getValidationRule());
-						}
+						messageManager.addMessage(result.getValidationRule(), result.getMessage(), result.getData(), result.getSeverity());
+					}
+				} else {
+					if (getValidationControl() != null) {
+						messageManager.removeMessage(validationRuleResult.getValidationRule(), getValidationControl());
+					} else {
+						messageManager.removeMessage(validationRuleResult.getValidationRule());
 					}
 				}
 			}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
index 01b1c3e..2140fc9 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
@@ -279,23 +279,16 @@
 	public void aboutToBeShown() {
 		super.aboutToBeShown();
 
-		this.getController().onNewLabel(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				if (!label.isDisposed() && !(label.getText() != null && label.getText().equals(value))) {
-					label.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
-				}
-				AbstractEEFWidgetLifecycleManager.this.setLabelFontStyle();
+		this.getController().onNewLabel((value) -> {
+			if (!label.isDisposed() && !(label.getText() != null && label.getText().equals(value))) {
+				label.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
 			}
-
+			AbstractEEFWidgetLifecycleManager.this.setLabelFontStyle();
 		});
 
-		this.getController().onNewHelp(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				if (help != null && !help.isDisposed() && !(help.getText() != null && help.getText().equals(value))) {
-					help.setToolTipText(Objects.firstNonNull(value, Messages.AbstractEEFWidgetLifecycleManager_noDescriptionAvailable));
-				}
+		this.getController().onNewHelp((value) -> {
+			if (help != null && !help.isDisposed() && !(help.getText() != null && help.getText().equals(value))) {
+				help.setToolTipText(Objects.firstNonNull(value, Messages.AbstractEEFWidgetLifecycleManager_noDescriptionAvailable));
 			}
 		});
 
@@ -321,21 +314,11 @@
 			this.help.addMouseTrackListener(mouseTrackListener);
 		}
 
-		this.lockStatusChangedListener = new IConsumer<Collection<LockStatusChangeEvent>>() {
-			@Override
-			public void apply(final Collection<LockStatusChangeEvent> events) {
-				Display.getDefault().asyncExec(new Runnable() {
-
-					@Override
-					public void run() {
-						for (LockStatusChangeEvent event : events) {
-							if (AbstractEEFWidgetLifecycleManager.this.getWidgetSemanticElement().equals(event.getElement())) {
-								handleLockStatus(event.getStatus());
-							}
-						}
-					}
-				});
-			}
+		this.lockStatusChangedListener = (events) -> {
+			Display.getDefault().asyncExec(() -> {
+				events.stream().filter(event -> this.getWidgetSemanticElement().equals(event.getElement()))
+					.forEach(event -> this.handleLockStatus(event.getStatus()));
+			});
 		};
 		this.contextAdapter.addLockStatusChangedListener(this.lockStatusChangedListener);
 	}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java
index d9d1163..c659656 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java
@@ -19,7 +19,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFButtonController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -157,12 +156,9 @@
 		};
 		this.button.addSelectionListener(this.selectionListener);
 
-		this.controller.onNewButtonLabel(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				if (!button.isDisposed() && !(button.getText() != null && button.getText().equals(value))) {
-					button.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
-				}
+		this.controller.onNewButtonLabel((value) -> {
+			if (!button.isDisposed() && !(button.getText() != null && button.getText().equals(value))) {
+				button.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
 			}
 		});
 	}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFCheckboxLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFCheckboxLifecycleManager.java
index 8c121d6..e4c6272 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFCheckboxLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFCheckboxLifecycleManager.java
@@ -21,7 +21,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFCheckboxController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -154,14 +153,13 @@
 	@Override
 	public void aboutToBeShown() {
 		super.aboutToBeShown();
-		this.getController().onNewLabel(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				if (!checkbox.isDisposed() && !(checkbox.getText() != null && checkbox.getText().equals(value))) {
-					checkbox.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
-				}
+
+		this.getController().onNewLabel((value) -> {
+			if (!this.checkbox.isDisposed() && !(this.checkbox.getText() != null && this.checkbox.getText().equals(value))) {
+				this.checkbox.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
 			}
 		});
+
 		// UI edited by user => update model if possible, revert UI change otherwise
 		this.selectionListener = new SelectionListener() {
 			@Override
@@ -183,14 +181,11 @@
 		this.checkbox.addSelectionListener(this.selectionListener);
 
 		// Model changed => update UI
-		this.controller.onNewValue(new IConsumer<Boolean>() {
-			@Override
-			public void apply(Boolean value) {
-				if (!checkbox.isDisposed()) {
-					if (value != null && checkbox.getSelection() != value.booleanValue()) {
-						checkbox.setSelection(value.booleanValue());
-						referenceValue = value.booleanValue();
-					}
+		this.controller.onNewValue((value) -> {
+			if (!checkbox.isDisposed()) {
+				if (value != null && checkbox.getSelection() != value.booleanValue()) {
+					checkbox.setSelection(value.booleanValue());
+					referenceValue = value.booleanValue();
 				}
 			}
 		});
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
index 4d4952f..0dfb9fd 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
@@ -136,9 +136,7 @@
 	 */
 	@Override
 	public void aboutToBeShown() {
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.aboutToBeShown();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeShown);
 	}
 
 	/**
@@ -148,9 +146,7 @@
 	 */
 	@Override
 	public void refresh() {
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.refresh();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::refresh);
 	}
 
 	/**
@@ -160,9 +156,7 @@
 	 */
 	@Override
 	public void aboutToBeHidden() {
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.aboutToBeHidden();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeHidden);
 	}
 
 	/**
@@ -172,9 +166,7 @@
 	 */
 	@Override
 	public void dispose() {
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.dispose();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::dispose);
 	}
 
 }
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFGroupLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFGroupLifecycleManager.java
index ea31062..02e9520 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFGroupLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFGroupLifecycleManager.java
@@ -25,7 +25,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFController;
 import org.eclipse.eef.core.api.controllers.IEEFGroupController;
 import org.eclipse.eef.core.api.utils.EvalFactory;
@@ -153,12 +152,8 @@
 		this.section.setText(""); //$NON-NLS-1$
 
 		String labelExpression = this.description.getLabelExpression();
-		EvalFactory.of(this.interpreter, this.variableManager).logIfInvalidType(String.class).call(labelExpression, new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				EEFGroupLifecycleManager.this.section.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
-			}
-		});
+		EvalFactory.of(this.interpreter, this.variableManager).logIfInvalidType(String.class).call(labelExpression,
+				(value) -> this.section.setText(Objects.firstNonNull(value, ""))); //$NON-NLS-1$
 
 		this.section.setLayout(new GridLayout(1, false));
 		GridData sectionLayoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
@@ -293,16 +288,9 @@
 	public void aboutToBeShown() {
 		super.aboutToBeShown();
 
-		this.controller.onNewLabel(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				EEFGroupLifecycleManager.this.section.setText(value);
-			}
-		});
+		this.controller.onNewLabel((value) -> this.section.setText(value));
 
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.aboutToBeShown();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeShown);
 	}
 
 	/**
@@ -314,9 +302,7 @@
 	public void refresh() {
 		super.refresh();
 
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.refresh();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::refresh);
 	}
 
 	/**
@@ -330,9 +316,7 @@
 
 		this.controller.removeNewLabelConsumer();
 
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.aboutToBeHidden();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeHidden);
 	}
 
 	/**
@@ -342,9 +326,7 @@
 	 */
 	@Override
 	public void dispose() {
-		for (IEEFLifecycleManager lifecycleManager : lifecycleManagers) {
-			lifecycleManager.dispose();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::dispose);
 	}
 
 }
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFHyperlinkLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFHyperlinkLifecycleManager.java
index 7cf7816..8e28681 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFHyperlinkLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFHyperlinkLifecycleManager.java
@@ -23,7 +23,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFHyperlinkController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -204,19 +203,16 @@
 		this.hyperlinkListener = new EEFHyperlinkListener(this, this.hyperlink, this.container, this.controller);
 		hyperlink.addMouseListener(hyperlinkListener);
 
-		this.controller.onNewValue(new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (!hyperlink.isDisposed()) {
-					if (!(hyperlink.getText() != null && hyperlink.getText().equals(value))) {
-						String text = controller.computeDisplayValue(value);
-						hyperlink.setText(text);
-						hyperlink.setData(value);
-					}
-					EEFHyperlinkLifecycleManager.this.setStyle();
-					if (!hyperlink.isEnabled()) {
-						hyperlink.setEnabled(true);
-					}
+		this.controller.onNewValue((value) -> {
+			if (!hyperlink.isDisposed()) {
+				if (!(hyperlink.getText() != null && hyperlink.getText().equals(value))) {
+					String text = controller.computeDisplayValue(value);
+					hyperlink.setText(text);
+					hyperlink.setData(value);
+				}
+				this.setStyle();
+				if (!hyperlink.isEnabled()) {
+					hyperlink.setEnabled(true);
 				}
 			}
 		});
@@ -295,9 +291,7 @@
 			this.hyperlink.removeMouseListener(this.hyperlinkListener);
 		}
 
-		for (ActionButton actionButton : this.actionButtons) {
-			actionButton.removeSelectionListener();
-		}
+		this.actionButtons.forEach(ActionButton::removeSelectionListener);
 
 		this.controller.removeNewValueConsumer();
 	}
@@ -312,11 +306,8 @@
 		if (!this.hyperlink.isDisposed()) {
 			this.hyperlink.setEnabled(isEnabled);
 		}
-		for (ActionButton actionButton : this.actionButtons) {
-			if (!actionButton.getButton().isDisposed()) {
-				actionButton.setEnabled(isEnabled);
-			}
-		}
+		this.actionButtons.stream().filter(actionButton -> !actionButton.getButton().isDisposed())
+				.forEach(actionButton -> actionButton.setEnabled(isEnabled));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java
index 2594570..fefca69 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java
@@ -25,7 +25,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFLabelController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -187,15 +186,12 @@
 	public void aboutToBeShown() {
 		super.aboutToBeShown();
 
-		this.controller.onNewValue(new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				if (!body.isDisposed()) {
-					if (!(body.getText() != null && body.getText().equals(value))) {
-						body.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
-					}
-					EEFLabelLifecycleManager.this.setStyle();
+		this.controller.onNewValue((value) -> {
+			if (!body.isDisposed()) {
+				if (!(body.getText() != null && body.getText().equals(value))) {
+					body.setText(Objects.firstNonNull(value, "")); //$NON-NLS-1$
 				}
+				this.setStyle();
 			}
 		});
 
@@ -243,11 +239,8 @@
 		if (!this.body.isDisposed()) {
 			this.body.setEnabled(isEnabled);
 		}
-		for (ActionButton actionButton : this.actionButtons) {
-			if (!actionButton.getButton().isDisposed()) {
-				actionButton.setEnabled(isEnabled);
-			}
-		}
+		this.actionButtons.stream().filter(actionButton -> !actionButton.getButton().isDisposed())
+				.forEach(actionButton -> actionButton.setEnabled(isEnabled));
 	}
 
 	/**
@@ -258,9 +251,8 @@
 	@Override
 	public void aboutToBeHidden() {
 		super.aboutToBeHidden();
-		for (ActionButton actionButton : this.actionButtons) {
-			actionButton.removeSelectionListener();
-		}
+
+		this.actionButtons.forEach(ActionButton::removeSelectionListener);
 
 		this.controller.removeNewValueConsumer();
 	}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFListLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFListLifecycleManager.java
index 75aaff1..1fcb82b 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFListLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFListLifecycleManager.java
@@ -21,7 +21,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFListController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -219,14 +218,11 @@
 		this.tableSelectionListener = new EEFListSelectionListener(this.controller);
 		this.tableViewer.getTable().addSelectionListener(tableSelectionListener);
 
-		this.controller.onNewValue(new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (value == null) {
-					return;
-				}
-				EEFListLifecycleManager.this.setListValue(value);
+		this.controller.onNewValue((value) -> {
+			if (value == null) {
+				return;
 			}
+			this.setListValue(value);
 		});
 
 		for (final ActionButton actionButton : actionButtons) {
@@ -283,17 +279,12 @@
 	 */
 	@Override
 	protected void setEnabled(boolean isEnabled) {
-		if (!this.tableViewer.getTable().isDisposed()) {
-			if (this.tableViewer != null && this.tableViewer.getTable() != null) {
-				this.tableViewer.getTable().setBackground(this.getBackgroundColor(isEnabled));
-			}
+		if (this.tableViewer != null && this.tableViewer.getTable() != null && !this.tableViewer.getTable().isDisposed()) {
+			this.tableViewer.getTable().setBackground(this.getBackgroundColor(isEnabled));
 			this.tableViewer.getTable().setEnabled(isEnabled);
 		}
-		for (ActionButton actionButton : this.actionButtons) {
-			if (!actionButton.getButton().isDisposed()) {
-				actionButton.setEnabled(isEnabled);
-			}
-		}
+		this.actionButtons.stream().filter(actionButton -> !actionButton.getButton().isDisposed())
+				.forEach(actionButton -> actionButton.setEnabled(isEnabled));
 	}
 
 	/**
@@ -321,9 +312,7 @@
 	public void aboutToBeHidden() {
 		super.aboutToBeHidden();
 
-		for (ActionButton actionButton : this.actionButtons) {
-			actionButton.removeSelectionListener();
-		}
+		this.actionButtons.forEach(ActionButton::removeSelectionListener);
 
 		if (this.tableViewer != null && this.tableViewer.getTable() != null && !this.tableViewer.getTable().isDisposed()) {
 			this.tableViewer.getTable().removeSelectionListener(this.tableSelectionListener);
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFRadioLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFRadioLifecycleManager.java
index 3328dfc..32682d2 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFRadioLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFRadioLifecycleManager.java
@@ -11,7 +11,6 @@
 package org.eclipse.eef.ide.ui.internal.widgets;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -25,7 +24,6 @@
 import org.eclipse.eef.core.api.EEFExpressionUtils.EEFSelect;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFRadioController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.core.api.utils.EvalFactory;
@@ -200,40 +198,34 @@
 		this.radioGroup.addSelectionListener(this.selectionListener);
 
 		// Set radio group value
-		this.controller.onNewValue(new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (!radioGroup.isDisposed()) {
-					final ISelection selection;
-					if (value != null) {
-						selection = new StructuredSelection(value);
-					} else {
-						selection = null;
-					}
-					radioGroupViewer.setSelection(selection);
-					referenceSelection = selection;
-					if (!radioGroup.isEnabled()) {
-						radioGroup.setEnabled(true);
-					}
+		this.controller.onNewValue((value) -> {
+			if (!this.radioGroup.isDisposed()) {
+				final ISelection selection;
+				if (value != null) {
+					selection = new StructuredSelection(value);
+				} else {
+					selection = null;
+				}
+				this.radioGroupViewer.setSelection(selection);
+				this.referenceSelection = selection;
+				if (!this.radioGroup.isEnabled()) {
+					this.radioGroup.setEnabled(true);
 				}
 			}
 		});
 
 		// Set radio group items
-		this.controller.onNewCandidates(new IConsumer<List<Object>>() {
-			@Override
-			public void apply(List<Object> candidates) {
-				if (!radioGroup.isDisposed()) {
-					if (candidates != null) {
-						radioGroupViewer.setInput(candidates.toArray());
-					} else {
-						radioGroupViewer.setInput(null);
-					}
-					if (!radioGroup.isEnabled()) {
-						radioGroup.setEnabled(true);
-					}
-					radioGroupViewer.refresh(true);
+		this.controller.onNewCandidates((candidates) -> {
+			if (!this.radioGroup.isDisposed()) {
+				if (candidates != null) {
+					this.radioGroupViewer.setInput(candidates.toArray());
+				} else {
+					this.radioGroupViewer.setInput(null);
 				}
+				if (!this.radioGroup.isEnabled()) {
+					this.radioGroup.setEnabled(true);
+				}
+				this.radioGroupViewer.refresh(true);
 			}
 		});
 	}
@@ -246,7 +238,7 @@
 	@Override
 	public void aboutToBeHidden() {
 		super.aboutToBeHidden();
-		if (!radioGroup.isDisposed()) {
+		if (!this.radioGroup.isDisposed()) {
 			this.radioGroup.removeSelectionListener(this.selectionListener);
 		}
 		this.controller.removeNewValueConsumer();
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSectionLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSectionLifecycleManager.java
index b7fe1b2..db5087c 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSectionLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSectionLifecycleManager.java
@@ -101,9 +101,7 @@
 
 		this.container.getForm().addMessageHyperlinkListener(this.hyperlinkListener);
 
-		for (IEEFLifecycleManager lifecycleManager : this.lifecycleManagers) {
-			lifecycleManager.aboutToBeShown();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeShown);
 	}
 
 	/**
@@ -117,9 +115,7 @@
 
 		this.controller.refresh();
 
-		for (IEEFLifecycleManager lifecycleManager : this.lifecycleManagers) {
-			lifecycleManager.refresh();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::refresh);
 
 		this.container.getForm().getMessageManager().update();
 	}
@@ -138,9 +134,7 @@
 			this.container.getForm().getMessageManager().removeAllMessages();
 		}
 
-		for (IEEFLifecycleManager lifecycleManager : this.lifecycleManagers) {
-			lifecycleManager.aboutToBeHidden();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::aboutToBeHidden);
 	}
 
 	/**
@@ -170,9 +164,7 @@
 	 */
 	@Override
 	public void dispose() {
-		for (IEEFLifecycleManager lifecycleManager : this.lifecycleManagers) {
-			lifecycleManager.dispose();
-		}
+		this.lifecycleManagers.forEach(IEEFLifecycleManager::dispose);
 	}
 
 }
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSelectLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSelectLifecycleManager.java
index f700d10..5dd740c 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSelectLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSelectLifecycleManager.java
@@ -11,7 +11,6 @@
 package org.eclipse.eef.ide.ui.internal.widgets;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.runtime.IStatus;
@@ -24,7 +23,6 @@
 import org.eclipse.eef.core.api.EEFExpressionUtils.EEFSelect;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFSelectController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.core.api.utils.EvalFactory;
@@ -204,44 +202,38 @@
 		this.combo.addSelectionListener(this.selectionListener);
 
 		// Set combo value
-		this.controller.onNewValue(new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (!combo.isDisposed() && !(combo.getText() != null && combo.getText().equals(value))) {
-					final ISelection selection;
-					if (value != null) {
-						selection = new StructuredSelection(value);
-					} else {
-						selection = null;
-					}
-					referenceValue = selection;
-					comboViewer.setSelection(referenceValue, true);
-					if (!combo.isEnabled()) {
-						combo.setEnabled(true);
-					}
+		this.controller.onNewValue((value) -> {
+			if (!this.combo.isDisposed() && !(this.combo.getText() != null && this.combo.getText().equals(value))) {
+				final ISelection selection;
+				if (value != null) {
+					selection = new StructuredSelection(value);
+				} else {
+					selection = null;
+				}
+				this.referenceValue = selection;
+				this.comboViewer.setSelection(this.referenceValue, true);
+				if (!this.combo.isEnabled()) {
+					this.combo.setEnabled(true);
 				}
 			}
 		});
 
 		// Set combo items
-		this.controller.onNewCandidates(new IConsumer<List<Object>>() {
-			@Override
-			public void apply(List<Object> value) {
-				if (!combo.isDisposed()) {
-					if (value != null) {
-						Object[] candidates = value.toArray();
-						for (int i = 0; i < candidates.length; i++) {
-							if (candidates[i] == null) {
-								candidates[i] = NO_VALUE;
-							}
+		this.controller.onNewCandidates((value) -> {
+			if (!this.combo.isDisposed()) {
+				if (value != null) {
+					Object[] candidates = value.toArray();
+					for (int i = 0; i < candidates.length; i++) {
+						if (candidates[i] == null) {
+							candidates[i] = NO_VALUE;
 						}
-						comboViewer.setInput(candidates);
-					} else {
-						comboViewer.setInput(null);
 					}
-					if (!combo.isEnabled()) {
-						combo.setEnabled(true);
-					}
+					this.comboViewer.setInput(candidates);
+				} else {
+					this.comboViewer.setInput(null);
+				}
+				if (!this.combo.isEnabled()) {
+					this.combo.setEnabled(true);
 				}
 			}
 		});
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFTextLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFTextLifecycleManager.java
index 21682b6..4dbb77a 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFTextLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFTextLifecycleManager.java
@@ -22,7 +22,6 @@
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
 import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFTextController;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
@@ -38,7 +37,6 @@
 import org.eclipse.swt.events.FocusListener;
 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.graphics.Color;
 import org.eclipse.swt.layout.GridData;
@@ -212,12 +210,9 @@
 	public void aboutToBeShown() {
 		super.aboutToBeShown();
 
-		this.modifyListener = new ModifyListener() {
-			@Override
-			public void modifyText(ModifyEvent e) {
-				if (!EEFTextLifecycleManager.this.container.isRenderingInProgress() && !updateInProgress.get()) {
-					EEFTextLifecycleManager.this.isDirty = true;
-				}
+		this.modifyListener = (event) -> {
+			if (!this.container.isRenderingInProgress() && !updateInProgress.get()) {
+				this.isDirty = true;
 			}
 		};
 		this.text.addModifyListener(this.modifyListener);
@@ -254,22 +249,19 @@
 			this.text.addKeyListener(this.keyListener);
 		}
 
-		this.controller.onNewValue(new IConsumer<Object>() {
-			@Override
-			public void apply(Object value) {
-				if (!text.isDisposed()) {
-					String display = ""; //$NON-NLS-1$
-					if (value != null) {
-						display = Util.firstNonNull(value.toString(), display);
-					}
-					if (!(text.getText() != null && text.getText().equals(display))) {
-						text.setText(display);
-						referenceValue = text.getText();
-					}
-					EEFTextLifecycleManager.this.setStyle();
-					if (!text.isEnabled()) {
-						text.setEnabled(true);
-					}
+		this.controller.onNewValue((value) -> {
+			if (!text.isDisposed()) {
+				String display = ""; //$NON-NLS-1$
+				if (value != null) {
+					display = Util.firstNonNull(value.toString(), display);
+				}
+				if (!(text.getText() != null && text.getText().equals(display))) {
+					text.setText(display);
+					referenceValue = text.getText();
+				}
+				this.setStyle();
+				if (!text.isEnabled()) {
+					text.setEnabled(true);
 				}
 			}
 		});
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/RadioGroup.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/RadioGroup.java
index d8470eb..11fd2ba 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/RadioGroup.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/RadioGroup.java
@@ -69,12 +69,7 @@
 			this.setLayout(new GridLayout(numberOfColumns, true));
 		}
 
-		addListener(SWT.Dispose, new Listener() {
-			@Override
-			public void handleEvent(Event event) {
-				handleDispose(event);
-			}
-		});
+		this.addListener(SWT.Dispose, (event) -> this.handleDispose(event));
 	}
 
 	/**
@@ -155,9 +150,7 @@
 	 *            The selection listener
 	 */
 	public void removeSelectionListener(SelectionListener listener) {
-		for (Button button : buttons.values()) {
-			button.removeSelectionListener(listener);
-		}
+		buttons.values().forEach(button -> button.removeSelectionListener(listener));
 	}
 
 	/**
@@ -223,16 +216,14 @@
 	 *            the index of the item to select
 	 */
 	public void select(int index) {
-		buttons.get(Integer.valueOf(index)).setSelection(true);
+		this.buttons.get(Integer.valueOf(index)).setSelection(true);
 	}
 
 	/**
 	 * Deselects all selected items in the receiver's list.
 	 */
 	public void deselectAll() {
-		for (Button button : buttons.values()) {
-			button.setSelection(false);
-		}
+		this.buttons.values().forEach(button -> button.setSelection(false));
 	}
 
 	/**
@@ -242,9 +233,7 @@
 	 */
 	@Override
 	public void dispose() {
-		for (Button button : buttons.values()) {
-			button.dispose();
-		}
+		this.buttons.values().forEach(Button::dispose);
 		super.dispose();
 	}
 
@@ -256,8 +245,6 @@
 	@Override
 	public void setEnabled(boolean enabled) {
 		super.setEnabled(enabled);
-		for (Button button : buttons.values()) {
-			button.setEnabled(enabled);
-		}
+		this.buttons.values().forEach(button -> button.setEnabled(enabled));
 	}
 }
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFQuickFixPage.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFQuickFixPage.java
index ca9397b..21b6347 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFQuickFixPage.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFQuickFixPage.java
@@ -24,7 +24,6 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -168,30 +167,27 @@
 	 */
 	public void performFinish(IProgressMonitor monitor) {
 		try {
-			this.getWizard().getContainer().run(false, true, new IRunnableWithProgress() {
-				@Override
-				public void run(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException {
-					progressMonitor.beginTask(Messages.EEFQuickFixWizard_applyQuickFix, 1);
-					EEFQuickFixPage.this.getShell().getDisplay().readAndDispatch();
-					if (progressMonitor.isCanceled()) {
-						return;
-					}
-
-					ISelection selection = EEFQuickFixPage.this.quickFixesList.getSelection();
-					if (selection instanceof IStructuredSelection) {
-						IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-						// Only one quick fix can be selected
-						Object element = structuredSelection.getFirstElement();
-						if (element instanceof EEFValidationFixDescription) {
-							// Run the quick fix using the given eval
-							EEFValidationFixDescription validationFix = (EEFValidationFixDescription) element;
-							EAttribute expressionEAttribute = EefPackage.Literals.EEF_VALIDATION_FIX_DESCRIPTION__FIX_EXPRESSION;
-							EEFQuickFixPage.this.eval.logIfBlank(expressionEAttribute).call(validationFix.getFixExpression());
-						}
-					}
-
-					progressMonitor.worked(1);
+			this.getWizard().getContainer().run(false, true, (progressMonitor) -> {
+				progressMonitor.beginTask(Messages.EEFQuickFixWizard_applyQuickFix, 1);
+				this.getShell().getDisplay().readAndDispatch();
+				if (progressMonitor.isCanceled()) {
+					return;
 				}
+
+				ISelection selection = this.quickFixesList.getSelection();
+				if (selection instanceof IStructuredSelection) {
+					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+					// Only one quick fix can be selected
+					Object element = structuredSelection.getFirstElement();
+					if (element instanceof EEFValidationFixDescription) {
+						// Run the quick fix using the given eval
+						EEFValidationFixDescription validationFix = (EEFValidationFixDescription) element;
+						EAttribute expressionEAttribute = EefPackage.Literals.EEF_VALIDATION_FIX_DESCRIPTION__FIX_EXPRESSION;
+						this.eval.logIfBlank(expressionEAttribute).call(validationFix.getFixExpression());
+					}
+				}
+
+				progressMonitor.worked(1);
 			});
 		} catch (InvocationTargetException e) {
 			EEFIdeUiPlugin.getPlugin().error(e.getMessage(), e);
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFValidationMessagesPage.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFValidationMessagesPage.java
index cf7ea5c..732767b 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFValidationMessagesPage.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/quickfix/EEFValidationMessagesPage.java
@@ -16,9 +16,7 @@
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.wizard.WizardPage;
@@ -107,30 +105,26 @@
 		this.validationMessagesList.setContentProvider(new EEFValidationMessagesTableContentProvider());
 		this.validationMessagesList.setLabelProvider(new EEFValidationMessagesTableLabelProvider());
 		this.validationMessagesList.setComparator(new EEFValidationMessagesTableComparator());
-		this.validationMessagesList.addSelectionChangedListener(new ISelectionChangedListener() {
-			@Override
-			public void selectionChanged(SelectionChangedEvent event) {
-				// Sets the new selected message
-				ISelection selection = event.getSelection();
-				if (selection instanceof IStructuredSelection) {
-					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-					Object element = structuredSelection.getFirstElement();
-					if (element instanceof IMessage) {
-						EEFValidationMessagesPage.this.selectedMessage = (IMessage) element;
-					}
+		this.validationMessagesList.addSelectionChangedListener((event) -> {
+			// Sets the new selected message
+			ISelection selection = event.getSelection();
+			if (selection instanceof IStructuredSelection) {
+				IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+				Object element = structuredSelection.getFirstElement();
+				if (element instanceof IMessage) {
+					this.selectedMessage = (IMessage) element;
 				}
-
-				if (EEFValidationMessagesPage.this.selectedMessage.getKey() instanceof EEFValidationRuleDescription) {
-					EEFValidationRuleDescription validationRuleDescription = (EEFValidationRuleDescription) EEFValidationMessagesPage.this.selectedMessage
-							.getKey();
-					if (validationRuleDescription.getFixes().size() == 0) {
-						EEFValidationMessagesPage.this.setMessage(Messages.EEFQuickFixWizard_noQuickFixAvailable, IMessageProvider.ERROR);
-					} else {
-						EEFValidationMessagesPage.this.setMessage(null);
-					}
-				}
-				EEFValidationMessagesPage.this.setPageComplete(true);
 			}
+
+			if (this.selectedMessage.getKey() instanceof EEFValidationRuleDescription) {
+				EEFValidationRuleDescription validationRuleDescription = (EEFValidationRuleDescription) this.selectedMessage.getKey();
+				if (validationRuleDescription.getFixes().size() == 0) {
+					this.setMessage(Messages.EEFQuickFixWizard_noQuickFixAvailable, IMessageProvider.ERROR);
+				} else {
+					this.setMessage(null);
+				}
+			}
+			this.setPageComplete(true);
 		});
 
 		FormData listData = new FormData();
diff --git a/plugins/org.eclipse.eef.ide/src/org/eclipse/eef/ide/api/extensions/impl/ItemRegistry.java b/plugins/org.eclipse.eef.ide/src/org/eclipse/eef/ide/api/extensions/impl/ItemRegistry.java
index 16bee97..70cd5f4 100644
--- a/plugins/org.eclipse.eef.ide/src/org/eclipse/eef/ide/api/extensions/impl/ItemRegistry.java
+++ b/plugins/org.eclipse.eef.ide/src/org/eclipse/eef/ide/api/extensions/impl/ItemRegistry.java
@@ -30,8 +30,7 @@
 public class ItemRegistry<T> implements IItemRegistry<T> {
 
 	/**
-	 * The map of the identifier of the description to the
-	 * {@link IItemDescriptor}.
+	 * The map of the identifier of the description to the {@link IItemDescriptor}.
 	 */
 	private Map<String, IItemDescriptor<T>> id2descriptors = new HashMap<String, IItemDescriptor<T>>();
 
@@ -44,9 +43,7 @@
 	public List<IItemDescriptor<T>> getItemDescriptors() {
 		List<IItemDescriptor<T>> descriptors = new ArrayList<IItemDescriptor<T>>();
 		Collection<IItemDescriptor<T>> values = this.id2descriptors.values();
-		for (IItemDescriptor<T> iItemDescriptor : values) {
-			descriptors.add(iItemDescriptor);
-		}
+		descriptors.addAll(values);
 		return descriptors;
 	}
 
diff --git a/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerController.java b/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerController.java
index 4d1d6e0..60d1974 100644
--- a/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerController.java
+++ b/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerController.java
@@ -83,24 +83,21 @@
 		super.refresh();
 
 		String valueExpression = getCustomExpression(VALUE_EXPRESSION_ID);
-		this.newEval().logIfInvalidType(String.class).call(valueExpression, new IConsumer<String>() {
-			@Override
-			public void apply(String value) {
-				int red = DEFAULT_COLOR_CODE;
-				int green = DEFAULT_COLOR_CODE;
-				int blue = DEFAULT_COLOR_CODE;
-				if (value != null) {
-					String[] rgb = value.split(SEPARATOR);
-					if (rgb.length == 3) {
-						try {
-							red = Integer.parseInt(rgb[0]);
-							green = Integer.parseInt(rgb[1]);
-							blue = Integer.parseInt(rgb[2]);
-							Color color = ColorHelper.getColor(red, green, blue);
-							ColorPickerController.this.newValueConsumer.apply(color);
-						} catch (NumberFormatException e) {
-							// TODO Log warning about unexpected result format from the expression.
-						}
+		this.newEval().logIfInvalidType(String.class).call(valueExpression, (value) -> {
+			int red = DEFAULT_COLOR_CODE;
+			int green = DEFAULT_COLOR_CODE;
+			int blue = DEFAULT_COLOR_CODE;
+			if (value != null) {
+				String[] rgb = value.split(SEPARATOR);
+				if (rgb.length == 3) {
+					try {
+						red = Integer.parseInt(rgb[0]);
+						green = Integer.parseInt(rgb[1]);
+						blue = Integer.parseInt(rgb[2]);
+						Color color = ColorHelper.getColor(red, green, blue);
+						ColorPickerController.this.newValueConsumer.apply(color);
+					} catch (NumberFormatException e) {
+						// TODO Log warning about unexpected result format from the expression.
 					}
 				}
 			}
@@ -124,17 +121,14 @@
 
 	@Override
 	public void updateValue(final RGB color) {
-		contextAdapter.performModelChange(new Runnable() {
-			@Override
-			public void run() {
-				String editExpression = getCustomExpression(EDIT_EXPRESSION_ID);
+		contextAdapter.performModelChange(() -> {
+			String editExpression = getCustomExpression(EDIT_EXPRESSION_ID);
 
-				Map<String, Object> variables = new HashMap<String, Object>();
-				variables.putAll(ColorPickerController.this.variableManager.getVariables());
-				variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, color.red + SEPARATOR + color.green + SEPARATOR + color.blue);
+			Map<String, Object> variables = new HashMap<String, Object>();
+			variables.putAll(this.variableManager.getVariables());
+			variables.put(EEFExpressionUtils.EEFText.NEW_VALUE, color.red + SEPARATOR + color.green + SEPARATOR + color.blue);
 
-				EvalFactory.of(ColorPickerController.this.interpreter, variables).call(editExpression);
-			}
+			EvalFactory.of(this.interpreter, variables).call(editExpression);
 		});
 	}
 
diff --git a/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerLifecycleManager.java b/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerLifecycleManager.java
index 8ec8e23..b70e08b 100644
--- a/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerLifecycleManager.java
+++ b/samples/org.eclipse.eef.sample.custom.widget.colorpicker/src/org/eclipse/eef/sample/custom/widget/colorpicker/ColorPickerLifecycleManager.java
@@ -15,7 +15,6 @@
 import org.eclipse.eef.common.ui.api.EEFWidgetFactory;
 import org.eclipse.eef.common.ui.api.IEEFFormContainer;
 import org.eclipse.eef.core.api.EditingContextAdapter;
-import org.eclipse.eef.core.api.controllers.IConsumer;
 import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
 import org.eclipse.eef.ide.ui.api.widgets.AbstractEEFWidgetLifecycleManager;
 import org.eclipse.sirius.common.interpreter.api.IInterpreter;
@@ -23,7 +22,6 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.ColorDialog;
 import org.eclipse.swt.widgets.Composite;
@@ -131,14 +129,11 @@
 		};
 		this.colorPicker.addMouseListener(mouseListener);
 
-		this.controller.onNewValue(new IConsumer<Color>() {
-			@Override
-			public void apply(Color value) {
-				if (!colorPicker.isDisposed() && !(colorPicker.getBackground() != null && colorPicker.getBackground().equals(value))) {
-					colorPicker.setImage(colorPicker.getColorImage(value));
-					if (!colorPicker.isEnabled()) {
-						colorPicker.setEnabled(true);
-					}
+		this.controller.onNewValue((value) -> {
+			if (!colorPicker.isDisposed() && !(colorPicker.getBackground() != null && colorPicker.getBackground().equals(value))) {
+				colorPicker.setImage(colorPicker.getColorImage(value));
+				if (!colorPicker.isEnabled()) {
+					colorPicker.setEnabled(true);
 				}
 			}
 		});