This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch 2877-compound.value.types in repository https://gitbox.apache.org/repos/asf/isis.git
commit e54c21f7159c8356f0e6f4ce62bd572ba7d7c2c2 Author: Andi Huber <[email protected]> AuthorDate: Mon Oct 11 10:06:00 2021 +0200 ISIS-2877: comments and renaming viewer classes --- .../webapp/wicket/jpa/DemoAppWicketJpa.java | 3 +- .../value/CalendarEventSemanticsProvider.java | 16 +++- .../viewer/wicket/model/models/ValueModel.java | 5 +- .../actionresponse/ActionResultResponseType.java | 3 + .../scalars/ComponentFactoryScalarAbstract.java | 9 +- .../ui/components/scalars/ScalarPanelAbstract.java | 8 +- .../scalars/ScalarPanelTextFieldAbstract.java | 2 +- .../ScalarPanelTextFieldParseableAbstract.java | 3 +- .../scalars/value/compound/ValueCompoundPanel.java | 100 +++++++++++++++++++++ .../ValueCompoundPanelFactory.java} | 28 +++--- .../scalars/value/compound/ValueCompoundPanex.html | 62 +++++++++++++ .../ValueFallbackPanel.java} | 8 +- .../ValueFallbackPanelFactory.java} | 15 ++-- .../value/StandaloneValuePanelFactory.java | 7 +- .../ComponentFactoryRegistrarDefault.java | 36 +++++--- 15 files changed, 252 insertions(+), 53 deletions(-) diff --git a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java index 8d11d3f..ed14087 100644 --- a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java +++ b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java @@ -33,6 +33,7 @@ import org.apache.isis.valuetypes.markdown.persistence.jpa.IsisModuleValMarkdown import org.apache.isis.valuetypes.markdown.ui.wkt.IsisModuleValMarkdownUiWkt; import org.apache.isis.valuetypes.sse.ui.wkt.IsisModuleValSseUiWkt; import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer; +import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault; import demoapp.web.DemoAppManifestJpa; import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon; @@ -77,7 +78,7 @@ public class DemoAppWicketJpa extends SpringBootServletInitializer { public static void main(final String[] args) { IsisPresets.prototyping(); //IsisPresets.logging(WebRequestCycleForIsis.class, "debug"); - //IsisPresets.logging(ComponentFactoryRegistryDefault.class, "debug"); + IsisPresets.logging(ComponentFactoryRegistryDefault.class, "debug"); //IsisPresets.logging(EntityModel.class, "debug"); //IsisPresets.logging(FormExecutorDefault.class, "debug"); diff --git a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEventSemanticsProvider.java b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEventSemanticsProvider.java index 33105bd..78df77e 100644 --- a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEventSemanticsProvider.java +++ b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEventSemanticsProvider.java @@ -22,14 +22,17 @@ import java.time.Instant; import org.springframework.stereotype.Component; -import org.apache.isis.applib.adapters.ValueSemanticsAbstract; import org.apache.isis.applib.adapters.DefaultsProvider; +import org.apache.isis.applib.adapters.Renderer; +import org.apache.isis.applib.adapters.ValueSemanticsAbstract; import org.apache.isis.schema.common.v2.ValueType; @Component public class CalendarEventSemanticsProvider extends ValueSemanticsAbstract<CalendarEvent> -implements DefaultsProvider<CalendarEvent>{ +implements + DefaultsProvider<CalendarEvent>, + Renderer<CalendarEvent> { @Override public Class<CalendarEvent> getCorrespondingClass() { @@ -41,10 +44,19 @@ implements DefaultsProvider<CalendarEvent>{ return UNREPRESENTED; } + // -- DEFAULTS PROVIDER + @Override public CalendarEvent getDefaultValue() { return new CalendarEvent( Instant.now().toEpochMilli(), "Default Calendar", "New Event", "empty"); } + // -- RENDERER + + @Override + public String simpleTextRepresentation(final Context context, final CalendarEvent value) { + return render(value, v->v.toString()); + } + } diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java index adb583f..12ca57a 100644 --- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java +++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java @@ -28,7 +28,7 @@ import org.apache.isis.core.runtime.context.IsisAppCommonContext; import lombok.NonNull; /** - * Represents a standalone value. + * Represents a standalone value (used for standalone value page). */ public class ValueModel extends ModelAbstract<ManagedObject> { @@ -79,7 +79,4 @@ public class ValueModel extends ModelAbstract<ManagedObject> { this.actionModelHint = actionModelHint; } - - - } diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java index e2b450f..51ca86e 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java @@ -78,6 +78,9 @@ public enum ActionResultResponseType { return ActionResultResponse.toPage(new StandaloneCollectionPage(collectionModel)); } }, + /** + * Renders the value-type in its own <i>Standalone Value Page</i>. + */ VALUE { @Override public ActionResultResponse interpretResult( diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java index ee4da87..bfb12ca 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java @@ -25,15 +25,16 @@ import org.apache.isis.viewer.common.model.components.ComponentType; import org.apache.isis.viewer.wicket.model.models.ScalarModel; import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract; -public abstract class ComponentFactoryScalarAbstract extends ComponentFactoryAbstract { +public abstract class ComponentFactoryScalarAbstract +extends ComponentFactoryAbstract { private static final long serialVersionUID = 1L; private final Class<?>[] scalarTypes; - public ComponentFactoryScalarAbstract( - Class<?> componentClass, - Class<?>... scalarTypes) { + protected ComponentFactoryScalarAbstract( + final Class<?> componentClass, + final Class<?>... scalarTypes) { super(ComponentType.SCALAR_NAME_AND_VALUE, componentClass); this.scalarTypes = scalarTypes; 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 5a9d242..d90b3b3 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 @@ -655,15 +655,15 @@ implements ScalarModelSubscriber { throw new IllegalStateException(this.getClass().getName() + ": obtainInlinePromptModel() returning null is not compatible with supportsInlinePrompt() returning true "); } - final WebMarkupContainer inlinePromptLink = new WebMarkupContainer(ID_SCALAR_VALUE_INLINE_PROMPT_LINK); + final WebMarkupContainer inlinePromptLink = + new WebMarkupContainer(ID_SCALAR_VALUE_INLINE_PROMPT_LINK); inlinePromptLink.setOutputMarkupId(true); inlinePromptLink.setOutputMarkupPlaceholderTag(true); configureInlinePromptLink(inlinePromptLink); - final Component editInlineLinkLabel = createInlinePromptComponent(ID_SCALAR_VALUE_INLINE_PROMPT_LABEL, - inlinePromptModel - ); + final Component editInlineLinkLabel = + createInlinePromptComponent(ID_SCALAR_VALUE_INLINE_PROMPT_LABEL, inlinePromptModel); inlinePromptLink.add(editInlineLinkLabel); return inlinePromptLink; 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 6358d77..0395a18 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 @@ -272,7 +272,7 @@ implements TextFieldValueModel.ScalarModelProvider { /** * Mandatory hook method to build the component to render the model when in - * {@link org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract.Rendering#COMPACT compact} + * {@link org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract.Rendering#COMPACT} * format. * <p> * This default implementation uses a {@link Label}, however it may be overridden if required. diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java index 7ad32d7..1e019fc 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldParseableAbstract.java @@ -31,7 +31,8 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel; * s where moreover the scalar parameter or property is a value type that is * parseable. */ -public abstract class ScalarPanelTextFieldParseableAbstract extends ScalarPanelTextFieldAbstract<String> { +public abstract class ScalarPanelTextFieldParseableAbstract +extends ScalarPanelTextFieldAbstract<String> { private static final long serialVersionUID = 1L; diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanel.java new file mode 100644 index 0000000..f3eec78 --- /dev/null +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanel.java @@ -0,0 +1,100 @@ +/* + * 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.viewer.wicket.ui.components.scalars.value.compound; + +import org.apache.wicket.markup.html.form.AbstractTextComponent; +import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.model.LambdaModel; + +import org.apache.isis.applib.adapters.Parser; +import org.apache.isis.applib.adapters.Renderer; +import org.apache.isis.applib.annotation.Value; +import org.apache.isis.core.metamodel.facets.object.value.ValueFacet; +import org.apache.isis.viewer.wicket.model.models.ScalarModel; +import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract; +import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract; + +/** + * Panel for rendering any value types that do not have their own custom + * {@link ScalarPanelAbstract panel} to render them. + * + * <p> + * This is a fallback panel; values are expected to be {@link Parser parseable} + * (typically through the Isis' {@link Value} annotation. + */ +//FIXME[ISIS-2877] introduced for experiments, should be removed before merge into 'master' +public class ValueCompoundPanel +extends ScalarPanelTextFieldParseableAbstract { + + private static final long serialVersionUID = 1L; + + public ValueCompoundPanel(final String id, final ScalarModel scalarModel) { + super(id, scalarModel); + } + + @Override + protected String getScalarPanelType() { + return "valuePanel"; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + onInitializeReadonly(null); + } + +// @Override +// protected InlinePromptConfig getInlinePromptConfig() { +// return InlinePromptConfig.notSupported(); +// } + + @Override + protected AbstractTextComponent<String> createTextFieldForRegular(final String id) { + return new TextField<>(id, LambdaModel.of(()-> + renderer().simpleTextRepresentation(null, scalarModel.getObject().getPojo()))); + } + + +// @Override +// protected Component createComponentForCompact() { +// val objAdapter = getModel().getObject(); +// return new Label(ID_SCALAR_IF_COMPACT, "compact"); +// //renderer().simpleTextRepresentation(null, objAdapter.getPojo())); +// } +// +// @Override +// protected MarkupContainer createComponentForRegular() { +// return new LabeledWebMarkupContainer(ID_SCALAR_IF_REGULAR, Model.of("regular")) {}; +// } +// +// @Override +// protected Component getScalarValueComponent() { +// return new Label(ID_SCALAR_VALUE, "regular"); +// +//// val formGroup = new FormGroup(ID_SCALAR_IF_REGULAR, null); +//// return formGroup; +// } + + // -- HELPER + + private Renderer renderer() { + final ValueFacet<?> valueFacet = scalarModel.getScalarTypeSpec().getFacet(ValueFacet.class); + return valueFacet.selectDefaultRenderer().get(); + } +} diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanelFactory.java similarity index 69% copy from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java copy to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanelFactory.java index dc64544..3cab8b9 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanelFactory.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.viewer.wicket.ui.components.scalars.value; +package org.apache.isis.viewer.wicket.ui.components.scalars.value.compound; import org.apache.wicket.Component; import org.apache.wicket.model.IModel; @@ -26,15 +26,19 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel; import org.apache.isis.viewer.wicket.ui.ComponentFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract; +import lombok.val; + /** - * {@link ComponentFactory} for the {@link ValuePanel}. + * {@link ComponentFactory} for the {@link ValueCompoundPanel}. */ -public class ValuePanelFactory extends ComponentFactoryScalarAbstract { +//FIXME[ISIS-2877] introduced for experiments, should be removed before merge into 'master' +public class ValueCompoundPanelFactory +extends ComponentFactoryScalarAbstract { private static final long serialVersionUID = 1L; - public ValuePanelFactory() { - super(ValuePanel.class); // not asking the supertype to validate types, so no value types need be provided. + public ValueCompoundPanelFactory() { + super(ValueCompoundPanel.class); } @Override @@ -42,20 +46,20 @@ public class ValuePanelFactory extends ComponentFactoryScalarAbstract { if (!(model instanceof ScalarModel)) { return ApplicationAdvice.DOES_NOT_APPLY; } - final ScalarModel scalarModel = (ScalarModel) model; - final ValueFacet valueFacet = scalarModel.getScalarTypeSpec().getFacet(ValueFacet.class); + val scalarModel = (ScalarModel) model; + if(scalarModel.isCollection()) { + return ApplicationAdvice.DOES_NOT_APPLY; + } + final ValueFacet<?> valueFacet = scalarModel.getScalarTypeSpec().getFacet(ValueFacet.class); if(valueFacet == null) { return ApplicationAdvice.DOES_NOT_APPLY; } - final boolean hasChoices = scalarModel.hasChoices(); - // autoComplete not supported on values, only references - // final boolean hasAutoComplete = scalarModel.hasAutoComplete(); - return appliesIf( !(hasChoices /*|| hasAutoComplete*/) ); + return appliesIf(valueFacet.selectDefaultRenderer().isPresent()); } @Override public Component createComponent(final String id, final ScalarModel scalarModel) { - return new ValuePanel(id, scalarModel); + return new ValueCompoundPanel(id, scalarModel); } diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanex.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanex.html new file mode 100644 index 0000000..ffb7411 --- /dev/null +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanex.html @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. +--> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org" + xml:lang="en" + lang="en"> +<body> +<wicket:panel> + <div class="scalarNameAndValueComponentType" + wicket:id="scalarTypeContainer"> + + <div class="form-group" + wicket:id="scalarIfRegular"> + + <label class="scalarName col-form-label" + wicket:id="scalarName" + >[Label text]</label> + + <span class="scalarValueWrapper"> + <div class="scalarPlaceholder"> + <span class="scalarValueInput"> + <span class="editing"> + <span class="scalarValue text-right"> + <span name="scalarValue" wicket:id="scalarValue" /> + </span> + </span> + </span> + <span class="associatedActionLinksRight" + wicket:id="associatedActionLinksRight" + >[drop down]</span> + </div> + <span wicket:id="feedback" class="form-text"></span> + <span wicket:id="associatedActionLinksBelow"></span> + </span> + <div class="clearfix"></div> + </div> + + <wicket:container wicket:id="scalarIfCompact"></wicket:container> + </div> + +</wicket:panel> +</body> +</html> + diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java similarity index 88% rename from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java rename to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java index d875e3f..3736dce 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java @@ -16,8 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.viewer.wicket.ui.components.scalars.value; +package org.apache.isis.viewer.wicket.ui.components.scalars.value.fallback; +import org.apache.isis.applib.adapters.Parser; import org.apache.isis.applib.annotation.Value; import org.apache.isis.viewer.wicket.model.models.ScalarModel; import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract; @@ -31,11 +32,12 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldP * This is a fallback panel; values are expected to be {@link Parser parseable} * (typically through the Isis' {@link Value} annotation. */ -public class ValuePanel extends ScalarPanelTextFieldParseableAbstract { +public class ValueFallbackPanel +extends ScalarPanelTextFieldParseableAbstract { private static final long serialVersionUID = 1L; - public ValuePanel(final String id, final ScalarModel scalarModel) { + public ValueFallbackPanel(final String id, final ScalarModel scalarModel) { super(id, scalarModel); } diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java similarity index 81% rename from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java rename to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java index dc64544..ae86a4f 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanelFactory.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.viewer.wicket.ui.components.scalars.value; +package org.apache.isis.viewer.wicket.ui.components.scalars.value.fallback; import org.apache.wicket.Component; import org.apache.wicket.model.IModel; @@ -27,14 +27,15 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract; /** - * {@link ComponentFactory} for the {@link ValuePanel}. + * {@link ComponentFactory} for the {@link ValueFallbackPanel}. */ -public class ValuePanelFactory extends ComponentFactoryScalarAbstract { +public class ValueFallbackPanelFactory +extends ComponentFactoryScalarAbstract { private static final long serialVersionUID = 1L; - public ValuePanelFactory() { - super(ValuePanel.class); // not asking the supertype to validate types, so no value types need be provided. + public ValueFallbackPanelFactory() { + super(ValueFallbackPanel.class); // not asking the supertype to validate types, so no value types need be provided. } @Override @@ -43,7 +44,7 @@ public class ValuePanelFactory extends ComponentFactoryScalarAbstract { return ApplicationAdvice.DOES_NOT_APPLY; } final ScalarModel scalarModel = (ScalarModel) model; - final ValueFacet valueFacet = scalarModel.getScalarTypeSpec().getFacet(ValueFacet.class); + final ValueFacet<?> valueFacet = scalarModel.getScalarTypeSpec().getFacet(ValueFacet.class); if(valueFacet == null) { return ApplicationAdvice.DOES_NOT_APPLY; } @@ -55,7 +56,7 @@ public class ValuePanelFactory extends ComponentFactoryScalarAbstract { @Override public Component createComponent(final String id, final ScalarModel scalarModel) { - return new ValuePanel(id, scalarModel); + return new ValueFallbackPanel(id, scalarModel); } diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/value/StandaloneValuePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/value/StandaloneValuePanelFactory.java index 393eaa9..e6f7786 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/value/StandaloneValuePanelFactory.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/value/StandaloneValuePanelFactory.java @@ -29,7 +29,8 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract; /** * {@link ComponentFactory} for rendering standalone values.. */ -public class StandaloneValuePanelFactory extends ComponentFactoryAbstract { +public class StandaloneValuePanelFactory +extends ComponentFactoryAbstract { private static final long serialVersionUID = 1L; @@ -39,7 +40,9 @@ public class StandaloneValuePanelFactory extends ComponentFactoryAbstract { @Override public ApplicationAdvice appliesTo(final IModel<?> model) { - return ApplicationAdvice.appliesIf(model instanceof ValueModel && ((ValueModel)model).getObject() != null); + return ApplicationAdvice.appliesIf( + model instanceof ValueModel + && ((ValueModel)model).getObject() != null); } @Override diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java index 69dfcfc..e2c70a2 100644 --- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java +++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java @@ -18,7 +18,14 @@ */ package org.apache.isis.viewer.wicket.viewer.registries.components; -import lombok.extern.log4j.Log4j2; +import java.util.List; + +import javax.annotation.Priority; +import javax.inject.Named; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; + import org.apache.isis.applib.annotation.PriorityPrecedence; import org.apache.isis.commons.internal.base._NullSafe; import org.apache.isis.viewer.wicket.ui.ComponentFactory; @@ -64,11 +71,19 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.jodatime.JodaLocalTim import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories; import org.apache.isis.viewer.wicket.ui.components.scalars.oiddto.OidDtoPanelFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.passwd.IsisPasswordPanelFactory; -import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.*; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.BooleanPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.BytePanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.CharacterPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.DoublePanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.FloatPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.IntegerPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.LongPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.ShortPanelFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.reference.ReferencePanelFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.string.StringPanelFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.uuid.UuidPanelFactory; -import org.apache.isis.viewer.wicket.ui.components.scalars.value.ValuePanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.value.compound.ValueCompoundPanelFactory; +import org.apache.isis.viewer.wicket.ui.components.scalars.value.fallback.ValueFallbackPanelFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.valuechoices.ValueChoicesSelect2PanelFactory; import org.apache.isis.viewer.wicket.ui.components.standalonecollection.StandaloneCollectionPanelFactory; import org.apache.isis.viewer.wicket.ui.components.tree.TreePanelFactories; @@ -77,12 +92,8 @@ import org.apache.isis.viewer.wicket.ui.components.value.StandaloneValuePanelFac import org.apache.isis.viewer.wicket.ui.components.voidreturn.VoidReturnPanelFactory; import org.apache.isis.viewer.wicket.ui.components.welcome.WelcomePanelFactory; import org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanelFactory; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Service; -import javax.annotation.Priority; -import javax.inject.Named; -import java.util.List; +import lombok.extern.log4j.Log4j2; /** * Default implementation of {@link ComponentFactoryRegistrar} that registers a @@ -156,11 +167,11 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr addComponentFactoriesForUnknown(componentFactories); } - protected void addComponentFactoriesForPageHeader(ComponentFactoryList componentFactories) { + protected void addComponentFactoriesForPageHeader(final ComponentFactoryList componentFactories) { componentFactories.add(new HeaderPanelFactory()); } - protected void addComponentFactoriesForPageFooter(ComponentFactoryList componentFactories) { + protected void addComponentFactoriesForPageFooter(final ComponentFactoryList componentFactories) { componentFactories.add(new FooterPanelFactory()); } @@ -246,7 +257,8 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr componentFactories.add(new Jdk8LocalDatePanelFactory()); componentFactories.add(new Jdk8LocalDateTimePanelFactory()); - componentFactories.add(new ValuePanelFactory()); + componentFactories.add(new ValueCompoundPanelFactory()); + componentFactories.add(new ValueFallbackPanelFactory()); // or for choices componentFactories.add(new ValueChoicesSelect2PanelFactory()); @@ -284,7 +296,7 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr componentFactories.add(new TertiaryMenuPanelFactory()); } - protected void addComponentFactoriesForBreadcrumbs(ComponentFactoryList componentFactories) { + protected void addComponentFactoriesForBreadcrumbs(final ComponentFactoryList componentFactories) { componentFactories.add(new BookmarkedPagesPanelFactory()); }
