190280 - externalizing JPA details view strings
diff --git a/jpa/plugins/org.eclipse.jpt.core/model/core.ecore b/jpa/plugins/org.eclipse.jpt.core/model/core.ecore
index 3f2f839..5187cee 100644
--- a/jpa/plugins/org.eclipse.jpt.core/model/core.ecore
+++ b/jpa/plugins/org.eclipse.jpt.core/model/core.ecore
@@ -355,7 +355,7 @@
       <eLiterals name="true" value="2" literal="True"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EEnum" name="DefaultTrueBoolean">
-      <eLiterals name="Default" literal="Default (False)"/>
+      <eLiterals name="Default" literal="Default (True)"/>
       <eLiterals name="true" value="1" literal="True"/>
       <eLiterals name="false" value="2" literal="False"/>
     </eClassifiers>
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/DefaultTrueBoolean.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/DefaultTrueBoolean.java
index cac2c8f..ad70d8d 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/DefaultTrueBoolean.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/DefaultTrueBoolean.java
@@ -35,7 +35,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	DEFAULT(0, "Default", "Default (False)"), /**
+	DEFAULT(0, "Default", "Default (True)"), /**
 	 * The '<em><b>True</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties
index c995fed..d8d63ae 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_mappings.properties
@@ -128,6 +128,7 @@
 AttributeOverridesComposite_attributeOverrides=Attribute Overrides
 AttributeOverridesComposite_overridDefault=Override Default
 OverridesComposite_joinColumn=Join Columns
+InheritanceComposite_default=Default ({0})
 InheritanceComposite_strategy=Strategy:
 InheritanceComposite_discriminatorValue=Discriminator Value:
 InheritanceComposite_discriminatorValueDefaultWithOneParam=Default ({0})
@@ -173,5 +174,12 @@
 SecondaryTableDialog_name=Name:
 SecondaryTableDialog_catalog=Catalog:
 SecondaryTableDialog_schema=Schema:
-SecondaryTableDialog_defaultSchema=Default({0})
-SecondaryTableDialog_defaultCatalog=Default({0})
+SecondaryTableDialog_defaultSchema=Default ({0})
+SecondaryTableDialog_defaultCatalog=Default ({0})
+
+AccessTypeCombo_default=Default
+EnumComboViewer_default=Default ({0})
+MetaDataCompleteCombo_Default=Default ({0})
+JoinColumnDialog_defaultTrue=Default ({0})
+InheritanceComposite_defaultDiscriminatorType=Default ({0})
+GeneratedValueComposite_default=Default ({0})
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java
index e1af8c6..03380e7 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/JptUiMappingsMessages.java
@@ -137,6 +137,7 @@
 	public static String AttributeOverridesComposite_overridDefault;
 	public static String OverridesComposite_joinColumn;
 
+	public static String InheritanceComposite_default;	
 	public static String InheritanceComposite_strategy;	
 	public static String InheritanceComposite_discriminatorValue;	
 	public static String InheritanceComposite_discriminatorValueDefaultWithOneParam;
@@ -185,6 +186,13 @@
 	public static String SecondaryTableDialog_defaultSchema;
 	public static String SecondaryTableDialog_defaultCatalog;	
 	
+	public static String AccessTypeCombo_default;
+	public static String EnumComboViewer_default;
+	public static String MetaDataCompleteCombo_Default;
+	public static String JoinColumnDialog_defaultTrue;
+	public static String InheritanceComposite_defaultDiscriminatorType;
+	public static String GeneratedValueComposite_default;
+	
 	static {
 		// initialize resource bundle
 		NLS.initializeMessages(BUNDLE_NAME, JptUiMappingsMessages.class);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java
index a39a8a1..3a2542b 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/BasicComposite.java
@@ -207,6 +207,15 @@
 		public Object[] enumValues() {
 			return DefaultEagerFetchType.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultEagerFetchType.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "Eager";
+		}
 	}
 
 	
@@ -242,6 +251,16 @@
 		public Object[] enumValues() {
 			return DefaultTrueBoolean.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultTrueBoolean.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "True";
+		}
+
 	}
 
 	
@@ -277,6 +296,20 @@
 		public Object[] enumValues() {
 			return TemporalType.VALUES.toArray();
 		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public Object defaultValue() {
+			return null;
+		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public String defaultString() {
+			return null;
+		}
 	}
 	
 	private class EnumeratedTypeHolder extends EObjectImpl implements EnumHolder {
@@ -311,5 +344,14 @@
 		public Object[] enumValues() {
 			return EnumType.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return EnumType.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "Ordinal";
+		}
 	}
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java
index ea3f8a8..7e3a1b2 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ColumnComposite.java
@@ -510,6 +510,15 @@
 		public Object[] enumValues() {
 			return DefaultTrueBoolean.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultTrueBoolean.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "True";
+		}
 	}
 
 	private class UpdatableHolder extends EObjectImpl implements EnumHolder {
@@ -545,5 +554,14 @@
 		public Object[] enumValues() {
 			return DefaultTrueBoolean.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultTrueBoolean.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "True";
+		}
 	}
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java
index 3a2975d..43e6664 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/CommonWidgets.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.jpt.core.internal.mappings.DefaultEagerFetchType;
 import org.eclipse.jpt.core.internal.mappings.DefaultLazyFetchType;
+import org.eclipse.jpt.core.internal.mappings.EnumType;
 import org.eclipse.jpt.core.internal.mappings.IAbstractColumn;
 import org.eclipse.jpt.core.internal.mappings.IColumn;
 import org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping;
@@ -147,6 +148,15 @@
 		public Object[] enumValues() {
 			return DefaultLazyFetchType.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultLazyFetchType.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "Lazy";
+		}
 	}
 	
 	private static class SingleRelationshipMappingFetchHolder extends EObjectImpl implements EnumHolder {
@@ -182,6 +192,15 @@
 		public Object[] enumValues() {
 			return DefaultEagerFetchType.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultEagerFetchType.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "Eager";
+		}
 	}	
 	private static abstract class ColumnHolder extends EObjectImpl implements StringHolder {
 		private IAbstractColumn column;
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java
index 13c83c0..2cf6b61 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/EnumComboViewer.java
@@ -13,13 +13,18 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jpt.core.internal.mappings.InheritanceType;
 import org.eclipse.jpt.ui.internal.details.BaseJpaController;
+import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
 import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -52,14 +57,25 @@
 	protected void buildWidget(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		this.comboViewer = new CComboViewer(combo);
-		
+		this.comboViewer.setLabelProvider(buildLabelProvider());
 		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
 				EnumComboViewer.this.selectionChanged(event.getSelection());
 			}
 		});
 	}
-	
+	protected IBaseLabelProvider buildLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == enumHolder.defaultValue()) {
+					return NLS.bind(JptUiMappingsMessages.EnumComboViewer_default, enumHolder.defaultString());
+				}
+				return super.getText(element);
+			}
+		};
+	}
+
 	void selectionChanged(ISelection sel) {
 		if (sel instanceof IStructuredSelection) {
 			Object selection = ((IStructuredSelection) sel).getFirstElement();
@@ -176,5 +192,16 @@
 		EObject wrappedObject();
 		
 		Object[] enumValues();
+		
+		/**
+		 * Return the Default Enumerator object
+		 */
+		Object defaultValue();
+		
+		/**
+		 * Return the String to be displayed to the user
+		 * Deafult ([defaultString()])
+		 */
+		String defaultString();
 	}
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
index 9bdc7da..c13c5f7 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
@@ -15,12 +15,15 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jpt.core.internal.mappings.GenerationType;
 import org.eclipse.jpt.core.internal.mappings.IGeneratedValue;
 import org.eclipse.jpt.core.internal.mappings.IId;
+import org.eclipse.jpt.core.internal.mappings.InheritanceType;
 import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
 import org.eclipse.jpt.core.internal.platform.IGeneratorRepository;
 import org.eclipse.jpt.core.internal.platform.NullGeneratorRepository;
@@ -28,6 +31,7 @@
 import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
 import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
 import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.events.ModifyEvent;
@@ -97,7 +101,7 @@
 	private CComboViewer buildStrategyComboViewer(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		CComboViewer viewer = new CComboViewer(combo);
-
+		viewer.setLabelProvider(buildStrategyLabelProvider());
 		viewer.add(GenerationType.VALUES.toArray());
 		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
@@ -118,6 +122,20 @@
 		});
 		return viewer;
 	}
+	
+	private IBaseLabelProvider buildStrategyLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == GenerationType.DEFAULT) {
+					//TODO need to move this to the model, don't want hardcoded String
+					return NLS.bind(JptUiMappingsMessages.GeneratedValueComposite_default, "Auto");
+				}
+				return super.getText(element);
+			}
+		};
+	}
+	
 
 	protected CCombo buildGeneratorNameCombo(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java
index 74eed9a..b71d4cf 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/IdComposite.java
@@ -441,5 +441,19 @@
 		public Object[] enumValues() {
 			return TemporalType.VALUES.toArray();
 		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public Object defaultValue() {
+			return null;
+		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public String defaultString() {
+			return null;
+		}
 	}
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java
index 5b03240..0423ef9 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/InheritanceComposite.java
@@ -15,9 +15,13 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jpt.core.internal.IJpaProject;
@@ -42,6 +46,7 @@
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -215,8 +220,8 @@
 	private CComboViewer buildStrategyCombo(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		CComboViewer strategyViewer = new CComboViewer(combo);
+		strategyViewer.setLabelProvider(buildStrategyLabelProvider());
 		strategyViewer.add(InheritanceType.VALUES.toArray());
-		
 		strategyViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
 				InheritanceComposite.this.strategySelectionChanged(event.getSelection());
@@ -226,6 +231,19 @@
 		return strategyViewer;
 	}
 	
+	private IBaseLabelProvider buildStrategyLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == InheritanceType.DEFAULT) {
+					//TODO need to move this to the model, don't want hardcoded String
+					return NLS.bind(JptUiMappingsMessages.InheritanceComposite_default, "Single Table");
+				}
+				return super.getText(element);
+			}
+		};
+	}
+	
 	void strategySelectionChanged(ISelection selection) {
 		if (selection instanceof IStructuredSelection) {
 			InheritanceType inheritanceType = (InheritanceType) ((IStructuredSelection) selection).getFirstElement();
@@ -270,6 +288,7 @@
 	private CComboViewer buildDiscriminatorTypeCombo(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		CComboViewer discriminatorTypeViewer = new CComboViewer(combo);
+		discriminatorTypeViewer.setLabelProvider(buildDiscriminatorTypeLabelProvider());
 		discriminatorTypeViewer.add(DiscriminatorType.VALUES.toArray());
 		
 		discriminatorTypeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -281,6 +300,19 @@
 		return discriminatorTypeViewer;
 	}
 	
+	private IBaseLabelProvider buildDiscriminatorTypeLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == DiscriminatorType.DEFAULT) {
+					//TODO need to move this to the model, don't want hardcoded String
+					return NLS.bind(JptUiMappingsMessages.InheritanceComposite_defaultDiscriminatorType, "String");
+				}
+				return super.getText(element);
+			}
+		};
+	}
+	
 	void discriminatorTypeSelectionChanged(ISelection selection) {
 		if (selection instanceof IStructuredSelection) {
 			DiscriminatorType discriminatorType = (DiscriminatorType) ((IStructuredSelection) selection).getFirstElement();
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java
index 20eebef..e36b19e 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/JoinColumnDialog.java
@@ -11,11 +11,14 @@
 
 import java.util.Iterator;
 import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jpt.core.internal.mappings.DefaultTrueBoolean;
 import org.eclipse.jpt.core.internal.mappings.IJoinColumn;
+import org.eclipse.jpt.core.internal.mappings.InheritanceType;
 import org.eclipse.jpt.db.internal.Schema;
 import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
 import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
@@ -98,20 +101,35 @@
 
 	private ComboViewer buildInsertableComboViewer(Composite parent) {
 		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
+		viewer.setLabelProvider(buildDefaultTrueLabelProvider());
 		viewer.add(DefaultTrueBoolean.VALUES.toArray());
+		
 		DefaultTrueBoolean sel = (this.joinColumn() == null) ? DefaultTrueBoolean.DEFAULT : this.joinColumn().getInsertable();
 		viewer.setSelection(new StructuredSelection(sel));
 		return viewer;
 	}
+	
+	private IBaseLabelProvider buildDefaultTrueLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == DefaultTrueBoolean.DEFAULT) {
+					//TODO need to move this to the model, don't want hardcoded String
+					return NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultTrue, "True");
+				}
+				return super.getText(element);
+			}
+		};
+	}
 
 	private ComboViewer buildUpdatableComboViewer(Composite parent) {
 		ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
+		viewer.setLabelProvider(buildDefaultTrueLabelProvider());
 		viewer.add(DefaultTrueBoolean.VALUES.toArray());
 		DefaultTrueBoolean sel = (this.joinColumn() == null) ? DefaultTrueBoolean.DEFAULT : this.joinColumn().getUpdatable();
 		viewer.setSelection(new StructuredSelection(sel));
 		return viewer;
 	}
-
 	
 	protected void populateTableCombo() {
 		this.tableCombo.add(NLS.bind(JptUiMappingsMessages.JoinColumnDialog_defaultWithOneParam, defaultTableName()));
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java
index 10e79ac..1355293 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/ManyToOneComposite.java
@@ -181,5 +181,13 @@
 		public Object[] enumValues() {
 			return DefaultTrueBoolean.VALUES.toArray();
 		}
+		public Object defaultValue() {
+			return DefaultTrueBoolean.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "True";
+		}
 	}
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java
index b9f7550..7396977 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OneToOneComposite.java
@@ -191,6 +191,16 @@
 		public Object[] enumValues() {
 			return DefaultTrueBoolean.VALUES.toArray();
 		}
+		
+		public Object defaultValue() {
+			return DefaultTrueBoolean.DEFAULT;
+		}
+		
+		public String defaultString() {
+			//TODO move this out of the UI into the model
+			return "True";
+		}
+
 	}
 
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java
index f534ed3..986aab2 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/OverridesComposite.java
@@ -115,7 +115,11 @@
 		this.listViewer.getList().setLayoutData(gridData);
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.listViewer.getList(), IJpaHelpContextIds.ENTITY_ATTRIBUTE_OVERRIDES);
 		
-		this.overrideDefaultButton = getWidgetFactory().createButton(attributeOverridesGroup, "Override Default", SWT.CHECK);
+		this.overrideDefaultButton = 
+			getWidgetFactory().createButton(
+				attributeOverridesGroup, 
+				JptUiMappingsMessages.AttributeOverridesComposite_overridDefault, 
+				SWT.CHECK);
 		this.overrideDefaultButton.addSelectionListener(buildOverrideDefaultSelectionListener());
 		gridData = new GridData();
 		gridData.verticalAlignment = SWT.BEGINNING;
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java
index 96fdf34..fe7fb65 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/VersionComposite.java
@@ -146,6 +146,20 @@
 		public Object[] enumValues() {
 			return TemporalType.VALUES.toArray();
 		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public Object defaultValue() {
+			return null;
+		}
+		
+		/**
+		 * TemporalType has no Default, return null
+		 */
+		public String defaultString() {
+			return null;
+		}
 	}
 
 }
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java
index 69ec0cc..55afba9 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/AccessTypeComboViewer.java
@@ -13,14 +13,19 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jpt.core.internal.AccessType;
+import org.eclipse.jpt.core.internal.mappings.InheritanceType;
 import org.eclipse.jpt.ui.internal.details.BaseJpaController;
+import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
 import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -53,6 +58,7 @@
 	protected void buildWidget(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		this.comboViewer = new CComboViewer(combo);
+		this.comboViewer.setLabelProvider(buildAccessTypeLabelProvider());
 		this.comboViewer.add(AccessType.VALUES.toArray());
 		
 		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -62,6 +68,18 @@
 		});
 	}
 	
+	private IBaseLabelProvider buildAccessTypeLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == AccessType.DEFAULT) {
+					return JptUiMappingsMessages.AccessTypeCombo_default;
+				}
+				return super.getText(element);
+			}
+		};
+	}
+	
 	void accessTypeSelectionChanged(ISelection selection) {
 		if (selection instanceof IStructuredSelection) {
 			AccessType access = (AccessType) ((IStructuredSelection) selection).getFirstElement();
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java
index 257e75b..4d98719 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/MetaDataCompleteComboViewer.java
@@ -13,16 +13,21 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jpt.core.internal.content.orm.OrmPackage;
 import org.eclipse.jpt.core.internal.content.orm.XmlTypeMapping;
 import org.eclipse.jpt.core.internal.mappings.DefaultFalseBoolean;
+import org.eclipse.jpt.core.internal.mappings.InheritanceType;
 import org.eclipse.jpt.ui.internal.details.BaseJpaController;
+import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
 import org.eclipse.jpt.ui.internal.widgets.CComboViewer;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -55,15 +60,27 @@
 	protected void buildWidget(Composite parent) {
 		CCombo combo = getWidgetFactory().createCCombo(parent);
 		this.comboViewer = new CComboViewer(combo);
+		this.comboViewer.setLabelProvider(buildLabelProvider());
 		this.comboViewer.add(DefaultFalseBoolean.VALUES.toArray());
-		
 		this.comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
 				MetaDataCompleteComboViewer.this.metadataCompleteSelectionChanged(event.getSelection());
 			}
 		});
 	}
-	
+	private IBaseLabelProvider buildLabelProvider() {
+		return new LabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element == DefaultFalseBoolean.DEFAULT) {
+					//TODO need to move this to the model, don't want hardcoded String
+					return NLS.bind(JptUiMappingsMessages.MetaDataCompleteCombo_Default, "False");
+				}
+				return super.getText(element);
+			}
+		};
+	}
+
 	void metadataCompleteSelectionChanged(ISelection selection) {
 		if (selection instanceof IStructuredSelection) {
 			DefaultFalseBoolean metadataComplete = (DefaultFalseBoolean) ((IStructuredSelection) selection).getFirstElement();