You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/01/27 13:56:25 UTC

[3/3] isis git commit: ISIS-1012 Introduce IsisConverterLocator - a locator for the best IConverter for ObjectAdapters

ISIS-1012 Introduce IsisConverterLocator - a locator for the best IConverter for ObjectAdapters

Deprecate WicketViewerSettings#getDatePickerPattern(). Instead each converter should use either #getDatePattern() or #getDateTimePattern() depending on its type


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/75d20903
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/75d20903
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/75d20903

Branch: refs/heads/ISIS-1012-date-patterns
Commit: 75d209033ddbb803352a1f108eb34514f289d7af
Parents: 7be058f
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Jan 27 14:54:56 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Jan 27 14:54:56 2015 +0200

----------------------------------------------------------------------
 .../wicket/model/isis/WicketViewerSettings.java |  6 ++
 .../scalars/IsisConverterLocator.java           | 61 ++++++++++++++++++++
 .../isisapplib/DateConverterForApplibDate.java  |  4 +-
 .../DateConverterForApplibDateTime.java         |  4 +-
 .../jdkdates/DateConverterForJavaSqlDate.java   |  4 +-
 .../jdkdates/DateConverterForJavaUtilDate.java  |  4 +-
 .../jodatime/DateConverterForJodaDateTime.java  |  4 +-
 .../jodatime/DateConverterForJodaLocalDate.java |  4 +-
 .../DateConverterForJodaLocalDateTime.java      |  4 +-
 .../jodatime/JodaLocalDateTimePanel.java        |  1 +
 .../scalars/reference/ReferencePanel.java       | 11 ++--
 .../ObjectAdapterMementoProviderAbstract.java   | 25 +++++++-
 .../valuechoices/ValueChoicesSelect2Panel.java  | 12 ++--
 .../DateConverterForApplibDateTest.java         |  2 -
 .../DateConverterForApplibDateTimeTest.java     |  2 -
 .../DateConverterForJavaUtilDateTest.java       |  2 -
 .../FixedObjectAdapterMementoProviderTest.java  |  6 +-
 17 files changed, 123 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index a3b9491..bc41422 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -31,6 +31,12 @@ public interface WicketViewerSettings extends Serializable {
     public String getDatePattern();
     public String getDateTimePattern();
     public String getTimestampPattern();
+
+    /**
+     * @deprecated Not used since 1.8.0. Each Date scalar panel will use {@linkplain #getDatePattern()}
+     *             or {@linkplain #getDateTimePattern()} depending on its date type
+     */
+    @Deprecated
     public String getDatePickerPattern();
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
new file mode 100644
index 0000000..d67e003
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
@@ -0,0 +1,61 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facets.propparam.renderedadjusted.RenderedAdjustedFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.DateConverterForApplibDate;
+import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.DateConverterForApplibDateTime;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates.DateConverterForJavaSqlDate;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates.DateConverterForJavaSqlTimestamp;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates.DateConverterForJavaUtilDate;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jodatime.DateConverterForJodaDateTime;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jodatime.DateConverterForJodaLocalDate;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jodatime.DateConverterForJodaLocalDateTime;
+
+/**
+ * A locator for IConverters for ObjectAdapters
+ */
+public class IsisConverterLocator {
+
+    /**
+     * Locates the best IConverter implementation for a given {@link org.apache.isis.core.metamodel.adapter.ObjectAdapter}
+     *
+     * @param objectAdapter The object adapter to locate converter for
+     * @param wicketViewerSettings The date related settings
+     * @return The best converter for the object adapter's type
+     */
+    public static IConverter<Object> findConverter(final ObjectAdapter objectAdapter, final WicketViewerSettings wicketViewerSettings) {
+        ObjectSpecification objectSpecification = objectAdapter.getSpecification();
+        RenderedAdjustedFacet renderedAdjustedFacet = objectSpecification.getFacet(RenderedAdjustedFacet.class);
+        int adjustBy = renderedAdjustedFacet != null ? renderedAdjustedFacet.value() : 0;
+        Class<?> correspondingClass = objectSpecification.getCorrespondingClass();
+
+        IConverter converter = null;
+        if (java.util.Date.class == correspondingClass) {
+            converter = new DateConverterForJavaUtilDate(wicketViewerSettings, adjustBy);
+        } else if (java.sql.Date.class == correspondingClass) {
+            converter = new DateConverterForJavaSqlDate(wicketViewerSettings, adjustBy);
+        } else if (org.apache.isis.applib.value.Date.class == correspondingClass) {
+            converter = new DateConverterForApplibDate(wicketViewerSettings, adjustBy);
+        } else if (org.apache.isis.applib.value.DateTime.class == correspondingClass) {
+            converter = new DateConverterForApplibDateTime(wicketViewerSettings, adjustBy);
+        } else if (org.joda.time.LocalDate.class == correspondingClass) {
+            converter = new DateConverterForJodaLocalDate(wicketViewerSettings, adjustBy);
+        } else if (org.joda.time.LocalDateTime.class == correspondingClass) {
+            converter = new DateConverterForJodaLocalDateTime(wicketViewerSettings, adjustBy);
+        } else if (org.joda.time.DateTime.class == correspondingClass) {
+            converter = new DateConverterForJodaDateTime(wicketViewerSettings, adjustBy);
+        } else if (java.sql.Timestamp.class == correspondingClass) {
+            converter = new DateConverterForJavaSqlTimestamp(wicketViewerSettings, adjustBy);
+        } else if (Application.exists()) {
+            IConverterLocator converterLocator = Application.get().getConverterLocator();
+            converter = converterLocator.getConverter(correspondingClass);
+        }
+
+        return converter;
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
index ee201cc..cf0b098 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
@@ -31,7 +31,7 @@ public class DateConverterForApplibDate extends DateConverterAbstract<org.apache
     private final DateConverterForJavaUtilDate converter;
     
     public DateConverterForApplibDate(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDatePattern(), adjustBy);
     }
 
     private DateConverterForApplibDate(String datePattern, String datePickerPattern, int adjustBy) {
@@ -51,4 +51,4 @@ public class DateConverterForApplibDate extends DateConverterAbstract<org.apache
     }
 
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
index 35106a8..222c8f8 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
@@ -31,7 +31,7 @@ public class DateConverterForApplibDateTime extends DateConverterAbstract<org.ap
     private final DateConverterForJavaUtilDate converter;
     
     public DateConverterForApplibDateTime(WicketViewerSettings settings, int adjustBy) {
-        super(org.apache.isis.applib.value.DateTime.class, settings.getDatePattern(), settings.getDateTimePattern(), settings.getDatePickerPattern(), adjustBy); // not used
+        super(org.apache.isis.applib.value.DateTime.class, settings.getDatePattern(), settings.getDateTimePattern(), settings.getDateTimePattern(), adjustBy); // not used
         converter = new DateConverterForJavaUtilDate(settings, adjustBy);
     }
 
@@ -47,4 +47,4 @@ public class DateConverterForApplibDateTime extends DateConverterAbstract<org.ap
     }
 
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java
index 1e7554a..2fa56ee 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java
@@ -32,7 +32,7 @@ public class DateConverterForJavaSqlDate extends DateConverterForJavaAbstract<ja
     private static final long serialVersionUID = 1L;
     
     public DateConverterForJavaSqlDate(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDatePattern(), adjustBy);
     }
 
     private DateConverterForJavaSqlDate(String datePattern, String datePickerPattern, int adjustBy) {
@@ -68,4 +68,4 @@ public class DateConverterForJavaSqlDate extends DateConverterForJavaAbstract<ja
     }
 
     
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java
index e85fff8..c487cb5 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java
@@ -32,7 +32,7 @@ public class DateConverterForJavaUtilDate extends DateConverterForJavaAbstract<j
     private static final long serialVersionUID = 1L;
     
     public DateConverterForJavaUtilDate(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDateTimePattern(), adjustBy);
     }
     public DateConverterForJavaUtilDate(String datePattern, String dateTimePattern, String datePickerPattern, int adjustBy) {
         super(java.util.Date.class, datePattern, dateTimePattern, datePickerPattern, adjustBy);
@@ -71,4 +71,4 @@ public class DateConverterForJavaUtilDate extends DateConverterForJavaAbstract<j
         return adjusted;
     }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java
index f08ab6e..c267cf2 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java
@@ -30,7 +30,7 @@ public class DateConverterForJodaDateTime extends DateConverterForJodaAbstract<D
     private static final long serialVersionUID = 1L;
 
     public DateConverterForJodaDateTime(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDateTimePattern(), adjustBy);
     }
     
     private DateConverterForJodaDateTime(String datePattern, String dateTimePattern, String datePickerPattern, int adjustBy) {
@@ -61,4 +61,4 @@ public class DateConverterForJodaDateTime extends DateConverterForJodaAbstract<D
         return value.plusDays(adjustBy).toString(getFormatterForDateTimePattern());
     }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java
index b895973..8479328 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java
@@ -30,7 +30,7 @@ public class DateConverterForJodaLocalDate extends DateConverterForJodaAbstract<
     private static final long serialVersionUID = 1L;
 
     public DateConverterForJodaLocalDate(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDatePattern(), adjustBy);
     }
     
     private DateConverterForJodaLocalDate(String datePattern, String datePickerPattern, int adjustBy) {
@@ -58,4 +58,4 @@ public class DateConverterForJodaLocalDate extends DateConverterForJodaAbstract<
         return value.plusDays(adjustBy).toString(getFormatterForDatePattern());
     }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java
index d93750b..ec1509f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java
@@ -30,7 +30,7 @@ public class DateConverterForJodaLocalDateTime extends DateConverterForJodaAbstr
     private static final long serialVersionUID = 1L;
 
     public DateConverterForJodaLocalDateTime(WicketViewerSettings settings, int adjustBy) {
-        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDatePickerPattern(), adjustBy);
+        this(settings.getDatePattern(), settings.getDateTimePattern(), settings.getDateTimePattern(), adjustBy);
     }
 
     private DateConverterForJodaLocalDateTime(String datePattern, String dateTimePattern, String datePickerPattern, int adjustBy) {
@@ -64,4 +64,4 @@ public class DateConverterForJodaLocalDateTime extends DateConverterForJodaAbstr
     }
 
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
index e7caecf..d2cbaee 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.java
@@ -40,6 +40,7 @@ public class JodaLocalDateTimePanel extends ScalarPanelTextFieldDatePickerAbstra
         init(new DateConverterForJodaLocalDateTime(getSettings(), getAdjustBy()));
     }
 
+    // TODO mgrigorov: Check whether this is really needed after fixing ISIS-1012
     @Override
     protected TextField<LocalDateTime> createTextField(final String id) {
         return new TextFieldWithDateTimePicker<>(id, new TextFieldValueModel<LocalDateTime>(this), cls, converter);

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 4834279..34c8f38 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -19,6 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.reference;
 
+import javax.inject.Inject;
 import java.util.List;
 import com.google.common.collect.Lists;
 import com.vaynberg.wicket.select2.ChoiceProvider;
@@ -40,6 +41,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChec
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -372,7 +374,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
 
     // called by setProviderAndCurrAndPending
     private ChoiceProvider<ObjectAdapterMemento> providerForObjectAutoComplete() {
-        return new ObjectAdapterMementoProviderAbstract(getModel()) {
+        return new ObjectAdapterMementoProviderAbstract(getModel(), wicketViewerSettings) {
 
             private static final long serialVersionUID = 1L;
 
@@ -388,7 +390,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
 
     // called by setProviderAndCurrAndPending
     private ChoiceProvider<ObjectAdapterMemento> providerForParamOrPropertyAutoComplete() {
-        return new ObjectAdapterMementoProviderAbstract(getModel()) {
+        return new ObjectAdapterMementoProviderAbstract(getModel(), wicketViewerSettings) {
             
             private static final long serialVersionUID = 1L;
             
@@ -407,7 +409,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
 
     // called by setProviderAndCurrAndPending
     private ObjectAdapterMementoProviderAbstract providerForChoices(final List<ObjectAdapterMemento> choiceMementos) {
-        return new ObjectAdapterMementoProviderAbstract(getModel()) {
+        return new ObjectAdapterMementoProviderAbstract(getModel(), wicketViewerSettings) {
             private static final long serialVersionUID = 1L;
             @Override
             protected List<ObjectAdapterMemento> obtainMementos(String unused) {
@@ -499,6 +501,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
         return autoCompleteFacet != null;
     }
 
-
+    @Inject
+    private WicketViewerSettings wicketViewerSettings;
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
index 956b436..0fd2104 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
@@ -18,17 +18,22 @@ package org.apache.isis.viewer.wicket.ui.components.widgets;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 
 import com.google.common.base.Function;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.Lists;
 import com.vaynberg.wicket.select2.TextChoiceProvider;
 
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.IsisConverterLocator;
 
 public abstract class ObjectAdapterMementoProviderAbstract extends TextChoiceProvider<ObjectAdapterMemento> {
 
@@ -38,14 +43,28 @@ public abstract class ObjectAdapterMementoProviderAbstract extends TextChoicePro
     private static final String NULL_DISPLAY_TEXT = "";
 
     private final ScalarModel scalarModel;
+    private final WicketViewerSettings wicketViewerSettings;
 
-    public ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel){
+    public ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel, WicketViewerSettings wicketViewerSettings) {
         this.scalarModel = scalarModel;
+        this.wicketViewerSettings = wicketViewerSettings;
     }
     
     @Override
     protected String getDisplayText(ObjectAdapterMemento choice) {
-        return choice != null? choice.getObjectAdapter(ConcurrencyChecking.NO_CHECK).titleString(null) : NULL_DISPLAY_TEXT;
+        String displayText = NULL_DISPLAY_TEXT;
+        if (choice != null) {
+            ObjectAdapter objectAdapter = choice.getObjectAdapter(ConcurrencyChecking.NO_CHECK);
+            IConverter<Object> converter = IsisConverterLocator.findConverter(objectAdapter, wicketViewerSettings);
+            if (converter != null) {
+                // TODO mgrigorov: use the Session locale ?!
+                displayText = converter.convertToString(objectAdapter.getObject(), Locale.ENGLISH);
+            } else {
+                displayText = objectAdapter.titleString(null);
+            }
+        }
+
+        return displayText;
     }
 
     @Override
@@ -85,4 +104,4 @@ public abstract class ObjectAdapterMementoProviderAbstract extends TextChoicePro
     protected ScalarModel getScalarModel() {
         return scalarModel;
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
index 2a51161..3932e14 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
@@ -16,6 +16,7 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.widgets.valuechoices;
 
+import javax.inject.Inject;
 import java.util.Collection;
 import java.util.List;
 import com.google.common.base.Function;
@@ -34,6 +35,7 @@ import org.apache.wicket.model.Model;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -143,10 +145,9 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
 
     
     protected ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
-        return new FixedObjectAdapterMementoProvider(getScalarModel(), choicesMementos);
+        return new FixedObjectAdapterMementoProvider(getScalarModel(), choicesMementos, wicketViewerSettings);
     }
 
-
     static class FixedObjectAdapterMementoProvider extends ObjectAdapterMementoProviderAbstract {
 
         private static final long serialVersionUID = 1L;
@@ -154,8 +155,9 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
 
         public FixedObjectAdapterMementoProvider(
                 final ScalarModel scalarModel,
-                final List<ObjectAdapterMemento> choicesMementos) {
-            super(scalarModel);
+                final List<ObjectAdapterMemento> choicesMementos,
+                final WicketViewerSettings wicketViewerSettings) {
+            super(scalarModel, wicketViewerSettings);
             this.choicesMementos = choicesMementos;
         }
 
@@ -278,4 +280,6 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
         return scalarModel;
     }
 
+    @Inject
+    private WicketViewerSettings wicketViewerSettings;
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
index 26b11f7..2d8f93a 100644
--- a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
+++ b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
@@ -50,8 +50,6 @@ public class DateConverterForApplibDateTest {
             {
                 allowing(settings).getDatePattern();
                 will(returnValue("yyyy-MM-dd"));
-                allowing(settings).getDatePickerPattern();
-                will(returnValue("yy-mm-dd"));
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
index 0f5bfbf..a664690 100644
--- a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
+++ b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
@@ -52,8 +52,6 @@ public class DateConverterForApplibDateTimeTest {
                 will(returnValue("yyyy-MM-dd"));
                 allowing(settings).getDateTimePattern();
                 will(returnValue("yyyy-MM-dd HH:mm"));
-                allowing(settings).getDatePickerPattern();
-                will(returnValue("yy-mm-dd"));
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDateTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDateTest.java b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDateTest.java
index 8adad30..fafe62e 100644
--- a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDateTest.java
+++ b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDateTest.java
@@ -49,8 +49,6 @@ public class DateConverterForJavaUtilDateTest {
                 will(returnValue("yyyy-MM-dd"));
                 allowing(settings).getDateTimePattern();
                 will(returnValue("yyyy-MM-dd HH:mm"));
-                allowing(settings).getDatePickerPattern();
-                will(returnValue("yy-mm-dd"));
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/75d20903/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/FixedObjectAdapterMementoProviderTest.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/FixedObjectAdapterMementoProviderTest.java b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/FixedObjectAdapterMementoProviderTest.java
index 7f508d3..c151c44 100644
--- a/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/FixedObjectAdapterMementoProviderTest.java
+++ b/component/viewer/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/FixedObjectAdapterMementoProviderTest.java
@@ -28,6 +28,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -53,7 +54,8 @@ public class FixedObjectAdapterMementoProviderTest {
                 mockMemento1, mockMemento2
         );
 
-        provider = new ValueChoicesSelect2Panel.FixedObjectAdapterMementoProvider(null, mementos);
+        WicketViewerSettings wicketViewerSettings = context.mock(WicketViewerSettings.class);
+        provider = new ValueChoicesSelect2Panel.FixedObjectAdapterMementoProvider(null, mementos, wicketViewerSettings);
     }
 
     @Test
@@ -79,4 +81,4 @@ public class FixedObjectAdapterMementoProviderTest {
         return mock;
     }
 
-}
\ No newline at end of file
+}