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/01/27 09:31:20 UTC
[isis] branch master updated: ISIS-2877: purge value type composition experiments (wkt)
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 c5f2425 ISIS-2877: purge value type composition experiments (wkt)
c5f2425 is described below
commit c5f2425c599bd849d41ed1769a62348069503f94
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 27 10:31:06 2022 +0100
ISIS-2877: purge value type composition experiments (wkt)
---
.../metamodel/facets/object/value/ValueFacet.java | 1 -
.../types/isisext/cal/vm/IsisCalendarEventVm.java | 9 ++-
.../fullcalendar/applib/value/CalendarEvent.java | 2 +
.../value/CalendarEventSemanticsProvider.java | 21 ++++++-
.../valuetypes/composite/CalendarEventJaxbVm.java | 21 ++-----
.../scalars/value/compound/ValueCompoundPanel.java | 60 -------------------
.../value/compound/ValueCompoundPanelFactory.java | 67 ----------------------
.../scalars/value/compound/ValueCompoundPanex.html | 62 --------------------
.../ComponentFactoryRegistrarDefault.java | 3 -
9 files changed, 30 insertions(+), 216 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
index 30c5039..9f2974d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
@@ -132,5 +132,4 @@ public interface ValueFacet<T> extends Facet {
.orElseGet(()->fallbackRenderer(prop.getFeatureIdentifier()));
}
-
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/vm/IsisCalendarEventVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/vm/IsisCalendarEventVm.java
index 283f14d..23ec3ef 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/vm/IsisCalendarEventVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/vm/IsisCalendarEventVm.java
@@ -23,7 +23,6 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Editing;
@@ -62,26 +61,26 @@ public class IsisCalendarEventVm
@Title(prepend = "CalendarEvent view model: ")
@PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
@XmlElement(required = true) // <.>
- @XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class)
+ //@XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class) already declared on type
@Getter @Setter
private CalendarEvent readOnlyProperty;
@Property(editing = Editing.ENABLED) // <.>
@PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
@XmlElement(required = true)
- @XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class)
+ //@XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class) already declared on type
@Getter @Setter
private CalendarEvent readWriteProperty;
@Property(optionality = Optionality.OPTIONAL) // <.>
@PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
- @XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class)
+ //@XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class) already declared on type
@Getter @Setter
private CalendarEvent readOnlyOptionalProperty;
@Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
@PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
- @XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class)
+ //@XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class) already declared on type
@Getter @Setter
private CalendarEvent readWriteOptionalProperty;
diff --git a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEvent.java b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEvent.java
index 2275b06..8687f84 100644
--- a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEvent.java
+++ b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/isis/extensions/fullcalendar/applib/value/CalendarEvent.java
@@ -25,6 +25,7 @@ import java.time.ZoneId;
import java.time.ZonedDateTime;
import javax.xml.bind.annotation.adapters.XmlAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.springframework.lang.Nullable;
@@ -46,6 +47,7 @@ import lombok.With;
*/
@org.apache.isis.applib.annotation.Value(
logicalTypeName = IsisModuleApplib.NAMESPACE + ".value.CalendarEvent")
+@XmlJavaTypeAdapter(CalendarEvent.JaxbAdapter.class)
@Getter @With
@ToString @EqualsAndHashCode
@AllArgsConstructor
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 283ee44..23563d5 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
@@ -21,6 +21,8 @@ package org.apache.isis.extensions.fullcalendar.applib.value;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;
@@ -96,8 +98,23 @@ implements
@Override
public Can<CalendarEvent> getExamples() {
- //TODO provide examples
- return Can.empty();
+
+ val a = CalendarEvent.of(
+ ZonedDateTime.of(2022, 05, 13, 17, 30, 15, 0, ZoneOffset.ofHours(3)),
+ "a-name",
+ "a-title");
+
+ val b = CalendarEvent.of(
+ ZonedDateTime.of(2022, 06, 14, 18, 31, 16, 0, ZoneOffset.ofHours(4)),
+ "b-name",
+ "b-title");
+
+ val c = CalendarEvent.of(
+ ZonedDateTime.of(2022, 07, 15, 19, 32, 17, 0, ZoneOffset.ofHours(5)),
+ "c-name",
+ "c-title");
+
+ return Can.of(a, b, c);
}
// -- EMBEDDING
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java
index 6f78f15..1f18037 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/composite/CalendarEventJaxbVm.java
@@ -18,8 +18,6 @@
*/
package org.apache.isis.testdomain.model.valuetypes.composite;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
@@ -41,6 +39,7 @@ import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEvent;
+import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEventSemanticsProvider;
import lombok.Getter;
import lombok.Setter;
@@ -85,20 +84,10 @@ public class CalendarEventJaxbVm {
public static CalendarEventJaxbVm setUpViewmodelWith3CalendarEvents(final FactoryService factoryService) {
val sampleVm = factoryService.viewModel(new CalendarEventJaxbVm());
- val a = CalendarEvent.of(
- ZonedDateTime.of(2022, 05, 13, 17, 30, 15, 0, ZoneOffset.ofHours(3)),
- "a-name",
- "a-title");
-
- val b = CalendarEvent.of(
- ZonedDateTime.of(2022, 06, 14, 18, 31, 16, 0, ZoneOffset.ofHours(4)),
- "b-name",
- "b-title");
-
- val c = CalendarEvent.of(
- ZonedDateTime.of(2022, 07, 15, 19, 32, 17, 0, ZoneOffset.ofHours(5)),
- "c-name",
- "c-title");
+ val eventSamples = new CalendarEventSemanticsProvider().getExamples();
+ val a = eventSamples.getElseFail(0);
+ val b = eventSamples.getElseFail(1);
+ val c = eventSamples.getElseFail(2);
sampleVm.setNextEvent(a);
sampleVm.setEvents(List.of(a, b, c));
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
deleted file mode 100644
index 51fc4f2..0000000
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanel.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.value.semantics.Renderer;
-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.ScalarPanelTextFieldTextualAbstract;
-
-//FIXME[ISIS-2877] introduced for experiments, should be removed
-public class ValueCompoundPanel
-extends ScalarPanelTextFieldTextualAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public ValueCompoundPanel(final String id, final ScalarModel scalarModel) {
- super(id, scalarModel);
- }
-
- @Override
- protected void onInitialize() {
- System.err.printf("%s%n", scalarModel.getMetaModel().getFeatureIdentifier());
-
- super.onInitialize();
- //onInitializeReadonly(null);
- }
-
- @Override
- protected AbstractTextComponent<String> createTextField(final String id) {
- return new TextField<>(id, LambdaModel.of(()->
- renderer().simpleTextPresentation(null, scalarModel.getObject().getPojo())));
- }
-
- // -- 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/compound/ValueCompoundPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanelFactory.java
deleted file mode 100644
index a8f33e7..0000000
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanelFactory.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.Component;
-import org.apache.wicket.model.IModel;
-
-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.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
-
-import lombok.val;
-
-/**
- * {@link ComponentFactory} for the {@link ValueCompoundPanel}.
- */
-//FIXME[ISIS-2877] introduced for experiments, should be removed
-public class ValueCompoundPanelFactory
-extends ComponentFactoryScalarAbstract {
-
- private static final long serialVersionUID = 1L;
-
- public ValueCompoundPanelFactory() {
- super(ValueCompoundPanel.class);
- }
-
- @Override
- public ApplicationAdvice appliesTo(final IModel<?> model) {
- if (!(model instanceof ScalarModel)) {
- return ApplicationAdvice.DOES_NOT_APPLY;
- }
- 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;
- }
- //return appliesIf(valueFacet.selectDefaultRenderer().isPresent());
- return appliesIf(scalarModel.getScalarTypeSpec().getCorrespondingClass().getSimpleName().equals("CalendarEvent"));
- }
-
- @Override
- public Component createComponent(final String id, final ScalarModel 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
deleted file mode 100644
index ffb7411..0000000
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/compound/ValueCompoundPanex.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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/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 bd12cb6..cf89790 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
@@ -73,7 +73,6 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.passwd.IsisPasswordPa
import org.apache.isis.viewer.wicket.ui.components.scalars.primitive.BooleanPanelFactory;
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.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;
@@ -225,8 +224,6 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
componentFactories.add(new IsisBlobPanelFactory());
componentFactories.add(new IsisClobPanelFactory());
- componentFactories.add(new ValueCompoundPanelFactory());
-
val registeredScalarTypes =
componentFactories.stream(ComponentFactoryScalarAbstract.class)
.flatMap(f->f.getScalarTypes().stream())