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

isis git commit: ISIS-1012: in select2 choices, only use IConverter for value types, but continue to use titleString() for reference types (ie domain objects).

Repository: isis
Updated Branches:
  refs/heads/master 1a1cb4f48 -> 11243a8a0


ISIS-1012: in select2 choices, only use IConverter for value types, but continue to use titleString() for reference types (ie domain objects).


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

Branch: refs/heads/master
Commit: 11243a8a0df7bb345576c0337c19d7cb2ced2e45
Parents: 1a1cb4f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Jan 30 13:34:05 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Jan 30 13:34:05 2015 +0000

----------------------------------------------------------------------
 .../scalars/IsisConverterLocator.java           | 17 +++++---
 .../ObjectAdapterMementoProviderAbstract.java   | 42 ++++++++++----------
 2 files changed, 34 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/11243a8a/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
index 6db90ac..1d0e25f 100644
--- 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
@@ -32,10 +32,17 @@ public class IsisConverterLocator {
      * @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();
+
+        final ObjectSpecification objectSpecification = objectAdapter.getSpecification();
+
+        // only use Wicket IConverter for value types, not for domain objects.
+        if (!objectSpecification.isValue()) {
+            return null;
+        }
+
+        final RenderedAdjustedFacet renderedAdjustedFacet = objectSpecification.getFacet(RenderedAdjustedFacet.class);
+        final int adjustBy = renderedAdjustedFacet != null ? renderedAdjustedFacet.value() : 0;
+        final Class<?> correspondingClass = objectSpecification.getCorrespondingClass();
 
         IConverter converter = null;
         if (java.util.Date.class == correspondingClass) {
@@ -64,7 +71,7 @@ public class IsisConverterLocator {
             }
             converter = new BigDecimalConverterWithScale(scale).forViewMode();
         } else if (Application.exists()) {
-            IConverterLocator converterLocator = Application.get().getConverterLocator();
+            final IConverterLocator converterLocator = Application.get().getConverterLocator();
             converter = converterLocator.getConverter(correspondingClass);
         }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/11243a8a/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 9a3b6b1..ef7fb78 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
@@ -19,12 +19,10 @@ 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.Session;
 import org.apache.wicket.util.convert.IConverter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -46,35 +44,39 @@ public abstract class ObjectAdapterMementoProviderAbstract extends TextChoicePro
     private final ScalarModel scalarModel;
     private final WicketViewerSettings wicketViewerSettings;
 
-    public ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel, WicketViewerSettings wicketViewerSettings) {
+    public ObjectAdapterMementoProviderAbstract(final ScalarModel scalarModel, final WicketViewerSettings wicketViewerSettings) {
         this.scalarModel = scalarModel;
         this.wicketViewerSettings = wicketViewerSettings;
     }
     
     @Override
-    protected String getDisplayText(ObjectAdapterMemento choice) {
-        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) {
-                Locale locale = Session.exists() ? Session.get().getLocale() : Locale.ENGLISH;
-                displayText = converter.convertToString(objectAdapter.getObject(), locale);
-            } else {
-                displayText = objectAdapter.titleString(null);
-            }
+    protected String getDisplayText(final ObjectAdapterMemento choice) {
+        if (choice == null) {
+            return NULL_DISPLAY_TEXT;
         }
 
-        return displayText;
+        final ObjectAdapter objectAdapter = choice.getObjectAdapter(ConcurrencyChecking.NO_CHECK);
+        final IConverter<Object> converter = findConverter(objectAdapter);
+        return converter != null
+                ? converter.convertToString(objectAdapter.getObject(), getLocale())
+                : objectAdapter.titleString(null);
+    }
+
+    protected Locale getLocale() {
+        return Session.exists() ? Session.get().getLocale() : Locale.ENGLISH;
+    }
+
+    protected IConverter<Object> findConverter(final ObjectAdapter objectAdapter) {
+        return IsisConverterLocator.findConverter(objectAdapter, wicketViewerSettings);
     }
 
     @Override
-    protected Object getId(ObjectAdapterMemento choice) {
+    protected Object getId(final ObjectAdapterMemento choice) {
         return choice != null? choice.asString(): NULL_PLACEHOLDER;
     }
 
     @Override
-    public void query(String term, int page, com.vaynberg.wicket.select2.Response<ObjectAdapterMemento> response) {
+    public void query(final String term, final int page, final com.vaynberg.wicket.select2.Response<ObjectAdapterMemento> response) {
         
         final List<ObjectAdapterMemento> mementos = Lists.newArrayList(obtainMementos(term));
         // if not mandatory, and the list doesn't contain null already, then add it in.
@@ -87,11 +89,11 @@ public abstract class ObjectAdapterMementoProviderAbstract extends TextChoicePro
     protected abstract List<ObjectAdapterMemento> obtainMementos(String term);
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(Collection<String> ids) {
-        Function<String, ObjectAdapterMemento> function = new Function<String, ObjectAdapterMemento>() {
+    public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
+        final Function<String, ObjectAdapterMemento> function = new Function<String, ObjectAdapterMemento>() {
 
             @Override
-            public ObjectAdapterMemento apply(String input) {
+            public ObjectAdapterMemento apply(final String input) {
                 if(NULL_PLACEHOLDER.equals(input)) {
                     return null;
                 }