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())