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;
}