diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java
index 72548b3..5b1ec8e 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java
@@ -297,9 +297,9 @@
 		}
 
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_ToBeRendered, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.toBeRendered(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.toBeRendered(getEditingDomain()));
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_Visible, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.visible(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.visible(getEditingDomain()));
 
 		item = new CTabItem(folder, SWT.NONE);
 		item.setText(Messages.ModelTooling_Common_TabSupplementary);
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java
index 2af0531..1370230 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java
@@ -322,9 +322,9 @@
 		}
 
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_ToBeRendered, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.toBeRendered(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.toBeRendered(getEditingDomain()));
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_Visible, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.visible(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.visible(getEditingDomain()));
 
 		item = new CTabItem(folder, SWT.NONE);
 		item.setText(Messages.ModelTooling_Common_TabSupplementary);
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java
index dc065d5..de0aeec 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java
@@ -311,9 +311,9 @@
 		createFormSubTypeForm(parent, context, master);
 
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_ToBeRendered, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.toBeRendered(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.toBeRendered(getEditingDomain()));
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_Visible, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.visible(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.visible(getEditingDomain()));
 
 		item = new CTabItem(folder, SWT.NONE);
 		item.setText(Messages.ModelTooling_Common_TabSupplementary);
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java
index cd95465..8890830 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java
@@ -185,7 +185,7 @@
 	protected void createFormSubTypeForm(Composite parent, CTabFolder folder, EMFDataBindingContext context,
 			final WritableValue<M> master) {
 		final IWidgetValueProperty<Text, String> textProp = WidgetProperties.text(SWT.Modify);
-		final IWidgetValueProperty<Button, Boolean> checkProp = WidgetProperties.selection();
+		final IWidgetValueProperty<Button, Boolean> checkProp = WidgetProperties.buttonSelection();
 		final IWidgetValueProperty<Button, Boolean> enabled = WidgetProperties.enabled();
 
 		// ------------------------------------------------------------
@@ -331,9 +331,9 @@
 		createSubTypeFormElements(parent, context, master);
 
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_ToBeRendered, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.toBeRendered(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.toBeRendered(getEditingDomain()));
 		ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_Visible, getMaster(), context,
-				WidgetProperties.selection(), E4Properties.visible(getEditingDomain()));
+				WidgetProperties.buttonSelection(), E4Properties.visible(getEditingDomain()));
 
 		final CTabItem item = new CTabItem(folder, SWT.NONE);
 		item.setText(Messages.ModelTooling_Common_TabSupplementary);
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewDynamicMenuContributionClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewDynamicMenuContributionClassWizard.java
index 7829ffe..16f97fd 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewDynamicMenuContributionClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewDynamicMenuContributionClassWizard.java
@@ -95,7 +95,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_ABOUT_TO_HIDE).observe(
 							getClazz()));
 				}
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
index 31dfe31..812c5df 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
@@ -99,7 +99,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_CAN_EXECUTE).observe(
 							getClazz()));
 				}
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
index 963f358..279d5bf 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
@@ -82,7 +82,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_POST_CONSTRUCT).observe(
 							getClazz()));
 				}
@@ -103,7 +103,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_PREDESTROY).observe(
 							getClazz()));
 				}
@@ -124,7 +124,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_FOCUS).observe(
 							getClazz()));
 				}
@@ -145,7 +145,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(USE_PERSIST).observe(
 							getClazz()));
 				}
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewToolControlClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewToolControlClassWizard.java
index 8486b51..4aa6afc 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewToolControlClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewToolControlClassWizard.java
@@ -93,7 +93,7 @@
 
 					final Button b = new Button(parent, SWT.CHECK);
 					dbc.bindValue(
-						WidgetProperties.selection().observe(b),
+						WidgetProperties.buttonSelection().observe(b),
 						BeanProperties.value(CREATE_DEFAULT_CONSTRUCTOR).observe(
 							getClazz()));
 				}
