You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/03/21 16:04:50 UTC
[isis] branch master updated: ISIS-2877: prepare removal of TextFieldVariant
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 2475254 ISIS-2877: prepare removal of TextFieldVariant
2475254 is described below
commit 2475254ef35d5e4dc7f2e3d53323881030fa311b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 21 17:04:40 2022 +0100
ISIS-2877: prepare removal of TextFieldVariant
---
.../testdomain/conf/Configuration_usingWicket.java | 4 +--
.../components/scalars/ScalarFragmentFactory.java | 11 ++------
.../ui/components/scalars/ScalarPanelAbstract.java | 30 +++++++++++++---------
.../scalars/ScalarPanelFormFieldAbstract.html | 4 +--
.../scalars/ScalarPanelFormFieldAbstract.java | 11 ++++----
.../scalars/ScalarPanelTextFieldAbstract.java | 17 +++---------
.../scalars/ScalarPanelTextFieldWithComposite.java | 10 ++++++--
.../ui/components/scalars/TextFieldVariant.java | 1 +
.../scalars/markup/ScalarMarkupPanel.java | 11 ++++++--
9 files changed, 52 insertions(+), 47 deletions(-)
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
index 2c76f32..6708123 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
@@ -142,14 +142,14 @@ public class Configuration_usingWicket {
public static final String INVENTORY_NAME_PROPERTY_EDIT_INLINE_FORM_TEXTFIELD = INVENTORY_NAME_PROPERTY
+ ":property:scalarNameAndValue:scalarTypeContainer:scalarIfRegular:"
- + RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId() + ":scalarValue";
+ + RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId() + ":scalarValue";
public static final String INVENTORY_NAME_PROPERTY_EDIT_INLINE_PROMPT_FORM = INVENTORY_NAME_PROPERTY
+ ":scalarTypeContainer:scalarIfRegularInlinePromptForm:inputForm";
public static final String INLINE_PROMPT_FORM_FIELD = ""
+ "property:scalarNameAndValue:scalarTypeContainer:scalarIfRegular:"
- + RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId() + ":scalarValue";
+ + RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId() + ":scalarValue";
public static final String INLINE_PROMPT_FORM_OK = INVENTORY_NAME_PROPERTY_EDIT_INLINE_PROMPT_FORM
+ ":okButton";
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
index fd01846..035d3e9 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
@@ -23,7 +23,6 @@ import java.util.function.Function;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
@@ -31,7 +30,6 @@ import org.springframework.lang.Nullable;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
-import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -57,12 +55,10 @@ public class ScalarFragmentFactory {
@RequiredArgsConstructor
public static enum RegularFrame {
- @Deprecated
SCALAR_VALUE_INLINE_PROMPT_LINK("scalarValueInlinePromptLink"),
- @Deprecated
OUTPUT_FORMAT_CONTAINER("container-scalarValue-outputFormat"),
- SCALAR_VALUE_CONTAINER("container-scalarValue"),
+ INPUT_FORMAT_CONTAINER("container-scalarValue-inputFormat"),
EDIT_PROPERTY("editProperty"),
FEEDBACK("feedback"),
@@ -105,7 +101,7 @@ public class ScalarFragmentFactory {
private final String fragmentId;
public Fragment createFragment(final MarkupContainer container, final FormComponent<?> inputComponent) {
val fragment = Wkt.fragmentAdd(
- container, RegularFrame.SCALAR_VALUE_CONTAINER.getContainerId(), fragmentId);
+ container, RegularFrame.INPUT_FORMAT_CONTAINER.getContainerId(), fragmentId);
fragment.add(inputComponent);
return fragment;
}
@@ -115,9 +111,6 @@ public class ScalarFragmentFactory {
@RequiredArgsConstructor
public static enum PromptFragment {
- EDIT_ICON("fragment-prompt-editicon", promptLabelModel->
- WktTooltips.addTooltip(
- new Button(ScalarPanelAbstract.ID_SCALAR_VALUE), "Click to edit")),
LABEL("fragment-prompt-label", promptLabelModel->
Wkt.label(ScalarPanelAbstract.ID_SCALAR_VALUE, promptLabelModel)),
TEXTAREA("fragment-prompt-textarea", promptLabelModel->
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 1b65ad7..aab6e33 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars;
+import java.util.EnumSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@@ -37,6 +38,7 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.services.metamodel.BeanSort;
import org.apache.isis.applib.services.metamodel.MetaModelService;
import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.debug._Probe;
@@ -90,6 +92,14 @@ implements ScalarModelSubscriber {
protected static final String ID_SCALAR_NAME = "scalarName";
protected static final String ID_SCALAR_VALUE = "scalarValue";
+ public enum FormatModifier {
+ READONLY,
+ MARKUP,
+ MULITLINE,
+ TRISTATE,
+ FLEX, COMPOSITE
+ }
+
public enum Repaint {
ENTIRE_FORM,
PARAM_ONLY,
@@ -100,7 +110,6 @@ implements ScalarModelSubscriber {
public static class InlinePromptConfig {
@Getter private final boolean supported;
private final Component componentToHideIfAny;
- @Getter private final boolean useEditIconWithLink;
public static InlinePromptConfig supported() {
return new InlinePromptConfig(true, null);
@@ -114,16 +123,6 @@ implements ScalarModelSubscriber {
return new InlinePromptConfig(true, componentToHideIfAny);
}
- private InlinePromptConfig(final boolean supported, final Component componentToHideIfAny) {
- this.supported = supported;
- this.componentToHideIfAny = componentToHideIfAny;
- this.useEditIconWithLink = false;
- }
-
- public InlinePromptConfig withEditIcon() {
- return new InlinePromptConfig(supported, componentToHideIfAny, true);
- }
-
public Optional<Component> getComponentToHide() {
return Optional.ofNullable(componentToHideIfAny);
}
@@ -137,6 +136,12 @@ implements ScalarModelSubscriber {
@Getter @Accessors(fluent = true)
private final ScalarModel scalarModel;
+ @Getter
+ private final ImmutableEnumSet<FormatModifier> formatModifiers;
+ protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+ return EnumSet.noneOf(FormatModifier.class);
+ }
+
// -- COMPACT FRAME
private Component frameIfCompact;
@@ -177,6 +182,7 @@ implements ScalarModelSubscriber {
protected ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
super(id, scalarModel);
this.scalarModel = scalarModel;
+ this.formatModifiers = ImmutableEnumSet.from(createFormatModifiers(scalarModel));
}
// -- INIT
@@ -500,7 +506,7 @@ implements ScalarModelSubscriber {
if(condition) {
val editProperty = Wkt.containerAdd(frameIfRegular, editLinkId);
Wkt.behaviorAddOnClick(editProperty, this::onPropertyEditClick);
- WktTooltips.addTooltip(editProperty, "edit");
+ WktTooltips.addTooltip(editProperty, "Click to edit");
return editProperty;
} else {
WktComponents.permanentlyHide(frameIfRegular, editLinkId);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
index deca769..4852d2d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
@@ -45,9 +45,9 @@
</a>
- <!-- container scalarValue -->
+ <!-- input format (when editing or action dialog) -->
<wicket:container
- wicket:id="container-scalarValue" />
+ wicket:id="container-scalarValue-inputFormat" />
<a wicket:id="editProperty"
href="##" class="edit btn btn-sm btn-link">
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
index 8a2b569..245d325 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
@@ -38,9 +38,9 @@ import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.util.CommonContextUtils;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
@@ -146,14 +146,15 @@ extends ScalarPanelAbstract2 {
protected void onFormGroupCreated(final FormGroup formGroup) {
if(scalarModel().isViewMode()
- && getInlinePromptConfig().isUseEditIconWithLink()) {
- formGroup.add(RegularFrame.SCALAR_VALUE_CONTAINER
+ //TODO remove this non intuitive logic
+ && getFormatModifiers().contains(FormatModifier.MARKUP)) {
+ formGroup.add(RegularFrame.INPUT_FORMAT_CONTAINER
.createComponent(this::createComponentForOutput));
return;
}
getInputFragmentType()
- .ifPresent(regularFragmentType->
- formGroup.add(regularFragmentType.createFragment(this, getFormComponent())));
+ .ifPresent(inputFragmentType->
+ formGroup.add(inputFragmentType.createFragment(this, getFormComponent())));
}
protected IValidator<Object> createValidator(final ScalarModel scalarModel) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 9c6d385..c7e78e2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -31,7 +31,6 @@ import org.apache.wicket.util.convert.IConverter;
import org.apache.wicket.validation.validator.StringValidator;
import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
@@ -155,19 +154,11 @@ extends ScalarPanelFormFieldAbstract<T> {
protected final Component createInlinePromptComponent(
final String id,
final IModel<String> inlinePromptLabelModel) {
-
- if(getInlinePromptConfig().isUseEditIconWithLink()) {
- return PromptFragment.EDIT_ICON.createFragment(this, inlinePromptLabelModel, null);
- }
-
- switch(getTextFieldVariant()) {
- case SINGLE_LINE:
- return PromptFragment.LABEL.createFragment(this, inlinePromptLabelModel, null);
- case MULTI_LINE:
- return PromptFragment.TEXTAREA.createFragment(this, inlinePromptLabelModel, this::setFormComponentAttributes);
- default:
- throw _Exceptions.unmatchedCase(getTextFieldVariant());
+ if(getFormatModifiers().contains(FormatModifier.MULITLINE)) {
+ return PromptFragment.TEXTAREA
+ .createFragment(this, inlinePromptLabelModel, this::setFormComponentAttributes);
}
+ return PromptFragment.LABEL.createFragment(this, inlinePromptLabelModel, null);
}
// -- CONVERSION
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
index 6712c04..73e82b5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithComposite.java
@@ -18,11 +18,15 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars;
+import java.util.EnumSet;
+
import org.apache.wicket.Component;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import lombok.val;
+
public class ScalarPanelTextFieldWithComposite<T>
extends ScalarPanelTextFieldWithValueSemantics<T> {
@@ -37,8 +41,10 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
}
@Override
- protected InlinePromptConfig getInlinePromptConfig() {
- return super.getInlinePromptConfig().withEditIcon();
+ protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+ val modifiers = super.createFormatModifiers(scalarModel);
+ modifiers.add(FormatModifier.COMPOSITE);
+ return modifiers;
}
@Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
index 4d12c5a..87492f8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldVariant.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars;
+@Deprecated //use FormatModifier instead
public enum TextFieldVariant {
SINGLE_LINE,
MULTI_LINE;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
index a7b9432..ebe02ec 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
@@ -18,12 +18,16 @@
*/
package org.apache.isis.viewer.wicket.ui.components.scalars.markup;
+import java.util.EnumSet;
+
import org.apache.wicket.Component;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldVariant;
+import lombok.val;
+
/**
* Panel for rendering scalars of type {@link org.apache.isis.applib.value.Markup}.
*/
@@ -44,8 +48,11 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
}
@Override
- protected InlinePromptConfig getInlinePromptConfig() {
- return super.getInlinePromptConfig().withEditIcon();
+ protected EnumSet<FormatModifier> createFormatModifiers(final ScalarModel scalarModel) {
+ val modifiers = super.createFormatModifiers(scalarModel);
+ modifiers.add(FormatModifier.MARKUP);
+ modifiers.add(FormatModifier.MULITLINE);
+ return modifiers;
}
@Override