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 2021/10/11 08:06:15 UTC
[isis] 01/01: ISIS-2877: comments and renaming viewer classes
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 <ah...@apache.org>
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());
}