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 2017/04/27 12:32:50 UTC
[04/35] isis git commit: ISIS-1603: trivial refactoring of password
panel, date picker panel (remove duplicate validation)
ISIS-1603: trivial refactoring of password panel, date picker panel (remove duplicate validation)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4d79170d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4d79170d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4d79170d
Branch: refs/heads/ISIS-1603
Commit: 4d79170dad239e8ddbfc2b1f11de66daae942ebb
Parents: cf9ad00
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Apr 21 14:40:22 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Apr 27 13:25:36 2017 +0100
----------------------------------------------------------------------
.../scalars/ScalarPanelTextFieldAbstract.java | 44 +++++++++-----------
.../ScalarPanelTextFieldDatePickerAbstract.java | 29 -------------
.../scalars/isisapplib/IsisPasswordPanel.java | 5 ---
3 files changed, 20 insertions(+), 58 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4d79170d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index bb22641..fd371d6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -39,12 +39,14 @@ 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.wicket.validation.validator.StringValidator;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -93,7 +95,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
}
- protected AbstractTextComponent<T> getTextField() {
+ AbstractTextComponent<T> getTextField() {
return textField;
}
@@ -101,21 +103,20 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return createTextField(id);
}
- protected TextField<T> createTextField(final String id) {
- return new TextField<>(id, newTextFieldValueModel(), cls);
- }
-
protected TextFieldValueModel<T> newTextFieldValueModel() {
return new TextFieldValueModel<>(this);
}
+ protected TextField<T> createTextField(final String id) {
+ return new TextField<>(id, newTextFieldValueModel(), cls);
+ }
+
@Override
protected MarkupContainer addComponentForRegular() {
textField = createTextFieldForRegular(ID_SCALAR_VALUE);
textField.setOutputMarkupId(true);
addStandardSemantics();
- addSemantics();
final MarkupContainer labelIfRegular = createFormComponentLabel();
scalarTypeContainer.add(labelIfRegular);
@@ -157,14 +158,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected abstract IModel<String> getScalarPanelType();
- /**
- * Optional hook method
- */
- protected void addSemantics() {
- // we don't call textField.setType(), since we want more control
- // over the parsing (using custom subclasses of TextField etc)
- }
-
private void addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(final Component component) {
if(!getSettings().isReplaceDisabledTagWithReadonlyTag()) {
return;
@@ -180,13 +173,12 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
private MarkupContainer createFormComponentLabel() {
Fragment textFieldFragment = createTextFieldFragment("scalarValueContainer");
- final AbstractTextComponent<T> textField = getTextField();
final String name = getModel().getName();
textField.setLabel(Model.of(name));
- final FormGroup scalarNameAndValue = new FormGroup(ID_SCALAR_IF_REGULAR, textField);
+ final FormGroup scalarNameAndValue = new FormGroup(ID_SCALAR_IF_REGULAR, this.textField);
- textFieldFragment.add(textField);
+ textFieldFragment.add(this.textField);
scalarNameAndValue.add(textFieldFragment);
return scalarNameAndValue;
@@ -198,12 +190,13 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected void addStandardSemantics() {
textField.setRequired(getModel().isRequired());
- setTextFieldSizeAndMaxLengthIfSpecified(textField);
+ setTextFieldSizeAndMaxLengthIfSpecified();
- addValidator();
+ addValidatorForIsisValidation();
}
- protected void addValidator() {
+
+ private void addValidatorForIsisValidation() {
final ScalarModel scalarModel = getModel();
textField.add(new IValidator<T>() {
@@ -223,25 +216,26 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
});
}
- protected void setTextFieldSizeAndMaxLengthIfSpecified(AbstractTextComponent<T> textField) {
+ private void setTextFieldSizeAndMaxLengthIfSpecified() {
final Integer maxLength = getValueOf(getModel(), MaxLengthFacet.class);
Integer typicalLength = getValueOf(getModel(), TypicalLengthFacet.class);
- // doesn't make sense for typical length to be > maxLength
+ // doesn't make sense for typical length to be > maxLength
if(typicalLength != null && maxLength != null && typicalLength > maxLength) {
typicalLength = maxLength;
}
-
+
if (typicalLength != null) {
textField.add(new AttributeModifier("size", Model.of("" + typicalLength)));
}
-
+
if(maxLength != null) {
textField.add(new AttributeModifier("maxlength", Model.of("" + maxLength)));
}
}
+
private static Integer getValueOf(ScalarModel model, Class<? extends SingleIntValueFacet> facetType) {
final SingleIntValueFacet facet = model.getFacet(facetType);
return facet != null ? facet.value() : null;
@@ -263,9 +257,11 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return labelIfCompact;
}
+
@Override
protected void onBeforeRenderWhenViewMode() {
super.onBeforeRenderWhenViewMode();
+
textField.setEnabled(false);
addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
http://git-wip-us.apache.org/repos/asf/isis/blob/4d79170d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
index 45c3c1b..fd947bc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
@@ -76,14 +76,7 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
return new Fragment(id, "date", ScalarPanelTextFieldDatePickerAbstract.this);
}
- @Override
- protected void addSemantics() {
- super.addSemantics();
-
- addObjectAdapterValidator();
- }
-
protected Component addComponentForCompact() {
Fragment compactFragment = getCompactFragment(CompactType.SPAN);
final Label label = new Label(ID_SCALAR_IF_COMPACT, newTextFieldValueModel()) {
@@ -114,25 +107,6 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
return null;
}
- private void addObjectAdapterValidator() {
- final AbstractTextComponent<T> textField = getTextField();
-
- textField.add(new IValidator<T>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- 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) {
- final ValidationError error = new ValidationError();
- error.setMessage(reasonIfAny);
- validatable.error(error);
- }
- }
- });
- }
@com.google.inject.Inject
@@ -141,8 +115,5 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
return settings;
}
- private ObjectAdapter adapterFor(final Object pojo) {
- return getPersistenceSession().adapterFor(pojo);
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/4d79170d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
index 3e549cd..28e4ad7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisPasswordPanel.java
@@ -43,10 +43,6 @@ public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
super(id, scalarModel);
}
- @Override
- protected void addSemantics() {
- super.addSemantics();
- }
@Override
protected AbstractTextComponent<String> createTextFieldForRegular(String id) {
@@ -68,5 +64,4 @@ public class IsisPasswordPanel extends ScalarPanelTextFieldParseableAbstract {
protected IModel<String> getScalarPanelType() {
return Model.of("isisPasswordPanel");
}
-
}