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 413743e041 ISIS-3203: [Wicket Viewer] refactoring (1)
413743e041 is described below
commit 413743e041ac6fb5e5d05aa83f15ddd303ad785a
Author: Andi Huber <[email protected]>
AuthorDate: Fri Sep 9 06:49:54 2022 +0200
ISIS-3203: [Wicket Viewer] refactoring (1)
---
.../_testing/MetaModelContext_forTesting.java | 12 +---
.../metamodel/context/HasMetaModelContext.java | 13 ++---
.../context/MetaModelContext_usingSpring.java | 6 +-
.../facets/object/value/ValueFacetAbstract.java | 2 +-
.../metamodel/object/_ManagedObjectViewmodel.java | 2 +-
.../authorization/AuthorizationFacetAbstract.java | 7 +--
.../metamodel/facets/AbstractFacetFactoryTest.java | 10 ++--
.../actions/ActionMethodsFacetFactoryTest.java | 2 +-
.../ValueSemanticsProviderAbstractTestCase.java | 8 +--
.../wkt/viewer/EventProviderAbstract.java | 2 +-
.../testing/AbstractFacetFactoryTest.java | 10 ++--
.../testdomain/conf/Configuration_usingWicket.java | 4 +-
...mmonContextModel.java => HasCommonContext.java} | 30 +++++-----
.../viewer/wicket/model/models/ModelAbstract.java | 30 ++++------
...essor.java => HasComponentFactoryRegistry.java} | 2 +-
.../ajaxtable/IsisAjaxNavigationToolbar.java | 15 ++++-
.../ajaxtable/IsisTotalRecordsToolbar.java | 15 ++++-
.../ajaxtable/PrototypingMessageProvider.java | 25 ++++-----
.../ajaxtable/columns/GenericColumnAbstract.java | 4 +-
.../formcomponent/FormComponentPanelAbstract.java | 4 +-
.../widgets/linkandlabel/ActionLink.java | 4 +-
...stryAccessor.java => HasPageClassRegistry.java} | 2 +-
.../isis/viewer/wicket/ui/pages/PageAbstract.java | 4 +-
.../isis/viewer/wicket/ui/pages/WebPageBase.java | 41 ++------------
.../isis/viewer/wicket/ui/panels/FormAbstract.java | 39 ++++---------
.../isis/viewer/wicket/ui/panels/PanelBase.java | 64 +++++-----------------
.../ui/components/scalars/ConverterTester.java | 16 +++---
.../AuthenticatedWebSessionForIsis.java | 5 --
.../viewer/integration/WebRequestCycleForIsis.java | 13 ++---
.../viewer/wicketapp/IsisWicketApplication.java | 8 +--
30 files changed, 152 insertions(+), 247 deletions(-)
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
index c99e0b0456..5577df1260 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/MetaModelContext_forTesting.java
@@ -36,9 +36,8 @@ import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.grid.GridLoaderService;
import org.apache.isis.applib.services.grid.GridService;
import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.layout.LayoutService;
@@ -151,7 +150,7 @@ implements MetaModelContext {
@Builder.Default
private Function<MetaModelContext, ProgrammingModel>
programmingModelFactory = ProgrammingModelFacetsJava11::new;
- private InteractionProvider interactionProvider;
+ private InteractionService interactionService;
private TranslationService translationService;
@@ -223,7 +222,7 @@ implements MetaModelContext {
metamodelEventService,
messageService,
// specificationLoader,
- interactionProvider,
+ interactionService,
getTranslationService(),
authentication,
authorizationManager,
@@ -404,11 +403,6 @@ implements MetaModelContext {
return new WebAppContextPath();
}
- @Override
- public InteractionLayerTracker getInteractionLayerTracker() {
- return (InteractionLayerTracker) getInteractionProvider();
- }
-
public void runWithConfigProperties(final Consumer<Map<String, String>>
setup, final Runnable runnable) {
val properties = _Maps.<String, String>newHashMap();
setup.accept(properties);
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
index d7953eb833..0d4421e353 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/HasMetaModelContext.java
@@ -27,9 +27,8 @@ import org.springframework.lang.Nullable;
import org.apache.isis.applib.locale.UserLocale;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.menu.MenuBarsService;
import org.apache.isis.applib.services.message.MessageService;
@@ -101,10 +100,6 @@ public interface HasMetaModelContext {
return getMetaModelContext().getAuthenticationManager();
}
- default InteractionProvider getInteractionProvider() {
- return getMetaModelContext().getInteractionProvider();
- }
-
default TitleService getTitleService() {
return getMetaModelContext().getTitleService();
}
@@ -149,12 +144,12 @@ public interface HasMetaModelContext {
return getMetaModelContext().getMenuBarsService();
}
- default InteractionLayerTracker getInteractionLayerTracker() {
- return getMetaModelContext().getInteractionLayerTracker();
+ default InteractionService getInteractionService() {
+ return getMetaModelContext().getInteractionService();
}
default Optional<UserLocale> currentUserLocale() {
- return getInteractionProvider().currentInteractionContext()
+ return getInteractionService().currentInteractionContext()
.map(InteractionContext::getLocale);
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingSpring.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingSpring.java
index 8789331e52..5ba2efeb2c 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingSpring.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/context/MetaModelContext_usingSpring.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.homepage.HomePageResolverService;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.iactn.InteractionProvider;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.menu.MenuBarsService;
import org.apache.isis.applib.services.message.MessageService;
@@ -155,8 +155,8 @@ class MetaModelContext_usingSpring implements
MetaModelContext {
getSingletonElseFail(MessageService.class);
@Getter(lazy = true)
- private final InteractionLayerTracker interactionLayerTracker =
- getSingletonElseFail(InteractionLayerTracker.class);
+ private final InteractionService interactionService =
+ getSingletonElseFail(InteractionService.class);
@Override
public final ManagedObject getHomePageAdapter() {
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
index 9ba54f5acb..6a236bc3cd 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
@@ -121,7 +121,7 @@ implements ValueFacet<T> {
@Override
public ValueSemanticsProvider.Context createValueSemanticsContext(final
@Nullable ObjectFeature feature) {
- val iaProvider = super.getInteractionProvider();
+ val iaProvider = super.getInteractionService();
if(iaProvider==null) {
return null; // JUnit context
}
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectViewmodel.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectViewmodel.java
index e461326085..32c46e6f07 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectViewmodel.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/object/_ManagedObjectViewmodel.java
@@ -97,7 +97,7 @@ implements
@Override
public final void refreshViewmodel(final @Nullable Supplier<Bookmark>
bookmarkSupplier) {
- val shouldRefresh =
getMetaModelContext().getInteractionProvider().getInteractionId()
+ val shouldRefresh = getInteractionService().getInteractionId()
.map(this::shouldRefresh)
.orElse(true); // if there is no current interaction, refresh
regardless; unexpected state, might fail later
diff --git
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
index 879ab99103..c9dd38b360 100644
---
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
+++
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/allbutparam/authorization/AuthorizationFacetAbstract.java
@@ -18,7 +18,6 @@
*/
package
org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -39,13 +38,11 @@ implements AuthorizationFacet {
}
private final AuthorizationManager authorizationManager;
- private final InteractionProvider interactionProvider;
public AuthorizationFacetAbstract(
final FacetHolder holder) {
super(type(), holder);
this.authorizationManager = getAuthorizationManager();
- this.interactionProvider = getInteractionProvider();
}
@Override
@@ -57,7 +54,7 @@ implements AuthorizationFacet {
val hides = authorizationManager
.isVisible(
-
interactionProvider.currentInteractionContextElseFail(),
+
getInteractionService().currentInteractionContextElseFail(),
ic.getIdentifier())
? null
: "Not authorized to view";
@@ -78,7 +75,7 @@ implements AuthorizationFacet {
val disables = authorizationManager
.isUsable(
-
interactionProvider.currentInteractionContextElseFail(),
+
getInteractionService().currentInteractionContextElseFail(),
ic.getIdentifier())
? null
: "Not authorized to edit";
diff --git
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
index 7c1c8f2971..0e0324b483 100644
---
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
+++
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
@@ -28,8 +28,8 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Introspection.IntrospectionPolicy;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
@@ -64,7 +64,7 @@ public abstract class AbstractFacetFactoryTest extends
TestCase {
}
protected TranslationService mockTranslationService;
- protected InteractionProvider mockInteractionProvider;
+ protected InteractionService mockInteractionService;
protected final InteractionContext iaContext =
InteractionContextFactory.testing();
protected MethodRemover_forTesting methodRemover;
@@ -81,18 +81,18 @@ public abstract class AbstractFacetFactoryTest extends
TestCase {
methodRemover = new MethodRemover_forTesting();
- mockInteractionProvider = context.mock(InteractionProvider.class);
+ mockInteractionService = context.mock(InteractionService.class);
mockTranslationService = context.mock(TranslationService.class);
metaModelContext = MetaModelContext_forTesting.builder()
.translationService(mockTranslationService)
- .interactionProvider(mockInteractionProvider)
+ .interactionService(mockInteractionService)
.build();
context.checking(new Expectations() {{
- allowing(mockInteractionProvider).currentInteractionContext();
+ allowing(mockInteractionService).currentInteractionContext();
will(returnValue(Optional.of(iaContext)));
}});
diff --git
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index 25110b3047..ba9ef4a74d 100644
---
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -70,7 +70,7 @@ public class ActionMethodsFacetFactoryTest extends
AbstractFacetFactoryTest {
context.checking(new Expectations() {{
- allowing(mockInteractionProvider).currentInteractionContext();
+ allowing(mockInteractionService).currentInteractionContext();
will(returnValue(Optional.of(iaContext)));
}});
diff --git
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index 71581794b1..3a77161288 100644
---
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -38,7 +38,7 @@ import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.value.semantics.Parser;
import org.apache.isis.applib.value.semantics.Renderer;
import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
@@ -60,7 +60,7 @@ public abstract class
ValueSemanticsProviderAbstractTestCase<T> {
@Rule
public JUnitRuleMockery2 context =
JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
- @Mock protected InteractionProvider mockInteractionProvider;
+ @Mock protected InteractionService mockInteractionService;
@Mock protected ManagedObject mockAdapter;
protected MetaModelContext metaModelContext;
@@ -74,12 +74,12 @@ public abstract class
ValueSemanticsProviderAbstractTestCase<T> {
Locale.setDefault(Locale.UK);
metaModelContext = MetaModelContext_forTesting.builder()
- .interactionProvider(mockInteractionProvider)
+ .interactionService(mockInteractionService)
.build();
context.checking(new Expectations() {
{
- never(mockInteractionProvider);
+ never(mockInteractionService);
}
});
}
diff --git
a/extensions/vw/fullcalendar/wicket/ui/src/main/java/org/apache/isis/extensions/fullcalendar/wkt/viewer/EventProviderAbstract.java
b/extensions/vw/fullcalendar/wicket/ui/src/main/java/org/apache/isis/extensions/fullcalendar/wkt/viewer/EventProviderAbstract.java
index 5817909b0e..210ba2e3b8 100644
---
a/extensions/vw/fullcalendar/wicket/ui/src/main/java/org/apache/isis/extensions/fullcalendar/wkt/viewer/EventProviderAbstract.java
+++
b/extensions/vw/fullcalendar/wicket/ui/src/main/java/org/apache/isis/extensions/fullcalendar/wkt/viewer/EventProviderAbstract.java
@@ -105,7 +105,7 @@ public abstract class EventProviderAbstract implements
EventProvider {
return null;
}
- val timeZone = commonContext.getInteractionProvider()
+ val timeZone = commonContext.getInteractionService()
.currentInteractionContext()
.map(InteractionContext::getTimeZone)
.orElse(ZoneId.systemDefault());
diff --git
a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/testing/AbstractFacetFactoryTest.java
b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/testing/AbstractFacetFactoryTest.java
index 74761e5065..ec35161ab7 100644
---
a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/testing/AbstractFacetFactoryTest.java
+++
b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/testing/AbstractFacetFactoryTest.java
@@ -27,8 +27,8 @@ import org.junit.Rule;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.repository.EntityState;
import org.apache.isis.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.config.beans.PersistenceStack;
@@ -66,7 +66,7 @@ public abstract class AbstractFacetFactoryTest extends
TestCase {
}
protected TranslationService mockTranslationService;
- protected InteractionProvider mockInteractionProvider;
+ protected InteractionService mockInteractionService;
protected final InteractionContext iaContext =
InteractionContextFactory.testing();
protected SpecificationLoader mockSpecificationLoader;
protected MethodRemover_forTesting methodRemover;
@@ -85,19 +85,19 @@ public abstract class AbstractFacetFactoryTest extends
TestCase {
methodRemover = new MethodRemover_forTesting();
- mockInteractionProvider = context.mock(InteractionProvider.class);
+ mockInteractionService = context.mock(InteractionService.class);
mockTranslationService = context.mock(TranslationService.class);
mockSpecificationLoader = context.mock(SpecificationLoader.class);
metaModelContext = MetaModelContext_forTesting.builder()
.specificationLoader(mockSpecificationLoader)
.translationService(mockTranslationService)
- .interactionProvider(mockInteractionProvider)
+ .interactionService(mockInteractionService)
.build();
context.checking(new Expectations() {{
- allowing(mockInteractionProvider).currentInteractionContext();
+ allowing(mockInteractionService).currentInteractionContext();
will(returnValue(Optional.of(iaContext)));
}});
diff --git
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
index 5072e5d1be..e070bd297f 100644
---
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
+++
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingWicket.java
@@ -58,7 +58,7 @@ import
org.apache.isis.viewer.wicket.model.isis.WicketApplicationInitializer;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.model.util.PageParameterUtils;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
@@ -328,7 +328,7 @@ public class Configuration_usingWicket {
static class WicketApplication_forTesting
extends WebApplication
implements
- ComponentFactoryRegistryAccessor,
+ HasComponentFactoryRegistry,
HasMetaModelContext {
private static final long serialVersionUID = 1L;
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/CommonContextModel.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasCommonContext.java
similarity index 56%
rename from
viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/CommonContextModel.java
rename to
viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasCommonContext.java
index a0634cc5bb..227c0f531f 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/CommonContextModel.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasCommonContext.java
@@ -18,27 +18,25 @@
*/
package org.apache.isis.viewer.wicket.model.models;
-import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.isis.applib.services.i18n.TranslationContext;
+import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
+import org.apache.isis.core.metamodel.context.HasMetaModelContext;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.viewer.wicket.model.util.WktContext;
+public interface HasCommonContext extends HasMetaModelContext {
-import lombok.val;
-
-public final class CommonContextModel
-extends LoadableDetachableModel<MetaModelContext> {
-
- private static final long serialVersionUID = 1L;
+ default Wicket getWicketViewerSettings() {
+ return getConfiguration().getViewer().getWicket();
+ }
- public static CommonContextModel wrap(final MetaModelContext
commonContext) {
- val model = new CommonContextModel();
- model.setObject(commonContext);
- return model;
+ /**
+ * Translate without context: Tooltips, Button-Labels, etc.
+ */
+ default String translate(final String input) {
+ return getTranslationService().translate(TranslationContext.empty(),
input);
}
- @Override
- protected MetaModelContext load() {
- return WktContext.getMetaModelContext();
+ default boolean isPrototyping() {
+ return getSystemEnvironment().isPrototyping();
}
}
diff --git
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
index 4df40c9dbc..c4f933b7dd 100644
---
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
+++
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
@@ -20,42 +20,34 @@ package org.apache.isis.viewer.wicket.model.models;
import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
-import org.apache.isis.core.metamodel.context.HasMetaModelContext;
import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.viewer.wicket.model.util.WktContext;
/**
- * Adapter for {@link LoadableDetachableModel}s, providing access to some of
the
- * Isis' dependencies.
+ * Adapter for {@link LoadableDetachableModel}s,
+ * providing access to the {@link MetaModelContext}.
*/
public abstract class ModelAbstract<T>
extends LoadableDetachableModel<T>
-implements HasMetaModelContext {
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
- private final CommonContextModel commonContextModel;
+ protected ModelAbstract() {}
- protected ModelAbstract() {
- this.commonContextModel = new CommonContextModel();
+ protected ModelAbstract(final MetaModelContext mmc) {
+ this.mmc = mmc;
}
- protected ModelAbstract(final MetaModelContext commonContext) {
- this.commonContextModel = CommonContextModel.wrap(commonContext);
- }
-
- protected ModelAbstract(final MetaModelContext commonContext, final T t) {
- this.commonContextModel = CommonContextModel.wrap(commonContext);
+ protected ModelAbstract(final MetaModelContext mmc, final T t) {
+ this.mmc = mmc;
super.setObject(t);
}
- protected Wicket getWicketViewerSettings() {
- return getConfiguration().getViewer().getWicket();
- }
-
+ private transient MetaModelContext mmc;
@Override
public MetaModelContext getMetaModelContext() {
- return commonContextModel.getObject();
+ return mmc = WktContext.computeIfAbsent(mmc);
}
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistryAccessor.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/HasComponentFactoryRegistry.java
similarity index 93%
rename from
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistryAccessor.java
rename to
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/HasComponentFactoryRegistry.java
index c9458e2741..2e30c05803 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistryAccessor.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/HasComponentFactoryRegistry.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
/**
* For obtaining the {@link ComponentFactoryRegistry}.
*/
-public interface ComponentFactoryRegistryAccessor extends Serializable {
+public interface HasComponentFactoryRegistry extends Serializable {
ComponentFactoryRegistry getComponentFactoryRegistry();
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxNavigationToolbar.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxNavigationToolbar.java
index 93b2ba125e..ab493347ee 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxNavigationToolbar.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisAjaxNavigationToolbar.java
@@ -23,12 +23,16 @@ import
org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNav
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
+import org.apache.isis.core.metamodel.context.HasMetaModelContext;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.model.util.WktContext;
import
org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.GenericToggleboxColumn;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
-public class IsisAjaxNavigationToolbar extends AjaxNavigationToolbar {
+public class IsisAjaxNavigationToolbar extends AjaxNavigationToolbar
+implements HasMetaModelContext {
private static final long serialVersionUID = 1L;
@@ -79,7 +83,8 @@ public class IsisAjaxNavigationToolbar extends
AjaxNavigationToolbar {
target.add(table);
});
- Wkt.labelAdd(container, "prototypingLabel",
PrototypingMessageProvider.getTookTimingMessageModel());
+ Wkt.labelAdd(container, "prototypingLabel", new
PrototypingMessageProvider(getMetaModelContext())
+ .getTookTimingMessageModel());
}
@@ -108,4 +113,10 @@ public class IsisAjaxNavigationToolbar extends
AjaxNavigationToolbar {
return UiHintContainer.Util.hintContainerOf(this, EntityModel.class);
}
+ private transient MetaModelContext mmc;
+ @Override
+ public MetaModelContext getMetaModelContext() {
+ return mmc = WktContext.computeIfAbsent(mmc);
+ }
+
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisTotalRecordsToolbar.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisTotalRecordsToolbar.java
index 732be8ebed..0ca0318efa 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisTotalRecordsToolbar.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/IsisTotalRecordsToolbar.java
@@ -27,6 +27,9 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LambdaModel;
import org.apache.wicket.model.Model;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.viewer.wicket.model.models.HasCommonContext;
+import org.apache.isis.viewer.wicket.model.util.WktContext;
import org.apache.isis.viewer.wicket.ui.util.Wkt;
/**
@@ -36,7 +39,8 @@ import org.apache.isis.viewer.wicket.ui.util.Wkt;
*
* @since 2.0
*/
-public class IsisTotalRecordsToolbar extends AbstractToolbar {
+public class IsisTotalRecordsToolbar extends AbstractToolbar
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
private static final String navigatorContainerId = "navigatorContainer";
@@ -73,7 +77,8 @@ public class IsisTotalRecordsToolbar extends AbstractToolbar {
String.valueOf(table.getColumns().size()).intern())));
Wkt.labelAdd(container, "navigatorLabel", messageModel);
- Wkt.labelAdd(container, "prototypingLabel",
PrototypingMessageProvider.getTookTimingMessageModel());
+ Wkt.labelAdd(container, "prototypingLabel", new
PrototypingMessageProvider(getMetaModelContext())
+ .getTookTimingMessageModel());
}
/**
@@ -93,4 +98,10 @@ public class IsisTotalRecordsToolbar extends AbstractToolbar
{
setVisible(getTable().getPageCount() == 1);
}
+ private transient MetaModelContext mmc;
+ @Override
+ public MetaModelContext getMetaModelContext() {
+ return mmc = WktContext.computeIfAbsent(mmc);
+ }
+
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
index 9607d36f25..5d2e94aab9 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
@@ -23,8 +23,10 @@ import java.util.Locale;
import org.apache.isis.commons.internal.base._Timing;
import org.apache.isis.core.interaction.session.IsisInteraction;
import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.viewer.wicket.model.util.WktContext;
+import org.apache.isis.viewer.wicket.model.models.HasCommonContext;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.val;
/**
@@ -36,11 +38,14 @@ import lombok.val;
*
* @since 2.0
*/
-class PrototypingMessageProvider {
+@RequiredArgsConstructor
+class PrototypingMessageProvider
+implements HasCommonContext {
- private static MetaModelContext commonContext = null;
+ @Getter(onMethod_={@Override})
+ private final MetaModelContext metaModelContext;
- public static String getTookTimingMessageModel() {
+ public String getTookTimingMessageModel() {
return isPrototyping()
? getTookTimingMessage()
: "";
@@ -48,19 +53,11 @@ class PrototypingMessageProvider {
// -- HELPER
- private static MetaModelContext commonContext() {
- return commonContext = WktContext.computeIfAbsent(commonContext);
- }
-
- private static boolean isPrototyping() {
- return commonContext().getSystemEnvironment().isPrototyping();
- }
-
- private static String getTookTimingMessage() {
+ private String getTookTimingMessage() {
final StringBuilder tookTimingMessage = new StringBuilder();
- commonContext().getInteractionLayerTracker().currentInteraction()
+ getInteractionService().currentInteraction()
.map(IsisInteraction.class::cast)
.ifPresent(interaction->{
val stopWatch =
_Timing.atSystemNanos(interaction.getStartedAtSystemNanos());
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
index 1b1f094a60..32b4f8bc56 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericColumnAbstract.java
@@ -30,7 +30,7 @@ import
org.apache.isis.viewer.commons.model.components.ComponentType;
import org.apache.isis.viewer.wicket.model.util.WktContext;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import
org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsAsAjaxTablePanel;
import lombok.val;
@@ -75,7 +75,7 @@ implements GenericColumn {
protected ComponentFactoryRegistry getComponentRegistry() {
if(componentRegistry==null) {
- val componentFactoryRegistryAccessor =
(ComponentFactoryRegistryAccessor) Application.get();
+ val componentFactoryRegistryAccessor =
(HasComponentFactoryRegistry) Application.get();
componentRegistry =
componentFactoryRegistryAccessor.getComponentFactoryRegistry();
}
return componentRegistry;
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
index e3e7e9b9f4..02297e030c 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/formcomponent/FormComponentPanelAbstract.java
@@ -27,7 +27,7 @@ import org.apache.wicket.model.IModel;
import org.apache.isis.viewer.commons.model.components.ComponentType;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.util.WktComponents;
/**
@@ -112,7 +112,7 @@ extends FormComponentPanel<T> {
// ///////////////////////////////////////////////////////////////////
protected ComponentFactoryRegistry getComponentFactoryRegistry() {
- final ComponentFactoryRegistryAccessor cfra =
(ComponentFactoryRegistryAccessor) getApplication();
+ final HasComponentFactoryRegistry cfra = (HasComponentFactoryRegistry)
getApplication();
return cfra.getComponentFactoryRegistry();
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
index b569c8f8c1..1aa0ca1fd3 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
@@ -39,7 +39,7 @@ import
org.apache.isis.viewer.wicket.model.models.ActionPromptWithExtraContent;
import org.apache.isis.viewer.wicket.model.util.PageParameterUtils;
import org.apache.isis.viewer.wicket.model.util.WktContext;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import
org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersPanel;
import org.apache.isis.viewer.wicket.ui.components.layout.bs.BSGridPanel;
import
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
@@ -260,7 +260,7 @@ extends IndicatingAjaxLink<ManagedObject> {
}
private ComponentFactoryRegistry getComponentFactoryRegistry() {
- return ((ComponentFactoryRegistryAccessor)
Application.get()).getComponentFactoryRegistry();
+ return ((HasComponentFactoryRegistry)
Application.get()).getComponentFactoryRegistry();
}
public Wicket getSettings() {
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistryAccessor.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/HasPageClassRegistry.java
similarity index 93%
rename from
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistryAccessor.java
rename to
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/HasPageClassRegistry.java
index 66df01514d..243f4f8150 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageClassRegistryAccessor.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/HasPageClassRegistry.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
/**
* API to obtain the {@link PageClassRegistry}.
*/
-public interface PageClassRegistryAccessor extends Serializable {
+public interface HasPageClassRegistry extends Serializable {
PageClassRegistry getPageClassRegistry();
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 1a6c20b231..ce13be2631 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -63,7 +63,7 @@ import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.model.util.PageParameterUtils;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import
org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow;
import
org.apache.isis.viewer.wicket.ui.components.actionpromptsb.ActionPromptSidebar;
import
org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModel;
@@ -478,7 +478,7 @@ implements ActionPromptProvider {
// -- getComponentFactoryRegistry (Convenience)
protected ComponentFactoryRegistry getComponentFactoryRegistry() {
- final ComponentFactoryRegistryAccessor cfra =
(ComponentFactoryRegistryAccessor) getApplication();
+ final HasComponentFactoryRegistry cfra = (HasComponentFactoryRegistry)
getApplication();
return cfra.getComponentFactoryRegistry();
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
index 8c826efcb7..864d0508ce 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
@@ -24,14 +24,9 @@ import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
-import org.apache.isis.core.config.environment.IsisSystemEnvironment;
-import org.apache.isis.core.config.viewer.web.WebAppContextPath;
-import org.apache.isis.core.metamodel.context.HasMetaModelContext;
import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.viewer.wicket.model.models.HasCommonContext;
import org.apache.isis.viewer.wicket.model.util.WktContext;
/**
@@ -40,15 +35,10 @@ import org.apache.isis.viewer.wicket.model.util.WktContext;
*/
public abstract class WebPageBase
extends WebPage
-implements HasMetaModelContext {
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
- private transient WebAppContextPath webAppContextPath;
- private transient PageClassRegistry pageClassRegistry;
- private transient MetaModelContext commonContext;
- private transient InteractionService interactionService;
-
protected WebPageBase(final PageParameters parameters) {
super(parameters);
}
@@ -76,38 +66,17 @@ implements HasMetaModelContext {
// -- DEPENDENCIES
+ private transient MetaModelContext mmc;
@Override
public MetaModelContext getMetaModelContext() {
- return commonContext = WktContext.computeIfAbsent(commonContext);
- }
-
- @Override
- public IsisConfiguration getConfiguration() {
- return getMetaModelContext().getConfiguration();
- }
-
- @Override
- public WebAppContextPath getWebAppContextPath() {
- return webAppContextPath = computeIfAbsent(WebAppContextPath.class,
webAppContextPath);
+ return mmc = WktContext.computeIfAbsent(mmc);
}
+ private transient PageClassRegistry pageClassRegistry;
public PageClassRegistry getPageClassRegistry() {
return pageClassRegistry = computeIfAbsent(PageClassRegistry.class,
pageClassRegistry);
}
- public InteractionService getInteractionService() {
- return interactionService = computeIfAbsent(InteractionService.class,
interactionService);
- }
-
- @Override
- public IsisSystemEnvironment getSystemEnvironment() {
- return getMetaModelContext().getSystemEnvironment();
- }
-
- protected Wicket getWicketViewerSettings() {
- return getConfiguration().getViewer().getWicket();
- }
-
// -- HELPER
private <X> X computeIfAbsent(final Class<X> type, final X existingIfAny) {
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
index a6b20fe6f2..f3ba542104 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormAbstract.java
@@ -21,28 +21,22 @@ package org.apache.isis.viewer.wicket.ui.panels;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
-import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
-import org.apache.isis.core.metamodel.context.HasMetaModelContext;
import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.viewer.wicket.model.models.HasCommonContext;
import org.apache.isis.viewer.wicket.model.util.WktContext;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.ui.pages.HasPageClassRegistry;
public abstract class FormAbstract<T> extends Form<T>
implements
- HasMetaModelContext,
- ComponentFactoryRegistryAccessor,
- PageClassRegistryAccessor {
+ HasCommonContext,
+ HasComponentFactoryRegistry,
+ HasPageClassRegistry {
private static final long serialVersionUID = 1L;
- private transient ComponentFactoryRegistry componentFactoryRegistry;
- private transient PageClassRegistry pageClassRegistry;
- private transient MetaModelContext commonContext;
-
protected FormAbstract(final String id) {
super(id);
}
@@ -53,37 +47,28 @@ implements
// -- DEPENDENCIES
+ private transient MetaModelContext mmc;
@Override
public final MetaModelContext getMetaModelContext() {
- return commonContext = WktContext.computeIfAbsent(commonContext);
- }
-
- /**
- * Translate without context: Tooltips, Button-Labels, etc.
- */
- public final String translate(final String input) {
- return getTranslationService().translate(TranslationContext.empty(),
input);
+ return mmc = WktContext.computeIfAbsent(mmc);
}
+ private transient ComponentFactoryRegistry componentFactoryRegistry;
@Override
public final ComponentFactoryRegistry getComponentFactoryRegistry() {
if(componentFactoryRegistry==null) {
- componentFactoryRegistry = ((ComponentFactoryRegistryAccessor)
getApplication()).getComponentFactoryRegistry();
+ componentFactoryRegistry = ((HasComponentFactoryRegistry)
getApplication()).getComponentFactoryRegistry();
}
return componentFactoryRegistry;
}
+ private transient PageClassRegistry pageClassRegistry;
@Override
public final PageClassRegistry getPageClassRegistry() {
if(pageClassRegistry==null) {
- pageClassRegistry = ((PageClassRegistryAccessor)
getApplication()).getPageClassRegistry();
+ pageClassRegistry = ((HasPageClassRegistry)
getApplication()).getPageClassRegistry();
}
return pageClassRegistry;
}
-
- protected Wicket getWicketViewerSettings() {
- return getConfiguration().getViewer().getWicket();
- }
-
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 64f053c252..ebfd9625c8 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -25,21 +25,16 @@ import org.apache.wicket.model.IModel;
import org.springframework.lang.Nullable;
import org.apache.isis.applib.services.i18n.LanguageProvider;
-import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.userreg.EmailNotificationService;
-import org.apache.isis.core.config.IsisConfiguration.Viewer.Wicket;
-import org.apache.isis.core.config.viewer.web.WebAppContextPath;
-import org.apache.isis.core.metamodel.context.HasMetaModelContext;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.viewer.commons.applib.services.header.HeaderUiModel;
import org.apache.isis.viewer.commons.applib.services.header.HeaderUiService;
import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
+import org.apache.isis.viewer.wicket.model.models.HasCommonContext;
import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.model.util.WktContext;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import
org.apache.isis.viewer.wicket.ui.components.tree.themes.TreeThemeProvider;
import
org.apache.isis.viewer.wicket.ui.components.tree.themes.TreeThemeProviderDefault;
import org.apache.isis.viewer.wicket.ui.pages.EmailVerificationUrlService;
@@ -52,23 +47,10 @@ import
org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
*/
public class PanelBase<T>
extends GenericPanel<T>
-implements HasMetaModelContext {
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
- private transient WebAppContextPath webAppContextPath;
- private transient PageClassRegistry pageClassRegistry;
- private transient ImageResourceCache imageCache;
- private transient MetaModelContext commonContext;
- private transient InteractionService interactionService;
- private transient TranslationService translationService;
- private transient LanguageProvider localeProvider;
- private transient TreeThemeProvider treeThemeProvider;
- private transient EmailNotificationService emailNotificationService;
- private transient EmailVerificationUrlService emailVerificationUrlService;
- private transient PageNavigationService pageNavigationService;
- private transient HeaderUiService headerUiService;
-
protected PanelBase(final String id) {
this(id, null);
}
@@ -77,71 +59,53 @@ implements HasMetaModelContext {
super(id, model);
}
+ private transient MetaModelContext mmc;
@Override
public MetaModelContext getMetaModelContext() {
- return commonContext = WktContext.computeIfAbsent(commonContext);
- }
-
- public Wicket getWicketViewerSettings() {
- return getConfiguration().getViewer().getWicket();
- }
-
- @Override
- public WebAppContextPath getWebAppContextPath() {
- return webAppContextPath = computeIfAbsent(WebAppContextPath.class,
webAppContextPath);
+ return mmc = WktContext.computeIfAbsent(mmc);
}
+ private transient PageClassRegistry pageClassRegistry;
public PageClassRegistry getPageClassRegistry() {
return pageClassRegistry = computeIfAbsent(PageClassRegistry.class,
pageClassRegistry);
}
+ private transient ImageResourceCache imageCache;
public ImageResourceCache getImageResourceCache() {
return imageCache = computeIfAbsent(ImageResourceCache.class,
imageCache);
}
- public InteractionService getInteractionService() {
- return interactionService = computeIfAbsent(InteractionService.class,
interactionService);
- }
-
- @Override
- public TranslationService getTranslationService() {
- return translationService = computeIfAbsent(TranslationService.class,
translationService);
- }
-
+ private transient LanguageProvider localeProvider;
public LanguageProvider getLanguageProvider() {
return localeProvider = computeIfAbsent(LanguageProvider.class,
localeProvider);
}
+ private transient TreeThemeProvider treeThemeProvider;
protected TreeThemeProvider getTreeThemeProvider() {
return treeThemeProvider =
computeIfAbsentOrFallback(TreeThemeProvider.class, treeThemeProvider,
TreeThemeProviderDefault::new);
}
+ private transient EmailNotificationService emailNotificationService;
protected EmailNotificationService getEmailNotificationService() {
return emailNotificationService =
computeIfAbsent(EmailNotificationService.class, emailNotificationService);
}
+ private transient EmailVerificationUrlService emailVerificationUrlService;
protected EmailVerificationUrlService getEmailVerificationUrlService() {
return emailVerificationUrlService =
computeIfAbsent(EmailVerificationUrlService.class, emailVerificationUrlService);
}
+ private transient PageNavigationService pageNavigationService;
protected PageNavigationService getPageNavigationService() {
return pageNavigationService =
computeIfAbsent(PageNavigationService.class, pageNavigationService);
}
+ private transient HeaderUiService headerUiService;
protected HeaderUiModel getHeaderModel() {
headerUiService = computeIfAbsent(HeaderUiService.class,
headerUiService);
return headerUiService.getHeader();
}
- // -- TRANSLATION
-
- /**
- * Translate without context: Tooltips, Button-Labels, etc.
- */
- public final String translate(final String input) {
- return getTranslationService().translate(TranslationContext.empty(),
input);
- }
-
// Hint support
public UiHintContainer getUiHintContainer() {
@@ -151,7 +115,7 @@ implements HasMetaModelContext {
// other Dependencies
protected ComponentFactoryRegistry getComponentFactoryRegistry() {
- return ((ComponentFactoryRegistryAccessor)
getApplication()).getComponentFactoryRegistry();
+ return ((HasComponentFactoryRegistry)
getApplication()).getComponentFactoryRegistry();
}
// -- HELPER
diff --git
a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/ConverterTester.java
b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/ConverterTester.java
index 9ceffff47f..c5c65213ac 100644
---
a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/ConverterTester.java
+++
b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/ConverterTester.java
@@ -26,6 +26,12 @@ import java.util.Objects;
import org.apache.wicket.util.convert.ConversionException;
import org.assertj.core.util.Arrays;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.clock.VirtualClock;
import org.apache.isis.applib.id.LogicalType;
@@ -43,12 +49,6 @@ import
org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.security._testing.InteractionService_forTesting;
import
org.apache.isis.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
import lombok.AllArgsConstructor;
import lombok.NonNull;
import lombok.val;
@@ -86,7 +86,7 @@ public class ConverterTester<T extends Serializable> {
}
})
.singletons(Arrays.asList(additionalSingletons))
- .interactionProvider(interactionService = new
InteractionService_forTesting())
+ .interactionService(interactionService = new
InteractionService_forTesting())
.build();
mmc.getServiceInjector().injectServicesInto(valueSemantics);
@@ -97,7 +97,7 @@ public class ConverterTester<T extends Serializable> {
assertNotNull(reg.selectValueSemantics(identifier, valueType));
assertTrue(reg.selectValueSemantics(identifier,
valueType).isNotEmpty());
assertNotNull(mmc.getServiceRegistry().lookupServiceElseFail(InteractionService.class));
- assertNotNull(mmc.getInteractionProvider());
+ assertNotNull(mmc.getInteractionService());
}
public void setScenario(
diff --git
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index 207aa4d5b7..42a558156a 100644
---
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
+++
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -31,7 +31,6 @@ import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.isis.applib.clock.VirtualClock;
import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
import org.apache.isis.applib.services.session.SessionSubscriber;
import org.apache.isis.applib.services.user.ImpersonatedUserHolder;
import org.apache.isis.applib.services.user.UserMemento;
@@ -272,10 +271,6 @@ implements
return getServiceRegistry().select(SessionSubscriber.class);
}
- protected InteractionService getInteractionService() {
- return lookupServiceElseFail(InteractionService.class);
- }
-
private VirtualClock virtualClock() {
try {
return getServiceRegistry()
diff --git
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
index 8c393f14c4..1d4c2fef5a 100644
---
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
+++
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
@@ -68,6 +68,7 @@ import
org.apache.isis.viewer.wicket.ui.pages.login.WicketSignInPage;
import org.apache.isis.viewer.wicket.ui.pages.mmverror.MmvErrorPage;
import org.apache.isis.viewer.wicket.ui.panels.PromptFormAbstract;
+import lombok.Setter;
import lombok.val;
import lombok.extern.log4j.Log4j2;
@@ -116,8 +117,8 @@ implements
private static final MetaDataKey<SessionLifecyclePhase>
SESSION_LIFECYCLE_PHASE_KEY =
new MetaDataKey<SessionLifecyclePhase>() { private static final
long serialVersionUID = 1L; };
+ @Setter
private PageClassRegistry pageClassRegistry;
- private MetaModelContext commonContext;
@Override
public synchronized void onBeginRequest(final RequestCycle requestCycle) {
@@ -450,16 +451,12 @@ implements
return false;
}
-
- public void setPageClassRegistry(final PageClassRegistry
pageClassRegistry) {
- this.pageClassRegistry = pageClassRegistry;
- }
-
// -- DEPENDENCIES
+ private MetaModelContext mmc;
@Override
public MetaModelContext getMetaModelContext() {
- return commonContext = WktContext.computeIfAbsent(commonContext);
+ return mmc = WktContext.computeIfAbsent(mmc);
}
private ExceptionRecognizerService getExceptionRecognizerService() {
@@ -467,7 +464,7 @@ implements
}
private boolean isInInteraction() {
- return
getMetaModelContext().getInteractionLayerTracker().isInInteraction();
+ return getMetaModelContext().getInteractionService().isInInteraction();
}
private AuthenticatedWebSession getWicketAuthenticatedWebSession() {
diff --git
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
index 5e3d36df0b..659395ef86 100644
---
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
+++
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
@@ -62,9 +62,9 @@ import
org.apache.isis.viewer.wicket.model.isis.WicketApplicationInitializer;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
-import
org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
+import
org.apache.isis.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.ui.pages.HasPageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.accmngt.AccountConfirmationMap;
import org.apache.isis.viewer.wicket.ui.pages.login.WicketLogoutPage;
import
org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
@@ -98,8 +98,8 @@ import lombok.extern.log4j.Log4j2;
public class IsisWicketApplication
extends AuthenticatedWebApplication
implements
- ComponentFactoryRegistryAccessor,
- PageClassRegistryAccessor,
+ HasComponentFactoryRegistry,
+ HasPageClassRegistry,
HasMetaModelContext {
private static final long serialVersionUID = 1L;