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 2013/05/03 13:18:46 UTC
git commit: ISIS-392: improvements to Wicket date/time fields.
Updated Branches:
refs/heads/master 9b651e2e5 -> 69e6329cf
ISIS-392: improvements to Wicket date/time fields.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/69e6329c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/69e6329c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/69e6329c
Branch: refs/heads/master
Commit: 69e6329cfc08c18baf333b3d9fe76d6b49ac33fe
Parents: 9b651e2
Author: Dan Haywood <da...@apache.org>
Authored: Fri May 3 12:18:25 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Fri May 3 12:18:25 2013 +0100
----------------------------------------------------------------------
...t_thenResponseHeaders_CacheControl_ok_TODO.java | 9 +
...st_thenResponseHeaders_ContentType_ok_TODO.java | 30 +++
...ct_thenResponseHeaders_ContentType_ok_TODO.java | 30 +++
.../ui/components/scalars/DateConverter.java | 11 +
.../components/scalars/DateConverterAbstract.java | 42 ++++
.../scalars/ScalarPanelTextFieldAbstract.java | 23 ++-
.../ScalarPanelTextFieldDatePickerAbstract.java | 81 +++-----
.../scalars/ScalarPanelTextFieldNumeric.java | 13 +-
.../ScalarPanelTextFieldParseableAbstract.java | 2 +-
.../ui/components/scalars/TextFieldValueModel.java | 2 +-
.../scalars/TextFieldWithDateConverter.java | 44 ++++
.../isisapplib/DateConverterForApplibDate.java | 31 +++
.../isisapplib/DateConverterForApplibDateTime.java | 31 +++
.../scalars/isisapplib/IsisDatePanel.html | 2 +-
.../scalars/isisapplib/IsisDatePanel.java | 79 +-------
.../scalars/isisapplib/IsisDateTimePanel.html | 2 +-
.../scalars/isisapplib/IsisDateTimePanel.java | 12 +-
.../scalars/isisapplib/IsisPasswordPanel.java | 2 +-
.../jdkdates/DateConverterForJavaAbstract.java | 23 ++
.../jdkdates/DateConverterForJavaSqlDate.java | 30 +++
.../jdkdates/DateConverterForJavaUtilDate.java | 32 +++
.../scalars/jdkdates/JavaSqlDatePanel.html | 2 +-
.../scalars/jdkdates/JavaSqlDatePanel.java | 13 +-
.../scalars/jdkdates/JavaUtilDatePanel.html | 2 +-
.../scalars/jdkdates/JavaUtilDatePanel.java | 15 +--
.../scalars/jdkmath/JavaMathBigIntegerPanel.java | 2 +-
.../jodatime/DateConverterForJodaAbstract.java | 24 +++
.../jodatime/DateConverterForJodaDateTime.java | 33 +++
.../jodatime/DateConverterForJodaLocalDate.java | 29 +++
.../DateConverterForJodaLocalDateTime.java | 34 +++
.../scalars/jodatime/JodaDateTimePanel.html | 4 +-
.../scalars/jodatime/JodaDateTimePanel.java | 16 +--
.../scalars/jodatime/JodaLocalDatePanel.html | 4 +-
.../scalars/jodatime/JodaLocalDatePanel.java | 16 +--
.../scalars/jodatime/JodaLocalDateTimePanel.html | 4 +-
.../scalars/jodatime/JodaLocalDateTimePanel.java | 15 +--
.../scalars/string/MultiLineStringPanel.java | 2 +-
.../core/tck/dom/scalars/DateTimeValuedEntity.java | 161 +++++++++++++++
.../scalars/DateTimeValuedEntityRepository.java | 44 ++++
.../scalars/DateTimeValuedEntityFixture.java | 47 +++++
.../dom/src/main/java/dom/todo/ToDoItem.java | 3 +-
..._restful_jdo-viewer-webapp-with-fixtures.launch | 20 ++
.../src/main/webapp/WEB-INF/isis.properties | 2 +-
43 files changed, 790 insertions(+), 233 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_thenResponseHeaders_CacheControl_ok_TODO.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_thenResponseHeaders_CacheControl_ok_TODO.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_thenResponseHeaders_CacheControl_ok_TODO.java
index dbdedb6..78b051b 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_thenResponseHeaders_CacheControl_ok_TODO.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_thenResponseHeaders_CacheControl_ok_TODO.java
@@ -39,4 +39,13 @@ public class Get_thenResponseHeaders_CacheControl_ok_TODO {
client = new RestfulClient(webServer.getBase());
}
+
+ @Ignore("TODO")
+ @Test
+ public void xxx() throws Exception {
+
+ // 2.13
+ // Cache-Control, also Pragma, Date, Expires
+
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenList_thenResponseHeaders_ContentType_ok_TODO.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenList_thenResponseHeaders_ContentType_ok_TODO.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenList_thenResponseHeaders_ContentType_ok_TODO.java
new file mode 100644
index 0000000..8942905
--- /dev/null
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenList_thenResponseHeaders_ContentType_ok_TODO.java
@@ -0,0 +1,30 @@
+package org.apache.isis.viewer.restfulobjects.tck.domainobjectorservice.id.action.invoke;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.core.webserver.WebServer;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+
+public class Get_whenList_thenResponseHeaders_ContentType_ok_TODO {
+
+ @Rule
+ public IsisWebServerRule webServerRule = new IsisWebServerRule();
+
+ protected RestfulClient client;
+
+ @Before
+ public void setUp() throws Exception {
+ final WebServer webServer = webServerRule.getWebServer();
+ client = new RestfulClient(webServer.getBase());
+ }
+
+ @Ignore
+ @Test
+ public void todo() throws Exception {
+ // 2.4.2, content-type should include "x-ro-element-type"
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenObject_thenResponseHeaders_ContentType_ok_TODO.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenObject_thenResponseHeaders_ContentType_ok_TODO.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenObject_thenResponseHeaders_ContentType_ok_TODO.java
new file mode 100644
index 0000000..2373289
--- /dev/null
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Get_whenObject_thenResponseHeaders_ContentType_ok_TODO.java
@@ -0,0 +1,30 @@
+package org.apache.isis.viewer.restfulobjects.tck.domainobjectorservice.id.action.invoke;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.core.webserver.WebServer;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+
+public class Get_whenObject_thenResponseHeaders_ContentType_ok_TODO {
+
+ @Rule
+ public IsisWebServerRule webServerRule = new IsisWebServerRule();
+
+ protected RestfulClient client;
+
+ @Before
+ public void setUp() throws Exception {
+ final WebServer webServer = webServerRule.getWebServer();
+ client = new RestfulClient(webServer.getBase());
+ }
+
+ @Ignore
+ @Test
+ public void todo() throws Exception {
+ // 2.4.2, content-type should include "x-ro-domain-type"
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
new file mode 100644
index 0000000..a303425
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverter.java
@@ -0,0 +1,11 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars;
+
+import java.util.Locale;
+
+import org.apache.wicket.util.convert.IConverter;
+
+public interface DateConverter<T> extends IConverter<T> {
+ Class<T> getConvertableClass();
+ String getDatePattern(Locale locale);
+ String getDateTimePattern(Locale locale);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
new file mode 100644
index 0000000..be1f006
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/DateConverterAbstract.java
@@ -0,0 +1,42 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars;
+
+import java.util.Locale;
+
+
+public abstract class DateConverterAbstract<T> implements DateConverter<T> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final Class<T> cls;
+ protected final String datePattern;
+ protected final String dateTimePattern;
+
+ protected DateConverterAbstract(Class<T> cls, String datePattern, String dateTimePattern) {
+ this.cls = cls;
+ this.datePattern = datePattern;
+ this.dateTimePattern = dateTimePattern;
+ }
+
+ public Class<T> getConvertableClass() {
+ return cls;
+ }
+
+ public String getDatePattern(Locale locale) {
+ return datePattern;
+ }
+ public String getDateTimePattern(Locale locale) {
+ return dateTimePattern;
+ }
+
+ @Override
+ public T convertToObject(String value, Locale locale) {
+ return value != null? doConvertToObject(value, locale): null;
+ }
+ @Override
+ public String convertToString(T value, Locale locale) {
+ return value != null? doConvertToString(value, locale): null;
+ }
+
+ protected abstract T doConvertToObject(String value, Locale locale);
+ protected abstract String doConvertToString(T value, Locale locale);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 9d45ac7..d6b3932 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -47,6 +47,9 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
private static final String ID_SCALAR_IF_REGULAR = "scalarIfRegular";
private static final String ID_SCALAR_NAME = "scalarName";
+
+ protected static final String ID_SCALAR_VALUE = "scalarValue";
+
private static final String ID_FEEDBACK = "feedback";
protected static final String ID_SCALAR_IF_COMPACT = "scalarIfCompact";
@@ -64,9 +67,17 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return textField;
}
+ protected AbstractTextComponent<T> createTextFieldForRegular() {
+ return createTextField(ID_SCALAR_VALUE);
+ }
+
+ protected TextField<T> createTextField(final String id) {
+ return new TextField<T>(id, new TextFieldValueModel<T>(this), cls);
+ }
+
@Override
protected FormComponentLabel addComponentForRegular() {
- textField = createTextField();
+ textField = createTextFieldForRegular();
textField.setOutputMarkupId(true);
addStandardSemantics();
@@ -100,7 +111,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
// parsing, not wicket
}
- protected abstract AbstractTextComponent<T> createTextField();
private FormComponentLabel createFormComponentLabel() {
@@ -133,10 +143,14 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected void setTextFieldSizeIfSpecified(AbstractTextComponent<T> textField) {
final Integer size = determineSize();
if (size != null) {
- textField.add(new AttributeModifier("size", Model.of("" + size)));
+ setTextFieldSize(textField, size);
}
}
+ protected void setTextFieldSize(AbstractTextComponent<T> textField, int size) {
+ textField.add(new AttributeModifier("size", Model.of("" + size)));
+ }
+
@SuppressWarnings("unchecked")
protected Integer determineSize() {
return firstValueOf(getModel(), TypicalLengthFacet.class, MaxLengthFacet.class);
@@ -155,6 +169,9 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
/**
* Mandatory hook method to build the component to render the model when in
* {@link Rendering#COMPACT compact} format.
+ *
+ * <p>
+ * This default implementation uses a {@link Label}, however it may be overridden if required.
*/
@Override
protected Component addComponentForCompact() {
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
index 8177234..9666d67 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
@@ -19,14 +19,13 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
-import java.util.Date;
+import java.io.Serializable;
-import org.apache.wicket.datetime.PatternDateConverter;
-import org.apache.wicket.datetime.markup.html.form.DateTextField;
+import org.apache.wicket.Component;
import org.apache.wicket.extensions.yui.calendar.DatePicker;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.Model;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
@@ -37,51 +36,19 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
/**
* Panel for rendering scalars representing dates, along with a date picker.
*/
-public abstract class ScalarPanelTextFieldDatePickerAbstract<T> extends ScalarPanelTextFieldAbstract<java.util.Date> {
+public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializable> extends ScalarPanelTextFieldAbstract<T> {
private static final long serialVersionUID = 1L;
- private static final String DATE_PATTERN = "dd-MM-yyyy"; // TODO: yui calendar does not seem to understand 'dd-MMM-yyyy' (interprets as dd-MM-yyyy)
-
- private final String idScalarValue;
+ private final DateConverter<T> converter;
- public ScalarPanelTextFieldDatePickerAbstract(final String id, String idScalarValue, final ScalarModel scalarModel) {
- super(id, scalarModel, java.util.Date.class);
- this.idScalarValue = idScalarValue;
+ public ScalarPanelTextFieldDatePickerAbstract(final String id, final ScalarModel scalarModel, final Class<T> cls, DateConverter<T> converter) {
+ super(id, scalarModel, cls);
+ this.converter = converter;
}
-
- protected abstract java.util.Date asDate(final T pojo);
- protected abstract T asPojo(final java.util.Date date);
-
- @Override
- protected AbstractTextComponent<java.util.Date> createTextField() {
- final TextField<java.util.Date> textField = DateTextField.withConverter(idScalarValue, new Model<java.util.Date>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public java.util.Date getObject() {
- final ObjectAdapter adapter = getModel().getObject();
- if (adapter == null) {
- return null;
- }
- @SuppressWarnings("unchecked")
- final T pojo = (T) adapter.getObject();
- final java.util.Date date = asDate(pojo);
- return date;
- }
-
- @Override
- public void setObject(final java.util.Date date) {
- if(date == null) {
- getModel().setObject(null);
- return;
- }
- final T pojo = asPojo(date);
- final ObjectAdapter adapter = adapterFor(pojo);
- getModel().setObject(adapter);
- }
- }, new PatternDateConverter(DATE_PATTERN, true));
- return textField;
+
+ protected TextField<T> createTextField(final String id) {
+ return new TextFieldWithDateConverter<T>(id, new TextFieldValueModel<T>(this), cls, converter);
}
@Override
@@ -96,6 +63,10 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T> extends ScalarPa
{
return "${calendar}.cfg.setProperty(\"navigator\",true,false); ${calendar}.render();";
}
+ @Override
+ protected String getDatePattern() {
+ return converter.getDatePattern(getLocale());
+ }
};
datePicker.setShowOnFieldClick(true);
datePicker.setAutoHide(true);
@@ -104,16 +75,28 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T> extends ScalarPa
addObjectAdapterValidator();
}
+ protected Component addComponentForCompact() {
+ final AbstractTextComponent<T> textField = createTextField(ID_SCALAR_IF_COMPACT);
+ final IModel<T> model = textField.getModel();
+ final T object = (T) model.getObject();
+ model.setObject(object);
+
+ textField.setEnabled(false);
+ setTextFieldSize(textField, converter.getDateTimePattern(getLocale()).length());
+
+ addOrReplace(textField);
+ return textField;
+ }
+
private void addObjectAdapterValidator() {
- final AbstractTextComponent<Date> textField = getTextField();
+ final AbstractTextComponent<T> textField = getTextField();
- textField.add(new IValidator<java.util.Date>() {
+ textField.add(new IValidator<T>() {
private static final long serialVersionUID = 1L;
@Override
- public void validate(final IValidatable<java.util.Date> validatable) {
- final java.util.Date proposedValue = validatable.getValue();
- final T proposed = asPojo(proposedValue);
+ public void validate(final IValidatable<T> validatable) {
+ final T proposed = validatable.getValue();
final ObjectAdapter proposedAdapter = adapterFor(proposed);
String reasonIfAny = scalarModel.validate(proposedAdapter);
if (reasonIfAny != null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index c50062a..a5535d4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -34,7 +34,6 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
public abstract class ScalarPanelTextFieldNumeric<T extends Serializable> extends ScalarPanelTextFieldAbstract<T> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public ScalarPanelTextFieldNumeric(final String id, final ScalarModel scalarModel, final Class<T> cls) {
super(id, scalarModel, cls);
@@ -43,27 +42,17 @@ public abstract class ScalarPanelTextFieldNumeric<T extends Serializable> extend
@Override
protected void addSemantics() {
super.addSemantics();
-
}
@Override
- protected AbstractTextComponent<T> createTextField() {
+ protected AbstractTextComponent<T> createTextFieldForRegular() {
return createTextField(ID_SCALAR_VALUE);
}
- /**
- * Helper method for subtypes.
- */
- protected TextField<T> createTextField(final String id) {
- return new TextField<T>(id, new TextFieldValueModel<T>(this), cls);
- }
-
- //@SuppressWarnings("unchecked")
protected Component addComponentForCompact() {
final AbstractTextComponent<T> textField = createTextField(ID_SCALAR_IF_COMPACT);
final IModel<T> model = textField.getModel();
final T object = (T) model.getObject();
- //model.setObject((T) (object != null? object.getObject(): null));
model.setObject(object);
textField.setEnabled(false);
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
index f681d89..fa2f887 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java
@@ -47,7 +47,7 @@ public abstract class ScalarPanelTextFieldParseableAbstract extends ScalarPanelT
}
@Override
- protected AbstractTextComponent<String> createTextField() {
+ protected AbstractTextComponent<String> createTextFieldForRegular() {
final AbstractTextComponent<String> textField = new TextField<String>(idTextField, new Model<String>() {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
index fd1c044..4f69b40 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
@@ -29,7 +29,7 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
/**
* For custom {@link ScalarPanelTextFieldAbstract}s to use as the {@link Model}
- * of their {@link TextField} (as constructed in {@link ScalarPanelTextFieldAbstract#createTextField()}).
+ * of their {@link TextField} (as constructed in {@link ScalarPanelTextFieldAbstract#createTextFieldForRegular()}).
*/
public class TextFieldValueModel<T extends Serializable> extends Model<T> {
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldWithDateConverter.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldWithDateConverter.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldWithDateConverter.java
new file mode 100644
index 0000000..42725b8
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldWithDateConverter.java
@@ -0,0 +1,44 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars;
+
+import java.util.Locale;
+
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.convert.IConverter;
+
+
+public class TextFieldWithDateConverter<T> extends TextField<T> implements IConverter<T> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final DateConverter<T> converter;
+
+ public TextFieldWithDateConverter(String id, IModel<T> model, Class<T> type, DateConverter<T> converter) {
+ super(id, model, type);
+ this.converter = converter;
+ }
+
+ @Override
+ public T convertToObject(String value, Locale locale) {
+ return converter.convertToObject(value, locale);
+ }
+
+ @Override
+ public String convertToString(T value, Locale locale) {
+ return converter.convertToString(value, locale);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <C> IConverter<C> getConverter(Class<C> type) {
+ // we use isAssignableFrom rather than a simple == to handle
+ // the persistence of JDO/DataNucleus:
+ // if persisting a java.sql.Date, the object we are given is actually a
+ // org.datanucleus.store.types.simple.SqlDate (a subclass of java.sql.Date)
+ if (converter.getConvertableClass().isAssignableFrom(type)) {
+ return (IConverter<C>) converter;
+ }
+ return super.getConverter(type);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..74a061d
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDate.java
@@ -0,0 +1,31 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
+
+import java.util.Locale;
+
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates.DateConverterForJavaUtilDate;
+
+public class DateConverterForApplibDate extends DateConverterAbstract<org.apache.isis.applib.value.Date> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final DateConverterForJavaUtilDate converter;
+
+ public DateConverterForApplibDate(String datePattern) {
+ super(org.apache.isis.applib.value.Date.class, datePattern, datePattern);
+ converter = new DateConverterForJavaUtilDate(datePattern, datePattern);
+ }
+
+ @Override
+ protected org.apache.isis.applib.value.Date doConvertToObject(String value, Locale locale) {
+ final java.util.Date javaUtilDate = converter.convertToObject(value, locale);
+ return new org.apache.isis.applib.value.Date(javaUtilDate);
+ }
+
+ @Override
+ protected String doConvertToString(org.apache.isis.applib.value.Date value, Locale locale) {
+ return converter.convertToString(value.dateValue(), locale);
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..71810c7
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/DateConverterForApplibDateTime.java
@@ -0,0 +1,31 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
+
+import java.util.Locale;
+
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates.DateConverterForJavaUtilDate;
+
+public class DateConverterForApplibDateTime extends DateConverterAbstract<org.apache.isis.applib.value.DateTime> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final DateConverterForJavaUtilDate converter;
+
+ public DateConverterForApplibDateTime(String datePattern, String dateTimePattern) {
+ super(org.apache.isis.applib.value.DateTime.class, datePattern, dateTimePattern);
+ converter = new DateConverterForJavaUtilDate(datePattern, dateTimePattern);
+ }
+
+ @Override
+ protected org.apache.isis.applib.value.DateTime doConvertToObject(String value, Locale locale) {
+ final java.util.Date javaUtilDate = converter.convertToObject(value, locale);
+ return new org.apache.isis.applib.value.DateTime(javaUtilDate);
+ }
+
+ @Override
+ protected String doConvertToString(org.apache.isis.applib.value.DateTime value, Locale locale) {
+ return converter.convertToString(value.dateValue(), locale);
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.html
index 18aa42d..89cbbd1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.html
@@ -33,7 +33,7 @@
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
index cbb5b5c..609d1b4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDatePanel.java
@@ -19,92 +19,19 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
-import org.apache.wicket.datetime.markup.html.form.DateTextField;
-import org.apache.wicket.extensions.yui.calendar.DatePicker;
-import org.apache.wicket.markup.html.form.AbstractTextComponent;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.validation.IValidatable;
-import org.apache.wicket.validation.IValidator;
-import org.apache.wicket.validation.ValidationError;
-
import org.apache.isis.applib.value.Date;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
/**
* Panel for rendering scalars of type {@link Date Isis' applib.Date}.
*/
-public class IsisDatePanel extends ScalarPanelTextFieldAbstract<java.util.Date> {
+public class IsisDatePanel extends ScalarPanelTextFieldDatePickerAbstract<org.apache.isis.applib.value.Date> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
- private static final String DATE_PATTERN = "MM/dd/yyyy"; // TODO: i18n, see for example http://apache-wicket.1842946.n4.nabble.com/DatePicker-format-td1847739.html
-
public IsisDatePanel(final String id, final ScalarModel scalarModel) {
- super(id, scalarModel, java.util.Date.class);
- }
-
- @Override
- protected AbstractTextComponent<java.util.Date> createTextField() {
- final TextField<java.util.Date> textField = DateTextField.forDatePattern(ID_SCALAR_VALUE, new Model<java.util.Date>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public java.util.Date getObject() {
- final ObjectAdapter adapter = getModel().getObject();
- if (adapter == null) {
- return null;
- }
- final Date noDate = (Date) adapter.getObject();
- return noDate.dateValue();
- }
-
- @Override
- public void setObject(final java.util.Date date) {
- final Date noDate = new Date(date);
- final ObjectAdapter adapter = adapterFor(noDate);
- getModel().setObject(adapter);
- }
- }, DATE_PATTERN);
- return textField;
+ super(id, scalarModel, org.apache.isis.applib.value.Date.class, new DateConverterForApplibDate("dd-MM-yyyy"));
}
- @Override
- protected void addSemantics() {
- super.addSemantics();
-
- final DatePicker datePicker = new DatePicker();
- getTextField().add(datePicker);
-
- addObjectAdapterValidator();
- }
-
- private void addObjectAdapterValidator() {
- final ScalarModel scalarModel = getModel();
- final AbstractTextComponent<java.util.Date> textField = getTextField();
-
- textField.add(new IValidator<java.util.Date>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void validate(final IValidatable<java.util.Date> validatable) {
- final java.util.Date proposedValue = validatable.getValue();
- final Date proposed = new Date(proposedValue);
- final ObjectAdapter proposedAdapter = adapterFor(proposed);
- final String reasonIfAny = scalarModel.validate(proposedAdapter);
- if (reasonIfAny != null) {
- final ValidationError error = new ValidationError();
- error.setMessage(reasonIfAny);
- validatable.error(error);
- }
- }
- });
- }
-
- private ObjectAdapter adapterFor(final Object pojo) {
- return getAdapterManager().adapterFor(pojo);
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.html
index 4e6f870..5ae35c8 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.html
@@ -33,7 +33,7 @@
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
index aa50073..13954ac 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisDateTimePanel.java
@@ -20,23 +20,17 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
/**
* Panel for rendering scalars of type {@link DateTime Isis' applib.DateTime}.
*/
-public class IsisDateTimePanel extends ScalarPanelTextFieldParseableAbstract {
+public class IsisDateTimePanel extends ScalarPanelTextFieldDatePickerAbstract<org.apache.isis.applib.value.DateTime> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public IsisDateTimePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected void addSemantics() {
- super.addSemantics();
+ super(id, scalarModel, org.apache.isis.applib.value.DateTime.class, new DateConverterForApplibDateTime("dd-MM-yyyy", "dd-MM-yyyy HH:mm"));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
index 5c61316..7cb8139 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
@@ -45,7 +45,7 @@ public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
}
@Override
- protected AbstractTextComponent<String> createTextField() {
+ protected AbstractTextComponent<String> createTextFieldForRegular() {
final PasswordTextField passwordField = new PasswordTextField(idTextField, new Model<String>() {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaAbstract.java
new file mode 100644
index 0000000..0cb505b
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaAbstract.java
@@ -0,0 +1,23 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates;
+
+import java.text.SimpleDateFormat;
+
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterAbstract;
+
+public abstract class DateConverterForJavaAbstract<T extends java.util.Date> extends DateConverterAbstract<T> {
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJavaAbstract(final Class<T> cls, final String datePattern, String dateTimePattern) {
+ super(cls, datePattern, dateTimePattern);
+ }
+
+ protected SimpleDateFormat newSimpleDateFormatUsingDatePattern() {
+ return new SimpleDateFormat(datePattern);
+ }
+
+ protected SimpleDateFormat newSimpleDateFormatUsingDateTimePattern() {
+ return new SimpleDateFormat(dateTimePattern);
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..bf02b50
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaSqlDate.java
@@ -0,0 +1,30 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates;
+
+import java.text.ParseException;
+import java.util.Locale;
+
+
+public class DateConverterForJavaSqlDate extends DateConverterForJavaAbstract<java.sql.Date> {
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJavaSqlDate(String datePattern) {
+ super(java.sql.Date.class, datePattern, datePattern);
+ }
+
+ @Override
+ protected java.sql.Date doConvertToObject(String value, Locale locale) {
+ try {
+ final java.util.Date parsedJavaUtilDate = newSimpleDateFormatUsingDatePattern().parse(value);
+ return new java.sql.Date(parsedJavaUtilDate.getTime());
+ } catch (ParseException e) {
+ return null;
+ }
+ }
+
+ @Override
+ protected String doConvertToString(java.sql.Date value, Locale locale) {
+ return newSimpleDateFormatUsingDatePattern().format(value);
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..c4b0cd9
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/DateConverterForJavaUtilDate.java
@@ -0,0 +1,32 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates;
+
+import java.text.ParseException;
+import java.util.Locale;
+
+
+public class DateConverterForJavaUtilDate extends DateConverterForJavaAbstract<java.util.Date> {
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJavaUtilDate(String datePattern, String dateTimePattern) {
+ super(java.util.Date.class, datePattern, dateTimePattern);
+ }
+
+ @Override
+ protected java.util.Date doConvertToObject(String value, Locale locale) {
+ try {
+ return newSimpleDateFormatUsingDateTimePattern().parse(value);
+ } catch (ParseException e) {
+ try {
+ return newSimpleDateFormatUsingDatePattern().parse(value);
+ } catch (ParseException ex) {
+ return null;
+ }
+ }
+ }
+
+ @Override
+ protected String doConvertToString(java.util.Date value, Locale locale) {
+ return newSimpleDateFormatUsingDateTimePattern().format(value);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.html
index 77dc33c..5f75575 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.html
@@ -33,7 +33,7 @@
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.java
index 3db77d6..e3b9797 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaSqlDatePanel.java
@@ -22,23 +22,18 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates;
import java.sql.Date;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
/**
* Panel for rendering scalars of type {@link Date java.sql.Date}.
*/
-public class JavaSqlDatePanel extends ScalarPanelTextFieldParseableAbstract {
+public class JavaSqlDatePanel extends ScalarPanelTextFieldDatePickerAbstract<java.sql.Date> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public JavaSqlDatePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected void addSemantics() {
- super.addSemantics();
+ super(id, scalarModel, java.sql.Date.class,
+ new DateConverterForJavaSqlDate("dd-MM-yyyy"));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.html
index 29752f4..b3488fb 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.html
@@ -33,7 +33,7 @@
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.java
index 9e9aacc..8c1840c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkdates/JavaUtilDatePanel.java
@@ -19,7 +19,7 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.jdkdates;
-import java.util.Date;
+
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract;
@@ -30,20 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldD
public class JavaUtilDatePanel extends ScalarPanelTextFieldDatePickerAbstract<java.util.Date> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public JavaUtilDatePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected Date asDate(Date pojo) {
- return pojo;
- }
-
- @Override
- protected Date asPojo(Date date) {
- return date;
+ super(id, scalarModel, java.util.Date.class, new DateConverterForJavaUtilDate("dd-MM-yyyy", "dd-MM-yyyy HH:mm"));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
index 80bf1c4..5e5eea0 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/JavaMathBigIntegerPanel.java
@@ -57,7 +57,7 @@ public class JavaMathBigIntegerPanel extends ScalarPanelTextFieldNumeric<BigInte
}
@Override
- protected AbstractTextComponent<BigInteger> createTextField() {
+ protected AbstractTextComponent<BigInteger> createTextFieldForRegular() {
return new TextField<BigInteger>(ID_SCALAR_VALUE, new TextFieldValueModel<BigInteger>(this), BigInteger.class) {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaAbstract.java
new file mode 100644
index 0000000..2bbbb2c
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaAbstract.java
@@ -0,0 +1,24 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
+
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+
+import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverterAbstract;
+
+public abstract class DateConverterForJodaAbstract<T> extends DateConverterAbstract<T> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected DateConverterForJodaAbstract(Class<T> cls, String datePattern, String dateTimePattern) {
+ super(cls, datePattern, dateTimePattern);
+ }
+
+ protected DateTimeFormatter getFormatterForDatePattern() {
+ return DateTimeFormat.forPattern(datePattern);
+ }
+
+ protected DateTimeFormatter getFormatterForDateTimePattern() {
+ return DateTimeFormat.forPattern(dateTimePattern);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..4ec17b8
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaDateTime.java
@@ -0,0 +1,33 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
+
+import java.util.Locale;
+
+import org.joda.time.DateTime;
+
+public class DateConverterForJodaDateTime extends DateConverterForJodaAbstract<DateTime> {
+
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJodaDateTime(String datePattern, String dateTimePattern) {
+ super(DateTime.class, datePattern, dateTimePattern);
+ }
+
+ @Override
+ protected DateTime doConvertToObject(String value, Locale locale) {
+ try {
+ return getFormatterForDateTimePattern().parseDateTime(value);
+ } catch(IllegalArgumentException ex) {
+ try {
+ return getFormatterForDatePattern().parseDateTime(value);
+ } catch(IllegalArgumentException ex2) {
+ return null;
+ }
+ }
+ }
+
+ @Override
+ protected String doConvertToString(DateTime value, Locale locale) {
+ return value.toString(getFormatterForDateTimePattern());
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..e081b35
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDate.java
@@ -0,0 +1,29 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
+
+import java.util.Locale;
+
+import org.joda.time.LocalDate;
+
+public class DateConverterForJodaLocalDate extends DateConverterForJodaAbstract<LocalDate> {
+
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJodaLocalDate(String datePattern) {
+ super(LocalDate.class, datePattern, datePattern);
+ }
+
+ @Override
+ protected LocalDate doConvertToObject(String value, Locale locale) {
+ try {
+ return getFormatterForDatePattern().parseLocalDate(value);
+ } catch(IllegalArgumentException ex) {
+ return null;
+ }
+ }
+
+ @Override
+ protected String doConvertToString(LocalDate value, Locale locale) {
+ return value.toString(getFormatterForDatePattern());
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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
new file mode 100644
index 0000000..cc6cb82
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/DateConverterForJodaLocalDateTime.java
@@ -0,0 +1,34 @@
+package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
+
+import java.util.Locale;
+
+import org.joda.time.LocalDateTime;
+
+public class DateConverterForJodaLocalDateTime extends DateConverterForJodaAbstract<LocalDateTime> {
+
+ private static final long serialVersionUID = 1L;
+
+ public DateConverterForJodaLocalDateTime(String datePattern, String dateTimePattern) {
+ super(LocalDateTime.class, datePattern, dateTimePattern);
+ }
+
+ @Override
+ protected LocalDateTime doConvertToObject(String value, Locale locale) {
+ try {
+ return getFormatterForDateTimePattern().parseLocalDateTime(value);
+ } catch(IllegalArgumentException ex) {
+ try {
+ return getFormatterForDatePattern().parseLocalDateTime(value);
+ } catch(IllegalArgumentException ex2) {
+ return null;
+ }
+ }
+ }
+
+ @Override
+ protected String doConvertToString(LocalDateTime value, Locale locale) {
+ return value.toString(getFormatterForDatePattern());
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.html
index bb234fd..93883f3 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.html
@@ -29,11 +29,11 @@
<label for="scalarValue" wicket:id="scalarIfRegular">
<span wicket:id="scalarName" class="scalarName">[Label text]</span>
<span class="scalarValue">
- <input type="text" name="scalarValue" id="scalarValue" wicket:id="scalarValue" />
+ <input type="text" name="scalarValue" wicket:id="scalarValue" />
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
index 901bf70..f51502d 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaDateTimePanel.java
@@ -19,8 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
-import java.util.Date;
-
import org.joda.time.DateTime;
import org.joda.time.LocalDateTime;
@@ -33,20 +31,8 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldD
public class JodaDateTimePanel extends ScalarPanelTextFieldDatePickerAbstract<DateTime> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public JodaDateTimePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected Date asDate(DateTime pojo) {
- return pojo.toDateTime().toDate();
+ super(id, scalarModel, DateTime.class, new DateConverterForJodaDateTime("dd-MM-yyyy", "dd-MM-yyyy HH:mm"));
}
-
- @Override
- protected DateTime asPojo(Date date) {
- return new DateTime(date.getTime());
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.html
index 12b5bfd..d8b955c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.html
@@ -25,7 +25,7 @@
<head></head>
<body>
<wicket:panel>
- <div class="javaLocalDatePanel scalarNameAndValueComponentType">
+ <div class="jodaLocalDatePanel scalarNameAndValueComponentType">
<label for="scalarValue" wicket:id="scalarIfRegular">
<span wicket:id="scalarName" class="scalarName">[Label text]</span>
<span class="scalarValue">
@@ -33,7 +33,7 @@
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.java
index ccf6583..8a6bb96 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDatePanel.java
@@ -19,8 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
-import java.util.Date;
-
import org.joda.time.LocalDate;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -32,21 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldD
public class JodaLocalDatePanel extends ScalarPanelTextFieldDatePickerAbstract<LocalDate> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public JodaLocalDatePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected Date asDate(LocalDate pojo) {
- return pojo.toDateTimeAtStartOfDay().toDate();
+ super(id, scalarModel, LocalDate.class, new DateConverterForJodaLocalDate("dd-MM-yyyy"));
}
- @Override
- protected LocalDate asPojo(Date date) {
- return new LocalDate(date.getTime());
- }
-
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.html
index 3920a3f..0256334 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/jodatime/JodaLocalDateTimePanel.html
@@ -29,11 +29,11 @@
<label for="scalarValue" wicket:id="scalarIfRegular">
<span wicket:id="scalarName" class="scalarName">[Label text]</span>
<span class="scalarValue">
- <input type="text" name="scalarValue" id="scalarValue" wicket:id="scalarValue" />
+ <input type="text" name="scalarValue" wicket:id="scalarValue" />
<span wicket:id="feedback"></span>
</span>
</label>
- <label wicket:id="scalarIfCompact"></label>
+ <input type="text" wicket:id="scalarIfCompact"></input>
</div>
</wicket:panel>
</body>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/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 7a84237..4b1f628 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
@@ -19,8 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.jodatime;
-import java.util.Date;
-
import org.joda.time.LocalDateTime;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -32,20 +30,9 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldD
public class JodaLocalDateTimePanel extends ScalarPanelTextFieldDatePickerAbstract<LocalDateTime> {
private static final long serialVersionUID = 1L;
- private static final String ID_SCALAR_VALUE = "scalarValue";
public JodaLocalDateTimePanel(final String id, final ScalarModel scalarModel) {
- super(id, ID_SCALAR_VALUE, scalarModel);
- }
-
- @Override
- protected Date asDate(LocalDateTime pojo) {
- return pojo.toDateTime().toDate();
- }
-
- @Override
- protected LocalDateTime asPojo(Date date) {
- return new LocalDateTime(date.getTime());
+ super(id, scalarModel, LocalDateTime.class, new DateConverterForJodaLocalDateTime("dd-MM-yyyy", "dd-MM-yyyy HH:mm"));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index 54b7bce..323af6d 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -45,7 +45,7 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
}
@Override
- protected AbstractTextComponent<String> createTextField() {
+ protected AbstractTextComponent<String> createTextFieldForRegular() {
final TextArea<String> textField = new TextArea<String>(idTextField, new Model<String>() {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java
new file mode 100644
index 0000000..7ce179a
--- /dev/null
+++ b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.tck.dom.scalars;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.applib.annotation.Title;
+
+@javax.jdo.annotations.PersistenceCapable
+@javax.jdo.annotations.Discriminator("APLV")
+@javax.jdo.annotations.Query(
+ name="dtmv_findByStringProperty", language="JDOQL",
+ value="SELECT FROM org.apache.isis.tck.dom.scalars.DateTimeValuedEntity WHERE stringProperty == :i")
+@ObjectType("APLV")
+public class DateTimeValuedEntity extends AbstractDomainObject {
+
+
+ // {{ StringProperty (also title, pk)
+ private String stringProperty;
+
+ @javax.jdo.annotations.PrimaryKey
+ @Title
+ @Optional
+ @MemberOrder(sequence = "1")
+ public String getStringProperty() {
+ return stringProperty;
+ }
+
+ public void setStringProperty(final String description) {
+ this.stringProperty = description;
+ }
+
+ // }}
+
+
+ // {{ JavaUtilDate (property)
+ private java.util.Date javaUtilDate;
+
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public java.util.Date getJavaUtilDate() {
+ return javaUtilDate;
+ }
+
+ public void setJavaUtilDate(final java.util.Date javaUtilDate) {
+ this.javaUtilDate = javaUtilDate;
+ }
+ // }}
+
+ // {{ JavaSqlDate (property)
+ private java.sql.Date javaSqlDate;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public java.sql.Date getJavaSqlDate() {
+ return javaSqlDate;
+ }
+
+ public void setJavaSqlDate(final java.sql.Date javaSqlDate) {
+ this.javaSqlDate = javaSqlDate;
+ }
+ // }}
+
+ // {{ ApplibDate (property)
+ private org.apache.isis.applib.value.Date applibDate;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public org.apache.isis.applib.value.Date getApplibDate() {
+ return applibDate;
+ }
+
+ public void setApplibDate(final org.apache.isis.applib.value.Date applibDate) {
+ this.applibDate = applibDate;
+ }
+ // }}
+
+ // {{ ApplibDateTime (property)
+ private org.apache.isis.applib.value.DateTime applibDateTime;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public org.apache.isis.applib.value.DateTime getApplibDateTime() {
+ return applibDateTime;
+ }
+
+ public void setApplibDateTime(final org.apache.isis.applib.value.DateTime applibDateTime) {
+ this.applibDateTime = applibDateTime;
+ }
+ // }}
+
+ // {{ JodaLocalDateTime (property)
+ private org.joda.time.LocalDateTime jodaLocalDateTime;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public org.joda.time.LocalDateTime getJodaLocalDateTime() {
+ return jodaLocalDateTime;
+ }
+
+ public void setJodaLocalDateTime(final org.joda.time.LocalDateTime jodaLocalDateTime) {
+ this.jodaLocalDateTime = jodaLocalDateTime;
+ }
+ // }}
+
+ // {{ JodaLocalDate (property)
+ private org.joda.time.LocalDate jodaLocalDate;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public org.joda.time.LocalDate getJodaLocalDate() {
+ return jodaLocalDate;
+ }
+
+ public void setJodaLocalDate(final org.joda.time.LocalDate jodaLocalDate) {
+ this.jodaLocalDate = jodaLocalDate;
+ }
+ // }}
+
+
+ // {{ JodaDateTime (property)
+ private org.joda.time.DateTime jodaDateTime;
+
+ @javax.jdo.annotations.Persistent
+ @Optional
+ @MemberOrder(name="dates", sequence = "1")
+ public org.joda.time.DateTime getJodaDateTime() {
+ return jodaDateTime;
+ }
+
+ public void setJodaDateTime(final org.joda.time.DateTime jodaDateTime) {
+ this.jodaDateTime = jodaDateTime;
+ }
+ // }}
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
new file mode 100644
index 0000000..6f4c0b4
--- /dev/null
+++ b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.tck.dom.scalars;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("DateTimeValuedEntities")
+@ObjectType("DateTimeValuedEntities")
+public class DateTimeValuedEntityRepository extends AbstractEntityRepository<DateTimeValuedEntity> {
+
+ public DateTimeValuedEntityRepository() {
+ super(DateTimeValuedEntity.class, "DateTimeValuedEntities");
+ }
+
+ /**
+ * Required to discover the DateTimeValueEntity type.
+ */
+ @Override
+ @MemberOrder(sequence = "2")
+ public DateTimeValuedEntity newEntity() {
+ return super.newEntity();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java b/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
new file mode 100644
index 0000000..c77b359
--- /dev/null
+++ b/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.DateTimeValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.DateTimeValuedEntityRepository;
+
+public class DateTimeValuedEntityFixture extends AbstractFixture {
+
+ @Override
+ public void install() {
+ createEntity();
+ createEntity();
+ createEntity();
+ createEntity();
+ createEntity();
+ }
+
+ private DateTimeValuedEntity createEntity() {
+ return dateTimeValuesEntityRepository.newEntity();
+ }
+
+ private DateTimeValuedEntityRepository dateTimeValuesEntityRepository;
+
+ public void setDateTimeValuesEntityRepository(final DateTimeValuedEntityRepository dateTimeValuesEntityRepository) {
+ this.dateTimeValuesEntityRepository = dateTimeValuesEntityRepository;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index 42831bb..b905576 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -79,6 +79,7 @@ import com.google.common.collect.Lists;
value="SELECT FROM dom.todo.ToDoItem WHERE ownedBy == :ownedBy && description.indexOf(:description) >= 0")
})
@javax.jdo.annotations.Version(strategy=VersionStrategy.VERSION_NUMBER, column="VERSION")
+@javax.jdo.annotations.Unique(name="ToDoItem_description_must_be_unique", members={"ownedBy","description"})
@ObjectType("TODO")
@Audited
@PublishedObject(ToDoItemChangedPayloadFactory.class)
@@ -111,7 +112,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
// {{ Description
private String description;
- @javax.jdo.annotations.Unique(name="ToDoItem_description_must_be_unique")
@RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*")
// words, spaces and selected punctuation
@MemberOrder(sequence = "1")
@@ -510,7 +510,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
// {{ injected: DomainObjectContainer
- @SuppressWarnings("unused")
private DomainObjectContainer container;
public void setDomainObjectContainer(final DomainObjectContainer container) {
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/example/application/quickstart_wicket_restful_jdo/viewer-webapp/ide/eclipse/launch/quickstart_wicket_restful_jdo-viewer-webapp-with-fixtures.launch
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/ide/eclipse/launch/quickstart_wicket_restful_jdo-viewer-webapp-with-fixtures.launch b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/ide/eclipse/launch/quickstart_wicket_restful_jdo-viewer-webapp-with-fixtures.launch
new file mode 100644
index 0000000..f9c6788
--- /dev/null
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/ide/eclipse/launch/quickstart_wicket_restful_jdo-viewer-webapp-with-fixtures.launch
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.apache.isis.runtimes.dflt.webserver/src/main/java/org/apache/isis/WebServer.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
+<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
+<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.isis.WebServer"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="quickstart_wicket_restful_jdo-viewer-webapp"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--port 8080 -D isis.persistor.datanucleus.install-fixtures=true -t SERVER_EXPLORATION"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+</launchConfiguration>
http://git-wip-us.apache.org/repos/asf/isis/blob/69e6329c/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
index 3effdbd..8f5a51d 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
@@ -178,7 +178,7 @@ isis.services = objstore.jdo.todo.ToDoItemsJdo,\
# object stores, they are used only when the object store is first initialized.
#
#isis.fixtures.prefix=
-#isis.fixtures=
+isis.fixtures=fixture.todo.ToDoItemsFixture