You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/03/01 16:56:33 UTC
[isis] branch master updated: ISIS-1841 introducing
viewer-wicket-ui-legacy module
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new c1b5a8e ISIS-1841 introducing viewer-wicket-ui-legacy module
c1b5a8e is described below
commit c1b5a8e7ddcf1a3718461797c0595cb6bd60f41f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Mar 1 17:56:30 2018 +0100
ISIS-1841 introducing viewer-wicket-ui-legacy module
acts as a plugin for viewer-wicket-ui
moving deprecated classes to legacy
---
.../ComponentFactoryRegistrarDefault.java | 16 ++---
core/viewer-wicket-ui-legacy/.gitignore | 1 +
.../pom.xml | 15 ++--
.../isisapplib/ApplibDateConverterPlugin.java} | 44 ++++++------
.../isisapplib/DateConverterForApplibDate.java | 0
.../isisapplib/DateConverterForApplibDateTime.java | 0
.../scalars/isisapplib/IsisDatePanel.java | 0
.../scalars/isisapplib/IsisDatePanelFactory.java | 0
.../scalars/isisapplib/IsisDateTimePanel.java | 0
.../isisapplib/IsisDateTimePanelFactory.java | 0
.../scalars/isisapplib/IsisTimePanelFactory.java | 0
.../scalars/isisapplib/IsisTimeStampPanel.java | 0
.../isisapplib/IsisTimeStampPanelFactory.java | 0
...g.apache.isis.viewer.wicket.ui.ComponentFactory | 4 ++
...icket.ui.components.scalars.DateConverterPlugin | 1 +
.../isisapplib/DateConverterForApplibDateTest.java | 0
.../DateConverterForApplibDateTimeTest.java | 0
core/viewer-wicket-ui/pom.xml | 2 +-
.../ui/components/scalars/DateConverter.java | 1 -
.../components/scalars/DateConverterAbstract.java | 1 -
...DateConverter.java => DateConverterPlugin.java} | 31 +++-----
.../components/scalars/IsisConverterLocator.java | 83 ++++++++++++++--------
22 files changed, 104 insertions(+), 95 deletions(-)
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
index 613e2ca..ff0f123 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
@@ -21,8 +21,7 @@ package org.apache.isis.viewer.wicket.viewer.registries.components;
import java.util.ServiceLoader;
-import com.google.inject.Singleton;
-
+import org.apache.isis.applib.internal.context._Plugin;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
@@ -51,13 +50,9 @@ import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanelFac
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisClobPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisColorPanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisDatePanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisDateTimePanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisMoneyPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisPasswordPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisPercentagePanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisTimePanelFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisTimeStampPanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.jdk8time.Jdk8LocalDatePanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.jdk8time.Jdk8LocalDateTimePanelFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.jdk8time.Jdk8OffsetDateTimePanelFactory;
@@ -91,6 +86,8 @@ import org.apache.isis.viewer.wicket.ui.components.voidreturn.VoidReturnPanelFac
import org.apache.isis.viewer.wicket.ui.components.welcome.WelcomePanelFactory;
import org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanelFactory;
+import com.google.inject.Singleton;
+
/**
* Default implementation of {@link ComponentFactoryRegistrar} that registers a
* hardcoded set of built-in {@link ComponentFactory}s, along with any
@@ -152,6 +149,9 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
addComponentFactoriesForPageHeader(componentFactories);
addComponentFactoriesForPageFooter(componentFactories);
+ // load component factories from plugins
+ _Plugin.loadAll(ComponentFactory.class).forEach(componentFactories::add);
+
addComponentFactoriesForUnknown(componentFactories);
}
@@ -221,10 +221,6 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
componentFactories.add(new JavaSqlTimePanelFactory());
componentFactories.add(new IsisMoneyPanelFactory());
- componentFactories.add(new IsisDatePanelFactory());
- componentFactories.add(new IsisDateTimePanelFactory());
- componentFactories.add(new IsisTimePanelFactory());
- componentFactories.add(new IsisTimeStampPanelFactory());
componentFactories.add(new IsisColorPanelFactory());
componentFactories.add(new IsisPercentagePanelFactory());
componentFactories.add(new IsisPasswordPanelFactory());
diff --git a/core/viewer-wicket-ui-legacy/.gitignore b/core/viewer-wicket-ui-legacy/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/viewer-wicket-ui-legacy/.gitignore
@@ -0,0 +1 @@
+/target-ide
diff --git a/core/viewer-wicket-ui/pom.xml b/core/viewer-wicket-ui-legacy/pom.xml
similarity index 90%
copy from core/viewer-wicket-ui/pom.xml
copy to core/viewer-wicket-ui-legacy/pom.xml
index c4841a0..508fe49 100644
--- a/core/viewer-wicket-ui/pom.xml
+++ b/core/viewer-wicket-ui-legacy/pom.xml
@@ -27,12 +27,12 @@
<version>2.0.0-M1-SNAPSHOT</version>
</parent>
- <artifactId>isis-core-viewer-wicket-ui</artifactId>
- <name>Apache Isis Wicket Viewer UI Components</name>
+ <artifactId>isis-core-viewer-wicket-ui-legacy</artifactId>
+ <name>Apache Isis Wicket Viewer UI Components (Legacy)</name>
<properties>
- <jar-plugin.automaticModuleName>org.apache.isis.viewer.wicket.ui</jar-plugin.automaticModuleName>
- <git-plugin.propertiesDir>org/apache/isis/viewer/wicket/ui</git-plugin.propertiesDir>
+ <jar-plugin.automaticModuleName>org.apache.isis.viewer.wicket.ui-legacy</jar-plugin.automaticModuleName>
+ <git-plugin.propertiesDir>org/apache/isis/viewer/wicket/ui-legacy</git-plugin.propertiesDir>
</properties>
<build>
@@ -64,12 +64,17 @@
<dependency>
<groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-metamodel-legacy</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
<artifactId>isis-core-viewer-wicket-model</artifactId>
</dependency>
<dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-metamodel-legacy</artifactId>
+ <artifactId>isis-core-viewer-wicket-ui</artifactId>
</dependency>
<dependency>
<groupId>org.apache.isis.core</groupId>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/ApplibDateConverterPlugin.java
similarity index 54%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java
copy to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/ApplibDateConverterPlugin.java
index a008664..7fc5f69 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java
+++ b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/ApplibDateConverterPlugin.java
@@ -16,29 +16,27 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
-import org.apache.wicket.Component;
-
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
-
-/**
- * {@link ComponentFactory} for {@link IsisDatePanel}.
- */
-public class IsisDatePanelFactory extends ComponentFactoryScalarAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public IsisDatePanelFactory() {
- super(IsisDatePanel.class, org.apache.isis.applib.value.Date.class);
- }
-
- @Override
- public Component createComponent(final String id, final ScalarModel scalarModel) {
- return new IsisDatePanel(id, scalarModel);
- }
-
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverter;
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterPlugin;
+
+public class ApplibDateConverterPlugin implements DateConverterPlugin {
+
+ @Override
+ public DateConverter<?> converterForClassIfAny(
+ Class<?> cls,
+ WicketViewerSettings wicketViewerSettings,
+ int adjustBy) {
+
+ if (org.apache.isis.applib.value.Date.class == cls) {
+ return new DateConverterForApplibDate(wicketViewerSettings, adjustBy);
+ }
+ if (org.apache.isis.applib.value.DateTime.class == cls) {
+ return new DateConverterForApplibDateTime(wicketViewerSettings, adjustBy);
+ }
+ return null;
+ }
+
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanelFactory.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanelFactory.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanelFactory.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanelFactory.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanelFactory.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanelFactory.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanelFactory.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanelFactory.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimePanelFactory.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanel.java
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanelFactory.java b/core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanelFactory.java
similarity index 100%
rename from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanelFactory.java
rename to core/viewer-wicket-ui-legacy/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisTimeStampPanelFactory.java
diff --git a/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory b/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
new file mode 100644
index 0000000..29d5e9e
--- /dev/null
+++ b/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
@@ -0,0 +1,4 @@
+org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisDatePanelFactory
+org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisDateTimePanelFactory
+org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisTimePanelFactory
+org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisTimeStampPanelFactory
\ No newline at end of file
diff --git a/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterPlugin b/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterPlugin
new file mode 100644
index 0000000..4a0af80
--- /dev/null
+++ b/core/viewer-wicket-ui-legacy/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterPlugin
@@ -0,0 +1 @@
+org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.ApplibDateConverterPlugin
\ No newline at end of file
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java b/core/viewer-wicket-ui-legacy/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
similarity index 100%
rename from core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
rename to core/viewer-wicket-ui-legacy/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTest.java
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java b/core/viewer-wicket-ui-legacy/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
similarity index 100%
rename from core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
rename to core/viewer-wicket-ui-legacy/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTimeTest.java
diff --git a/core/viewer-wicket-ui/pom.xml b/core/viewer-wicket-ui/pom.xml
index c4841a0..edf4621 100644
--- a/core/viewer-wicket-ui/pom.xml
+++ b/core/viewer-wicket-ui/pom.xml
@@ -69,7 +69,7 @@
<dependency>
<groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-metamodel-legacy</artifactId>
+ <artifactId>isis-core-metamodel</artifactId>
</dependency>
<dependency>
<groupId>org.apache.isis.core</groupId>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
index 2734899..9d8b0a7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars;
-import java.text.SimpleDateFormat;
import java.util.Locale;
import org.apache.wicket.util.convert.IConverter;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
index 01dceab..eb53db9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.util.Locale;
import org.apache.wicket.util.convert.ConversionException;
-import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterPlugin.java
similarity index 57%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterPlugin.java
index 2734899..b905870 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterPlugin.java
@@ -18,28 +18,13 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
-import org.apache.wicket.util.convert.IConverter;
+public interface DateConverterPlugin {
-public interface DateConverter<T> extends IConverter<T> {
- Class<T> getConvertableClass();
-
- /**
- * The date pattern, without a time component.
- *
- * <p>
- * For example, <tt>dd-MM-yyyy</tt> for <tt>13-05-2013</tt> for the 13 May 2013.
- */
- String getDatePattern(Locale locale);
-
- /**
- * The date pattern, with a time component.
- *
- * <p>
- * For example, <tt>dd-MM-yyyy HH:mm</tt> for <tt>13-05-2013 09:15</tt> for the 13 May 2013 at 9:15am.
- */
- String getDateTimePattern(Locale locale);
-
-}
\ No newline at end of file
+ public DateConverter<?> converterForClassIfAny(
+ Class<?> cls,
+ WicketViewerSettings wicketViewerSettings,
+ int adjustBy);
+
+}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
index b88d42f..bba843b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
@@ -18,17 +18,14 @@
*/
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.wicket.util.convert.converter.BigIntegerConverter;
+import org.apache.isis.applib.internal.base._Casts;
+import org.apache.isis.applib.internal.base._NullSafe;
+import org.apache.isis.applib.internal.context._Plugin;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
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;
@@ -36,6 +33,10 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.jdkmath.BigDecimalCon
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;
+import org.apache.wicket.Application;
+import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.wicket.util.convert.converter.BigIntegerConverter;
/**
* A locator for IConverters for ObjectAdapters
@@ -49,7 +50,9 @@ public class IsisConverterLocator {
* @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) {
+ public static IConverter<Object> findConverter(
+ final ObjectAdapter objectAdapter,
+ final WicketViewerSettings wicketViewerSettings) {
final ObjectSpecification objectSpecification = objectAdapter.getSpecification();
@@ -67,38 +70,56 @@ public class IsisConverterLocator {
final RenderedAdjustedFacet renderedAdjustedFacet = objectSpecification.getFacet(RenderedAdjustedFacet.class);
final int adjustBy = renderedAdjustedFacet != null ? renderedAdjustedFacet.value() : 0;
-
- 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 (java.math.BigInteger.class == correspondingClass) {
- converter = new BigIntegerConverter();
- } else if (java.math.BigDecimal.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJavaUtilDate(wicketViewerSettings, adjustBy));
+ }
+ if (java.sql.Date.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJavaSqlDate(wicketViewerSettings, adjustBy));
+ }
+ if (org.joda.time.LocalDate.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJodaLocalDate(wicketViewerSettings, adjustBy));
+ }
+ if (org.joda.time.LocalDateTime.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJodaLocalDateTime(wicketViewerSettings, adjustBy));
+ }
+ if (org.joda.time.DateTime.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJodaDateTime(wicketViewerSettings, adjustBy));
+ }
+ if (java.sql.Timestamp.class == correspondingClass) {
+ return _Casts.uncheckedCast(new DateConverterForJavaSqlTimestamp(wicketViewerSettings, adjustBy));
+ }
+ {
+ // data converter plugins (if any)
+
+ DateConverter<?> converter = _Plugin.loadAll(DateConverterPlugin.class).stream()
+ .map(plugin->plugin.converterForClassIfAny(correspondingClass, wicketViewerSettings, adjustBy))
+ .filter(_NullSafe::isPresent)
+ .findAny()
+ .orElse(null);
+
+ if(converter!=null) {
+ return _Casts.uncheckedCast(converter);
+ }
+
+ }
+ if (java.math.BigInteger.class == correspondingClass) {
+ return _Casts.uncheckedCast(new BigIntegerConverter());
+ }
+ if (java.math.BigDecimal.class == correspondingClass) {
final BigDecimalValueFacet facet = objectSpecification.getFacet(BigDecimalValueFacet.class);
Integer scale = null;
if (facet != null) {
scale = facet.getScale();
}
- converter = new BigDecimalConverterWithScale(scale).forViewMode();
- } else if (Application.exists()) {
+ return _Casts.uncheckedCast(new BigDecimalConverterWithScale(scale).forViewMode());
+ }
+
+ if(Application.exists()) {
final IConverterLocator converterLocator = Application.get().getConverterLocator();
- converter = converterLocator.getConverter(correspondingClass);
+ return _Casts.uncheckedCast(converterLocator.getConverter(correspondingClass));
}
- return converter;
+ return null;
}
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.