You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/05/28 08:22:08 UTC

[isis] branch ISIS-2705 updated (4aa8465 -> 0025ba6)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch ISIS-2705
in repository https://gitbox.apache.org/repos/asf/isis.git.


    omit 4aa8465  ISIS-2705: adds the ability to position Wicket viewer messages more accurately.
     add 2553570  ISIS-2513: Demo: add JPA support for ActionCommandPublishing
     add f55e9e1  ISIS-2513: Demo: add JPA support for ActionExecutionPublishing
     add 2bddb71  ISIS-2513: Demo: add JPA support for PropertyCommandPublishing
     add 037a285  ISIS-2513: Demo: add JPA support for PropertyExecutionPublishing
     add f72dddf  ISIS-2513: Demo: add JPA support for PropertyExecutionPublishing (2)
     add cdfeaea  ISIS-2513: Demo: add JPA support for PropertyProjectingChild
     add 27532d4  ISIS-2513: Demo: add JPA support for JaxbRef
     add 31df953  Bump actions/cache from 2.1.5 to 2.1.6
     add 0747d6b  Merge pull request #561 from apache/dependabot/github_actions/master/actions/cache-2.1.6
     add 525f22c  ISIS-2513: Demo: prepare DomainObjectEntityChangePublishing for JPA
     add fd276b3  ISIS-2513: Demo: add DomainObjectEntityChangePublishing for JPA
     new 0025ba6  ISIS-2705: adds the ability to position Wicket viewer messages more accurately.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (4aa8465)
            \
             N -- N -- N   refs/heads/ISIS-2705 (0025ba6)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../workflows/ci-build-artifacts-no-push-maven.yml |  2 +-
 .../src/main/java/demoapp/dom/DemoModuleJpa.java   | 22 +++++++
 .../dom/_infra/values/ValueHolderRepository.java   | 14 +++-
 .../dom/domain/actions/Action/ActionMenu.java      | 19 +++---
 .../ActionCommandPublishingEntity.java             | 53 +++++++++++++++
 .../ActionCommandPublishingEntity.layout.xml}      |  0
 ...mmandPublishingEntity_mixinUpdateProperty.java} | 16 ++---
 ...Entity_mixinUpdatePropertyCommandDisabled.java} | 13 ++--
 ...gEntity_mixinUpdatePropertyMetaAnnotation.java} | 12 ++--
 ...xinUpdatePropertyMetaAnnotationOverridden.java} | 12 ++--
 .../ActionCommandPublishingJdoSeedService.java     | 57 ----------------
 ...es.java => ActionCommandPublishingSeeding.java} | 27 +++-----
 .../ActionCommandPublishingJdo-description.adoc    | 10 +--
 .../{ => jdo}/ActionCommandPublishingJdo.java      | 17 +++--
 .../jdo/ActionCommandPublishingJdoEntities.java}   | 26 ++++----
 .../ActionCommandPublishingJpa-description.adoc}   | 18 ++---
 .../ActionCommandPublishingJpa.java}               | 57 ++++++++++------
 .../jpa/ActionCommandPublishingJpaEntities.java}   | 26 ++++----
 .../ActionExecutionPublishingEntity.java           | 50 ++++++++++++++
 .../ActionExecutionPublishingEntity.layout.xml}    |  0
 ...utionPublishingEntity_mixinUpdateProperty.java} | 18 ++---
 ...gEntity_mixinUpdatePropertyMetaAnnotation.java} | 18 ++---
 ...xinUpdatePropertyMetaAnnotationOverridden.java} | 20 +++---
 .../ActionExecutionPublishingJdoSeedService.java   | 57 ----------------
 ....java => ActionExecutionPublishingSeeding.java} | 26 ++------
 .../ActionExecutionPublishingJdo-description.adoc  |  8 +--
 .../{ => jdo}/ActionExecutionPublishingJdo.java    | 17 +++--
 .../jdo/ActionExecutionPublishingJdoEntities.java} | 26 ++++----
 .../ActionExecutionPublishingJpa-description.adoc} | 14 ++--
 .../ActionExecutionPublishingJpa.java}             | 55 ++++++++++------
 .../jpa/ActionExecutionPublishingJpaEntities.java} | 26 ++++----
 ... DomainObjectEntityChangePublishingEntity.java} | 32 +++++----
 ...nObjectEntityChangePublishingEntity.layout.xml} |  0
 ...ublishingEntity_updatePropertyUsingAction.java} | 15 +++--
 ...omainObjectEntityChangePublishingVm_create.java | 25 +++----
 ...omainObjectEntityChangePublishingVm_delete.java | 77 ++++++++++++----------
 ...inObjectEntityChangePublishingVm_updateAll.java | 29 ++++----
 ...bjectEntityChangePublishingDisabledEntity.java} | 29 +++-----
 ...ectEntityChangePublishingDisabledJdo.layout.xml | 59 -----------------
 ...tEntityChangePublishingDisabledJdoEntities.java | 57 ----------------
 ...tityChangePublishingDisabledJdoSeedService.java | 57 ----------------
 ...jectEntityChangePublishingDisabledSeeding.java} | 24 +++----
 ...hingVm_publishingDisabledAnnotatedEntities.java | 16 +++--
 ...ityChangePublishingDisabledJdo-description.adoc |  0
 ...ainObjectEntityChangePublishingDisabledJdo.java | 13 ++--
 ...EntityChangePublishingDisabledJdoEntities.java} | 28 ++++----
 ...tyChangePublishingDisabledJpa-description.adoc} |  2 +-
 ...inObjectEntityChangePublishingDisabledJpa.java} | 52 +++++++++------
 ...EntityChangePublishingDisabledJpaEntities.java} | 28 ++++----
 .../DomainObjectAuditingEnabledJdoEntities.java    | 57 ----------------
 .../DomainObjectAuditingEnabledJdoSeedService.java | 57 ----------------
 ...ObjectEntityChangePublishingEnabledEntity.java} | 27 ++------
 ...jectEntityChangePublishingEnabledJdo.layout.xml | 59 -----------------
 ...bjectEntityChangePublishingEnabledSeeding.java} | 24 +++----
 ...hingVm_publishingEnabledAnnotatedEntities.java} | 18 ++---
 ...tityChangePublishingEnabledJdo-description.adoc |  0
 ...mainObjectEntityChangePublishingEnabledJdo.java | 13 ++--
 ...tEntityChangePublishingEnabledJdoEntities.java} | 28 ++++----
 ...ityChangePublishingEnabledJpa-description.adoc} |  2 +-
 ...ainObjectEntityChangePublishingEnabledJpa.java} | 52 +++++++++------
 ...tEntityChangePublishingEnabledJpaEntities.java} | 28 ++++----
 ...hangePublishingEnabledMetaAnnotatedEntity.java} | 29 +++-----
 ...ngePublishingEnabledMetaAnnotatedJdo.layout.xml | 59 -----------------
 ...ePublishingEnabledMetaAnnotatedJdoEntities.java | 57 ----------------
 ...angePublishingEnabledMetaAnnotatedSeeding.java} | 33 ++--------
 ...gVm_publishingEnabledMetaAnnotatedEntities.java | 16 +++--
 ...lishingEnabledMetaAnnotatedJdo-description.adoc |  2 +-
 ...ityChangePublishingEnabledMetaAnnotatedJdo.java | 11 ++--
 ...PublishingEnabledMetaAnnotatedJdoEntities.java} | 26 ++++----
 ...ishingEnabledMetaAnnotatedJpa-description.adoc} |  4 +-
 ...tyChangePublishingEnabledMetaAnnotatedJpa.java} | 40 +++++++----
 ...PublishingEnabledMetaAnnotatedJpaEntities.java} | 26 ++++----
 ...ublishingEnabledMetaAnnotOverriddenEntity.java} | 29 +++-----
 ...shingEnabledMetaAnnotOverriddenJdoEntities.java | 57 ----------------
 ...blishingEnabledMetaAnnotOverriddenSeeding.java} | 35 +++-------
 ...blishingEnabledMetaAnnotOverriddenEntities.java | 16 +++--
 ...gEnabledMetaAnnotOverriddenJdo-description.adoc |  2 +-
 ...ngePublishingEnabledMetaAnnotOverriddenJdo.java | 14 ++--
 ...hingEnabledMetaAnnotOverriddenJdoEntities.java} | 30 ++++-----
 ...EnabledMetaAnnotOverriddenJpa-description.adoc} |  5 +-
 ...gePublishingEnabledMetaAnnotOverriddenJpa.java} | 40 +++++++----
 ...hingEnabledMetaAnnotOverriddenJpaEntities.java} | 30 ++++-----
 .../{ChildJdoEntities.java => JaxbRefEntity.java}  | 30 ++++-----
 .../{ChildJdoEntities.java => JaxbRefSeeding.java} | 21 ++----
 .../jaxbrefentity/StatefulVmJaxbRefsEntity.java    | 32 ++++-----
 .../{ChildJdo.java => jdo/JaxbRefJdo.java}         | 13 ++--
 .../JaxbRefJdoEntities.java}                       | 26 ++++----
 .../{ChildJdo.java => jpa/JaxbRefJpa.java}         | 39 +++++++----
 .../JaxbRefJpaEntities.java}                       | 26 ++++----
 .../jaxbrefentity/seed/ChildJdoSeedService.java    | 58 ----------------
 .../domain/properties/Property/PropertyMenu.java   | 27 ++++----
 .../PropertyCommandPublishingEntity.java           | 53 +++++++++++++++
 .../PropertyCommandPublishingEntity.layout.xml}    |  0
 .../PropertyCommandPublishingJdoSeedService.java   | 57 ----------------
 ....java => PropertyCommandPublishingSeeding.java} | 31 +++------
 .../PropertyCommandPublishingJdo-description.adoc  | 16 ++---
 .../{ => jdo}/PropertyCommandPublishingJdo.java    | 29 ++++----
 .../jdo/PropertyCommandPublishingJdoEntities.java} | 26 ++++----
 .../PropertyCommandPublishingJpa-description.adoc} | 24 ++++---
 .../PropertyCommandPublishingJpa.java}             | 59 ++++++++++-------
 .../jpa/PropertyCommandPublishingJpaEntities.java} | 26 ++++----
 .../PropertyExecutionPublishingEntity.java         | 51 ++++++++++++++
 .../PropertyExecutionPublishingEntity.layout.xml}  |  0
 .../PropertyExecutionPublishingJdoSeedService.java | 54 ---------------
 ...ava => PropertyExecutionPublishingSeeding.java} | 26 ++------
 ...PropertyExecutionPublishingJdo-description.adoc | 12 ++--
 .../{ => jdo}/PropertyExecutionPublishingJdo.java  | 33 ++++++----
 .../PropertyExecutionPublishingJdoEntities.java}   | 28 ++++----
 ...ropertyExecutionPublishingJpa-description.adoc} | 18 +++--
 .../PropertyExecutionPublishingJpa.java}           | 65 +++++++++++-------
 .../PropertyExecutionPublishingJpaEntities.java}   | 28 ++++----
 .../child/PropertyProjectingChildVm.java           |  9 +--
 .../projecting/jdo/PropertyProjectingChildJdo.java | 11 +++-
 .../jdo/PropertyProjectingChildJdoEntities.java    | 33 ++++------
 .../jdo/PropertyProjectingChildJdoSeedService.java | 57 ----------------
 .../PropertyProjectingChildJpa-description.adoc}   |  0
 .../PropertyProjectingChildJpa.java}               | 43 ++++++++----
 .../jpa/PropertyProjectingChildJpaEntities.java}   | 28 ++++----
 .../PropertyProjectingChildEntity.java}            | 35 +++++-----
 .../PropertyProjectingChildEntity.layout.xml}      |  0
 .../PropertyProjectingChildSeeding.java}           | 23 +++----
 121 files changed, 1346 insertions(+), 2006 deletions(-)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/{properties/Property/commandPublishing/PropertyCommandPublishingJdo.layout.xml => actions/Action/commandPublishing/ActionCommandPublishingEntity.layout.xml} (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo_mixinUpdateProperty.java => ActionCommandPublishingEntity_mixinUpdateProperty.java} (74%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo_mixinUpdatePropertyCommandDisabled.java => ActionCommandPublishingEntity_mixinUpdatePropertyCommandDisabled.java} (80%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo_mixinUpdatePropertyMetaAnnotation.java => ActionCommandPublishingEntity_mixinUpdatePropertyMetaAnnotation.java} (80%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java => ActionCommandPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java} (80%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingJdoSeedService.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdoEntities.java => ActionCommandPublishingSeeding.java} (59%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ => jdo}/ActionCommandPublishingJdo-description.adoc (94%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ => jdo}/ActionCommandPublishingJdo.java (90%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => actions/Action/commandPublishing/jdo/ActionCommandPublishingJdoEntities.java} (61%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo-description.adoc => jpa/ActionCommandPublishingJpa-description.adoc} (90%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/{ActionCommandPublishingJdo.java => jpa/ActionCommandPublishingJpa.java} (77%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => actions/Action/commandPublishing/jpa/ActionCommandPublishingJpaEntities.java} (61%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/{properties/Property/executionPublishing/PropertyExecutionPublishingJdo.layout.xml => actions/Action/executionPublishing/ActionExecutionPublishingEntity.layout.xml} (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdo_mixinUpdateProperty.java => ActionExecutionPublishingEntity_mixinUpdateProperty.java} (70%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java => ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java} (68%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java => ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java} (67%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoSeedService.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdoEntities.java => ActionExecutionPublishingSeeding.java} (59%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ => jdo}/ActionExecutionPublishingJdo-description.adoc (92%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ => jdo}/ActionExecutionPublishingJdo.java (88%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdoEntities.java} (61%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdo-description.adoc => jpa/ActionExecutionPublishingJpa-description.adoc} (89%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/{ActionExecutionPublishingJdo.java => jpa/ActionExecutionPublishingJpa.java} (73%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpaEntities.java} (61%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{DomainObjectEntityChangePublishingJdo.java => DomainObjectEntityChangePublishingEntity.java} (62%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{metaAnnotOverridden/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo.layout.xml => DomainObjectEntityChangePublishingEntity.layout.xml} (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{DomainObjectEntityChangePublishingJdo_updatePropertyUsingAction.java => DomainObjectEntityChangePublishingEntity_updatePropertyUsingAction.java} (66%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/disabled/DomainObjectEntityChangePublishingDisabledEntity.java} (56%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/DomainObjectEntityChangePublishingDisabledJdo.layout.xml
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/DomainObjectEntityChangePublishingDisabledJdoEntities.java
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/DomainObjectEntityChangePublishingDisabledJdoSeedService.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/disabled/DomainObjectEntityChangePublishingDisabledSeeding.java} (63%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/{ => jdo}/DomainObjectEntityChangePublishingDisabledJdo-description.adoc (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/{ => jdo}/DomainObjectEntityChangePublishingDisabledJdo.java (85%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/disabled/jdo/DomainObjectEntityChangePublishingDisabledJdoEntities.java} (56%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/disabled/{DomainObjectEntityChangePublishingDisabledJdo-description.adoc => jpa/DomainObjectEntityChangePublishingDisabledJpa-description.adoc} (94%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{metaAnnotOverridden/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo.java => annotated/disabled/jpa/DomainObjectEntityChangePublishingDisabledJpa.java} (59%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/disabled/jpa/DomainObjectEntityChangePublishingDisabledJpaEntities.java} (56%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/DomainObjectAuditingEnabledJdoEntities.java
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/DomainObjectAuditingEnabledJdoSeedService.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/{DomainObjectAuditingVm_publishingEnabledAnnotatedEntities.java => DomainObjectEntityChangePublishingEnabledEntity.java} (57%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/DomainObjectEntityChangePublishingEnabledJdo.layout.xml
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/enabled/DomainObjectEntityChangePublishingEnabledSeeding.java} (63%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/{DomainObjectAuditingVm_publishingEnabledAnnotatedEntities.java => DomainObjectEntityChangePublishingVm_publishingEnabledAnnotatedEntities.java} (71%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledJdo-description.adoc (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledJdo.java (85%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/enabled/jdo/DomainObjectEntityChangePublishingEnabledJdoEntities.java} (56%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/annotated/enabled/{DomainObjectEntityChangePublishingEnabledJdo-description.adoc => jpa/DomainObjectEntityChangePublishingEnabledJpa-description.adoc} (94%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{metaAnnotOverridden/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo.java => annotated/enabled/jpa/DomainObjectEntityChangePublishingEnabledJpa.java} (60%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/annotated/enabled/jpa/DomainObjectEntityChangePublishingEnabledJpaEntities.java} (56%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/metaAnnot/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotatedEntity.java} (56%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdo.layout.xml
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoSeedService.java => DomainObjectEntityChangePublishingEnabledMetaAnnotatedSeeding.java} (56%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdo-description.adoc (93%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdo.java (87%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/metaAnnot/enabled/jdo/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities.java} (53%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdo-description.adoc => jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJpa-description.adoc} (92%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnot/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdo.java => jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJpa.java} (69%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/metaAnnot/enabled/jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotatedJpaEntities.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/{nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => entityChangePublishing/metaAnnotOverridden/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenEntity.java} (56%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoSeedService.java => DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenSeeding.java} (56%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo-description.adoc (94%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/{ => jdo}/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo.java (84%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{annotated/enabled/DomainObjectAuditingVm_publishingEnabledAnnotatedEntities.java => metaAnnotOverridden/enabled/jdo/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities.java} (52%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo-description.adoc => jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJpa-description.adoc} (92%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/metaAnnotOverridden/enabled/{DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdo.java => jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJpa.java} (68%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/entityChangePublishing/{annotated/enabled/DomainObjectAuditingVm_publishingEnabledAnnotatedEntities.java => metaAnnotOverridden/enabled/jpa/DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJpaEntities.java} (52%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdoEntities.java => JaxbRefEntity.java} (62%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdoEntities.java => JaxbRefSeeding.java} (69%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdo.java => jdo/JaxbRefJdo.java} (85%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdoEntities.java => jdo/JaxbRefJdoEntities.java} (66%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdo.java => jpa/JaxbRefJpa.java} (63%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/{ChildJdoEntities.java => jpa/JaxbRefJpaEntities.java} (66%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/nature/viewmodels/jaxbrefentity/seed/ChildJdoSeedService.java
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/PropertyCommandPublishingEntity.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/{actions/Action/commandPublishing/ActionCommandPublishingJdo.layout.xml => properties/Property/commandPublishing/PropertyCommandPublishingEntity.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/PropertyCommandPublishingJdoSeedService.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/{PropertyCommandPublishingJdoEntities.java => PropertyCommandPublishingSeeding.java} (55%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/{ => jdo}/PropertyCommandPublishingJdo-description.adoc (89%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/{ => jdo}/PropertyCommandPublishingJdo.java (78%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/commandPublishing/jdo/PropertyCommandPublishingJdoEntities.java} (61%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/{PropertyCommandPublishingJdo-description.adoc => jpa/PropertyCommandPublishingJpa-description.adoc} (85%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/commandPublishing/{PropertyCommandPublishingJdo.java => jpa/PropertyCommandPublishingJpa.java} (65%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/commandPublishing/jpa/PropertyCommandPublishingJpaEntities.java} (61%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/PropertyExecutionPublishingEntity.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/{actions/Action/executionPublishing/ActionExecutionPublishingJdo.layout.xml => properties/Property/executionPublishing/PropertyExecutionPublishingEntity.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/PropertyExecutionPublishingJdoSeedService.java
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/{PropertyExecutionPublishingJdoEntities.java => PropertyExecutionPublishingSeeding.java} (58%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/{ => jdo}/PropertyExecutionPublishingJdo-description.adoc (85%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/{ => jdo}/PropertyExecutionPublishingJdo.java (75%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/executionPublishing/jdo/PropertyExecutionPublishingJdoEntities.java} (60%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/{PropertyExecutionPublishingJdo-description.adoc => jpa/PropertyExecutionPublishingJpa-description.adoc} (81%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/executionPublishing/{PropertyExecutionPublishingJdo.java => jpa/PropertyExecutionPublishingJpa.java} (59%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/executionPublishing/jpa/PropertyExecutionPublishingJpaEntities.java} (60%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/jdo/PropertyProjectingChildJdoSeedService.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/{jdo/PropertyProjectingChildJdo-description.adoc => jpa/PropertyProjectingChildJpa-description.adoc} (100%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/{jdo/PropertyProjectingChildJdo.java => jpa/PropertyProjectingChildJpa.java} (60%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/projecting/jpa/PropertyProjectingChildJpaEntities.java} (61%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/projecting/persistence/PropertyProjectingChildEntity.java} (56%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/projecting/{jdo/PropertyProjectingChildJdo.layout.xml => persistence/PropertyProjectingChildEntity.layout.xml} (100%)
 rename examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObject/nature/viewmodels/jaxbrefentity/ChildJdoEntities.java => properties/Property/projecting/persistence/PropertyProjectingChildSeeding.java} (63%)

[isis] 01/01: ISIS-2705: adds the ability to position Wicket viewer messages more accurately.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2705
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 0025ba69429b6b06b946372889eca07ff9ff558b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu May 27 08:54:22 2021 +0100

    ISIS-2705: adds the ability to position Wicket viewer messages more accurately.
---
 .../apache/isis/core/config/IsisConfiguration.java | 72 ++++++++++++++++++++++
 .../widgets/breadcrumbs/BreadcrumbPanel.java       |  5 +-
 .../viewer/wicket/ui/errors/JGrowlBehaviour.java   |  8 ++-
 .../isis/viewer/wicket/ui/errors/JGrowlUtil.java   | 39 ++++++++----
 .../wicket/ui/panels/FormExecutorDefault.java      |  3 +-
 5 files changed, 112 insertions(+), 15 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index d6bb853..3e23bdb 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -21,6 +21,8 @@ package org.apache.isis.core.config;
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -48,6 +50,7 @@ import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.convert.DurationUnit;
 import org.springframework.core.env.ConfigurableEnvironment;
 import org.springframework.validation.annotation.Validated;
 
@@ -2445,6 +2448,75 @@ public class IsisConfiguration {
                  */
                 private String text;
             }
+
+            private final MessagePopups messagePopups = new MessagePopups();
+            @Data
+            public static class MessagePopups {
+
+                /**
+                 * How long the info popup should display before disappearing.
+                 *
+                 * <p>
+                 *     A value of 0 means do not disappear automatically.
+                 * </p>
+                 */
+                Duration infoDelay = Duration.ofMillis(3500);
+
+                /**
+                 * How long the warning popup should display before disappearing.
+                 *
+                 * <p>
+                 *     A value of 0 (the default) means do not disappear automatically.
+                 * </p>
+                 */
+                Duration warningDelay = Duration.ofMillis(0);
+
+                /**
+                 * How long the error popup should display before disappearing.
+                 *
+                 * <p>
+                 *     A value of 0 (the default) means do not disappear automatically.
+                 * </p>
+                 */
+                Duration errorDelay = Duration.ofMillis(0);
+
+                /**
+                 * How far in from the edge the popup should display
+                 */
+                int offset = 100;
+
+                private final Placement placement = new Placement();
+                @Data
+                public static class Placement {
+
+                    public static enum Vertical {
+                        TOP, BOTTOM
+                    }
+
+                    public static enum Horizontal {
+                        LEFT, RIGHT
+                    }
+
+                    /**
+                     * Whether to display popups at the top or the bottom of the page.
+                     *
+                     * <p>
+                     * The default is to show them at the top.
+                     * </p>
+                     */
+                    Vertical vertical = Vertical.TOP;
+
+                    /**
+                     * Whether to display popups aligned ot the left or right of the page.
+                     *
+                     * <p>
+                     * The default is to show them aligned to the right
+                     * </p>
+                     */
+                    Horizontal horizontal = Horizontal.RIGHT;
+                }
+            }
+
         }
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 502170f..e1e3318 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -42,6 +42,8 @@ import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
 import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
+import lombok.val;
+
 public class BreadcrumbPanel
 extends PanelAbstract<Void, IModel<Void>> {
 
@@ -129,10 +131,11 @@ extends PanelAbstract<Void, IModel<Void>> {
                         final String oidStr = breadcrumbChoice.getInput();
                         final EntityModel selectedModel = breadcrumbModel.lookup(oidStr);
                         if(selectedModel == null) {
+                            val configuration = getCommonContext().getConfiguration();
                             getCommonContext().getMessageBroker()
                             .ifPresent(messageBroker->{
                                 messageBroker.addWarning("Cannot find object");
-                                String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+                                String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker, configuration);
                                 target.appendJavaScript(feedbackMsg);
                             });
                             breadcrumbModel.remove(oidStr);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
index 456e06d..a3e9649 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
@@ -32,6 +32,8 @@ import org.apache.isis.core.interaction.session.MessageBroker;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
 
+import lombok.val;
+
 /**
  * Attach to any Ajax button that might trigger a notification (ie calls
  * {@link MessageBroker#addMessage(String)}, {@link MessageBroker#addWarning(String)},
@@ -56,8 +58,9 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
     @Override
     protected void respond(AjaxRequestTarget target) {
 
+        val configuration = getCommonContext().getConfiguration();
         getCommonContext().getMessageBroker().ifPresent(messageBroker->{
-            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker, configuration);
             if(!_Strings.isNullOrEmpty(feedbackMsg)) {
                 target.appendJavaScript(feedbackMsg);
             }
@@ -76,9 +79,10 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
                 JavaScriptHeaderItem
                 .forReference(new JavaScriptResourceReference(JGrowlBehaviour.class, "js/bootstrap-growl.js")));
 
+        val configuration = getCommonContext().getConfiguration();
         getCommonContext().getMessageBroker().ifPresent(messageBroker->{
 
-            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+            String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker, configuration);
             if(_Strings.isNotEmpty(feedbackMsg)) {
                 response.render(OnDomReadyHeaderItem.forScript(feedbackMsg));
             }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlUtil.java
index 24a3f3f..0702440 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlUtil.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.wicket.ui.errors;
 
 import org.apache.wicket.util.string.Strings;
 
+import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.interaction.session.MessageBroker;
 
 import lombok.Getter;
@@ -32,9 +33,21 @@ public class JGrowlUtil {
 
     @RequiredArgsConstructor @Getter
     static enum MessageSeverity {
-        INFO(3500),
-        WARNING(0), // sticky
-        DANGER(0) // sticky
+        INFO(3500) {
+            @Override long delay(IsisConfiguration.Viewer.Wicket.MessagePopups messagePopups) {
+                return messagePopups.getInfoDelay().toMillis();
+            }
+        },
+        WARNING(0) {
+            @Override long delay(IsisConfiguration.Viewer.Wicket.MessagePopups messagePopups) {
+                return messagePopups.getWarningDelay().toMillis();
+            }
+        }, // sticky
+        DANGER(0){
+            @Override long delay(IsisConfiguration.Viewer.Wicket.MessagePopups messagePopups) {
+                return messagePopups.getErrorDelay().toMillis();
+            }
+        } // sticky
         ;
 
         private final int delayMillis;
@@ -42,29 +55,33 @@ public class JGrowlUtil {
         public String cssClassSuffix() {
             return name().toLowerCase();
         }
+
+        abstract long delay(IsisConfiguration.Viewer.Wicket.MessagePopups messagePopups);
     }
 
-    public static String asJGrowlCalls(final MessageBroker messageBroker) {
+    public static String asJGrowlCalls(final MessageBroker messageBroker, IsisConfiguration configuration) {
         val buf = new StringBuilder();
 
+        val messagePopups = configuration.getViewer().getWicket().getMessagePopups();
         for (String info : messageBroker.drainMessages()) {
-            addJGrowlCall(info, JGrowlUtil.MessageSeverity.INFO, buf);
+            addJGrowlCall(info, JGrowlUtil.MessageSeverity.INFO, messagePopups, buf);
         }
 
         for (String warning : messageBroker.drainWarnings()) {
-            addJGrowlCall(warning, JGrowlUtil.MessageSeverity.WARNING, buf);
+            addJGrowlCall(warning, JGrowlUtil.MessageSeverity.WARNING, messagePopups, buf);
         }
 
         messageBroker.drainApplicationError()
         .ifPresent(error->
-            addJGrowlCall(error, MessageSeverity.DANGER, buf));
+            addJGrowlCall(error, MessageSeverity.DANGER, messagePopups, buf));
 
         return buf.toString();
     }
 
-    public static void addJGrowlCall(
+    private static void addJGrowlCall(
             final String origMsg,
             final MessageSeverity severity,
+            final IsisConfiguration.Viewer.Wicket.MessagePopups messagePopups,
             final StringBuilder buf) {
 
         final CharSequence escapedMsg = escape(origMsg);
@@ -74,9 +91,9 @@ public class JGrowlUtil {
         .append('"');
         buf.append(", {");
         buf.append("type: \"").append(severity.cssClassSuffix()).append('"');
-        buf.append(", delay: " + severity.delayMillis);
-        buf.append(", placement: { from: 'top', align: 'right' }");
-        buf.append(", offset: 50");
+        buf.append(String.format(", delay: %d", severity.delay(messagePopups)));
+        buf.append(String.format(", placement: { from: '%s', align: '%s' }", messagePopups.getPlacement().getVertical().name().toLowerCase(), messagePopups.getPlacement().getHorizontal().name().toLowerCase()));
+        buf.append(String.format(", offset: %d", messagePopups.getOffset()));
         buf.append('}');
         buf.append(");\n");
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 0116eee..dd73ede 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -174,8 +174,9 @@ implements FormExecutor {
                 // also in this branch we also know that there *is* an ajax target to use
                 addComponentsToRedraw(targetIfAny);
 
+                val configuration = getCommonContext().getConfiguration();
                 currentMessageBroker().ifPresent(messageBorker->{
-                    final String jGrowlCalls = JGrowlUtil.asJGrowlCalls(messageBorker);
+                    final String jGrowlCalls = JGrowlUtil.asJGrowlCalls(messageBorker, configuration);
                     targetIfAny.appendJavaScript(jGrowlCalls);
                 });