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 fedb6ac307 ISIS-3198: scalar model: make rendering hint immutable
fedb6ac307 is described below
commit fedb6ac307eab6fa442ae325f85f2b4c24358203
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 15 13:57:06 2022 +0200
ISIS-3198: scalar model: make rendering hint immutable
---
.../pdfjs/wkt/ui/components/PdfJsViewerPanel.java | 29 +++--------------
.../PdfJsViewerPanelComponentFactory.java | 2 +-
.../ListeningMarkupPanelFactoriesForWicket.java | 2 +-
.../commons/model/hints/HasRenderingHints.java | 21 ++++++++++--
.../wicket/model/models/ChainingObjectModel.java | 5 ---
.../viewer/wicket/model/models/ScalarModel.java | 37 ++--------------------
.../viewer/wicket/model/models/UiObjectWkt.java | 12 ++++++-
.../ajaxtable/columns/GenericTitleColumn.java | 12 +++----
.../icontitle/EntityIconAndTitlePanelFactory.java | 2 --
9 files changed, 42 insertions(+), 80 deletions(-)
diff --git
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
index d91de2b629..1c76b3a556 100644
---
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
+++
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
@@ -103,14 +103,7 @@ implements IRequestListener {
String newPageNum =
RequestCycle.get().getRequest().getRequestParameters().getParameterValue("pageNum").toString();
try {
final int pageNum = Integer.parseInt(newPageNum);
- final Updater updater = new Updater() {
- @Override
- public void update(
- final PdfJsViewerAdvisor advisor,
- final PdfJsViewerAdvisor.InstanceKey
renderKey) {
- advisor.pageNumChangedTo(renderKey, pageNum);
- }
- };
+ final Updater updater = (advisor, renderKey) ->
advisor.pageNumChangedTo(renderKey, pageNum);
updateAdvisors(updater);
} catch(Exception ex) {
// ignore
@@ -127,14 +120,7 @@ implements IRequestListener {
String newScale =
RequestCycle.get().getRequest().getRequestParameters().getParameterValue("scale").toString();
try {
final Scale scale = Scale.forValue(newScale);
- final Updater updater = new Updater() {
- @Override
- public void update(
- final PdfJsViewerAdvisor advisor,
- final PdfJsViewerAdvisor.InstanceKey
renderKey) {
- advisor.scaleChangedTo(renderKey, scale);
- }
- };
+ final Updater updater = (advisor, renderKey) ->
advisor.scaleChangedTo(renderKey, scale);
updateAdvisors(updater);
} catch(Exception ex) {
// ignore
@@ -152,14 +138,7 @@ implements IRequestListener {
String newHeight =
RequestCycle.get().getRequest().getRequestParameters().getParameterValue("height").toString();
try {
final int height = Integer.parseInt(newHeight);
- final Updater updater = new Updater() {
- @Override
- public void update(
- final PdfJsViewerAdvisor advisor,
- final PdfJsViewerAdvisor.InstanceKey
renderKey) {
- advisor.heightChangedTo(renderKey, height);
- }
- };
+ final Updater updater = (advisor, renderKey) ->
advisor.heightChangedTo(renderKey, height);
updateAdvisors(updater);
} catch(Exception ex) {
// ignore
@@ -208,7 +187,7 @@ implements IRequestListener {
val regularFrame = new WebMarkupContainer(ID_SCALAR_IF_REGULAR);
val pdfJsConfig =
- scalarModel.lookupFacet(PdfJsViewerFacet.class)
+ scalarModel.getMetaModel().lookupFacet(PdfJsViewerFacet.class)
.map(pdfJsViewerFacet->pdfJsViewerFacet.configFor(buildKey()))
.orElseGet(PdfJsConfig::new)
.withDocumentUrl(urlFor(
diff --git
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
index 6c8e70120f..a179374bc1 100644
---
a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
+++
b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/isis/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
@@ -50,7 +50,7 @@ public class PdfJsViewerPanelComponentFactory extends
ComponentFactoryAbstract {
}
val scalarModel = (ScalarModel) model;
- if(!scalarModel.containsFacet(PdfJsViewerFacet.class)) {
+ if(!scalarModel.getMetaModel().containsFacet(PdfJsViewerFacet.class)) {
return ApplicationAdvice.DOES_NOT_APPLY;
}
diff --git
a/extensions/vw/sse/wicket/src/main/java/org/apache/isis/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
b/extensions/vw/sse/wicket/src/main/java/org/apache/isis/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
index e778fa9f0e..4ed2ac8c88 100644
---
a/extensions/vw/sse/wicket/src/main/java/org/apache/isis/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
+++
b/extensions/vw/sse/wicket/src/main/java/org/apache/isis/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
@@ -60,7 +60,7 @@ public class ListeningMarkupPanelFactoriesForWicket {
// -- HELPER
private LocalResourcePath getEventStreamResource(final ScalarModel
scalarModel) {
- val observeFacet = scalarModel.getFacet(SseObserveFacet.class);
+ val observeFacet =
scalarModel.getMetaModel().getFacet(SseObserveFacet.class);
return observeFacet!=null
? observeFacet.getEventStreamResource()
: null;
diff --git
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/hints/HasRenderingHints.java
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/hints/HasRenderingHints.java
index ced2b1eab2..98b0bad556 100644
---
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/hints/HasRenderingHints.java
+++
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/hints/HasRenderingHints.java
@@ -1,7 +1,24 @@
+/*
+ * 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.commons.model.hints;
import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
-import org.apache.isis.viewer.commons.model.hints.RenderingHint;
public interface HasRenderingHints {
@@ -12,8 +29,6 @@ public interface HasRenderingHints {
boolean isInlinePrompt();
RenderingHint getRenderingHint();
- @Deprecated// make immutable? - need to recreate any bound UI components
anyway
- void setRenderingHint(RenderingHint renderingHint);
ScalarRepresentation getMode();
@Deprecated// make immutable? - need to recreate any bound UI components
anyway
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ChainingObjectModel.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ChainingObjectModel.java
index 90c22b7fd5..a4793aaaae 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ChainingObjectModel.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ChainingObjectModel.java
@@ -64,11 +64,6 @@ implements ObjectAdapterModel {
return scalarModel().getRenderingHint();
}
- @Override
- public void setRenderingHint(final RenderingHint renderingHint) {
- scalarModel().setRenderingHint(renderingHint);
- }
-
@Override
public ObjectSpecification getTypeOfSpecification() {
return scalarModel().getScalarTypeSpec();
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 4b0cb75f76..cd43080b11 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -33,7 +33,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.debug._Debug;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedValue;
import org.apache.isis.core.metamodel.object.ManagedObject;
import org.apache.isis.core.metamodel.object.ManagedObjects;
@@ -73,12 +72,11 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
private final UiObjectWkt parentEntityModel;
- @Getter(onMethod = @__(@Override))
- @Setter(onMethod = @__(@Override))
+ @Getter(onMethod_={@Override})
+ @Setter(onMethod_={@Override})
private ScalarRepresentation mode;
- @Getter(onMethod = @__(@Override))
- @Setter(onMethod = @__(@Override))
+ @Getter(onMethod_={@Override})
private RenderingHint renderingHint;
/**
@@ -155,11 +153,6 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
return parentEntityModel;
}
- @Override
- public final ManagedObject getOwner() {
- return getParentUiModel().getObject();
- }
-
public final boolean isEmpty() {
return
ManagedObjects.isNullOrUnspecifiedOrEmpty(proposedValue().getValue().getValue());
}
@@ -185,30 +178,6 @@ implements HasRenderingHints, UiScalar, LinksProvider,
FormExecutorContext {
public abstract String validate(ManagedObject proposedAdapter);
- /**
- * Viewers should not use facets directly.
- * However, viewer extensions that provide their own facet types, will
have to.
- */
- public final <T extends Facet> boolean containsFacet(final Class<T>
facetType) {
- return getMetaModel().containsFacet(facetType);
- }
-
- /**
- * Viewers should not use facets directly.
- * However, viewer extensions that provide their own facet types, will
have to.
- */
- public final <T extends Facet> T getFacet(final Class<T> facetType) {
- return getMetaModel().getFacet(facetType);
- }
-
- /**
- * Viewers should not use facets directly.
- * However, viewer extensions that provide their own facet types, will
have to.
- */
- public final <T extends Facet> Optional<T> lookupFacet(final Class<T>
facetType) {
- return getMetaModel().lookupFacet(facetType);
- }
-
/**
* Additional links to render (if any)
*/
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/UiObjectWkt.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/UiObjectWkt.java
index 7ba1333452..741045196b 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/UiObjectWkt.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/UiObjectWkt.java
@@ -81,6 +81,15 @@ implements
ScalarRepresentation.VIEWING, RenderingHint.REGULAR);
}
+ public static UiObjectWkt ofAdapterForCollection(
+ final MetaModelContext commonContext,
+ final ManagedObject adapter,
+ final @NonNull EntityCollectionModel.Variant variant) {
+ return new UiObjectWkt(BookmarkedObjectWkt.ofAdapter(commonContext,
adapter),
+ ScalarRepresentation.VIEWING,
variant.getColumnRenderingHint());
+ }
+
+
public static UiObjectWkt ofBookmark(
final @NonNull MetaModelContext commonContext,
final @Nullable Bookmark bookmark) {
@@ -142,7 +151,6 @@ implements
private ScalarRepresentation mode;
@Getter(onMethod = @__(@Override))
- @Setter(onMethod = @__(@Override))
private RenderingHint renderingHint;
@Override
@@ -272,4 +280,6 @@ implements
return hintStore =
getMetaModelContext().loadServiceIfAbsent(HintStore.class, hintStore);
}
+
+
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericTitleColumn.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericTitleColumn.java
index d6b4b18b01..a7685491f9 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericTitleColumn.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericTitleColumn.java
@@ -29,7 +29,6 @@ import
org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.interactions.managed.nonscalar.DataRow;
import org.apache.isis.core.metamodel.object.ManagedObjects;
import org.apache.isis.viewer.commons.model.components.UiComponentType;
-import org.apache.isis.viewer.commons.model.hints.RenderingHint;
import
org.apache.isis.viewer.wicket.model.models.EntityCollectionModel.Variant;
import org.apache.isis.viewer.wicket.model.models.UiObjectWkt;
import org.apache.isis.viewer.wicket.model.models.ValueModel;
@@ -88,15 +87,12 @@ extends GenericColumnAbstract {
return componentFactory.createComponent(id, valueModel);
}
- val entityModel = UiObjectWkt.ofAdapter(super.getMetaModelContext(),
adapter);
- entityModel.setRenderingHint(variant.isParented()
- ? RenderingHint.PARENTED_TITLE_COLUMN
- : RenderingHint.STANDALONE_TITLE_COLUMN);
- entityModel.setContextBookmarkIfAny(contextBookmark);
+ val uiObject =
UiObjectWkt.ofAdapterForCollection(super.getMetaModelContext(), adapter,
variant);
+ uiObject.setContextBookmarkIfAny(contextBookmark);
// will use EntityLinkSimplePanelFactory as model is an EntityModel
- val componentFactory =
findComponentFactory(UiComponentType.ENTITY_LINK, entityModel);
- return componentFactory.createComponent(id, entityModel);
+ val componentFactory =
findComponentFactory(UiComponentType.ENTITY_LINK, uiObject);
+ return componentFactory.createComponent(id, uiObject);
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
index 0ba99d4bdf..f293798625 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
@@ -92,10 +92,8 @@ public class EntityIconAndTitlePanelFactory extends
ComponentFactoryAbstract {
objectAdapterModel = (ObjectAdapterModel) model;
} else if (model instanceof ScalarModel) {
val scalarModel = (ScalarModel) model;
-
// effectively acts as an adapter from ScalarModel to
ObjectAdapterModel
objectAdapterModel = ChainingObjectModel.chain(scalarModel);
-
objectAdapterModel.setRenderingHint(scalarModel.getRenderingHint());
} else {
throw _Exceptions.unexpectedCodeReach();
}