You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/11/27 09:39:40 UTC

[isis] branch master updated: ISIS-2871: bypass domain events when recreating DataTableModel from memento

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 465da26  ISIS-2871: bypass domain events when recreating DataTableModel from memento
465da26 is described below

commit 465da26f7a477ae46950d4a2aee2379b84c889d0
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Nov 27 10:39:25 2021 +0100

    ISIS-2871: bypass domain events when recreating DataTableModel from
    memento
---
 .../interactions/managed/nonscalar/DataTableModel.java      | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/nonscalar/DataTableModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/nonscalar/DataTableModel.java
index 8b04518..171da30 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/nonscalar/DataTableModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/nonscalar/DataTableModel.java
@@ -113,10 +113,9 @@ implements MultiselectChoices {
 
         dataRowsFiltered = _Observables.lazy(()->
             dataElements.getValue().stream()
-                //TODO filter by searchArgument
+                //XXX future extension: filter by searchArgument
                 .filter(this::ignoreHidden)
                 .sorted(managedMember.getMetaModel().getElementComparator())
-                //TODO apply projection conversion (if any)
                 .map(domainObject->new DataRow(this, domainObject))
                 .collect(Can.toCan()));
 
@@ -151,7 +150,7 @@ implements MultiselectChoices {
             .map(property->new DataColumn(this, property))
             .collect(Can.toCan()));
 
-        //XXX the tile could dynamically reflect the number of elements selected
+        //XXX future extension: the tile could dynamically reflect the number of elements selected
         //eg... 5 Orders selected
         title = _Observables.lazy(()->
             managedMember
@@ -263,15 +262,15 @@ implements MultiselectChoices {
                 // bypass domain events
                 val collInteraction = CollectionInteraction.start(owner, memberId, where);
                 val managedColl = collInteraction.getManagedCollection().orElseThrow();
-                //FIXME[ISIS-2871] bypass domain events
+                // invocation bypassing domain events (pass-through)
                 return new DataTableModel(managedColl, where, ()->
-                    managedColl.streamElements().collect(Can.toCan()));
+                    managedColl.streamElements(InteractionInitiatedBy.PASS_THROUGH).collect(Can.toCan()));
             }
             val actionInteraction = ActionInteraction.start(owner, memberId, where);
             val managedAction = actionInteraction.getManagedActionElseFail();
             val args = argsMemento.getArgumentList(managedAction.getMetaModel());
-            //FIXME[ISIS-2871] bypass domain events
-            val actionResult = managedAction.invoke(args).left().orElseThrow();
+            // invocation bypassing domain events (pass-through)
+            val actionResult = managedAction.invoke(args, InteractionInitiatedBy.PASS_THROUGH).left().orElseThrow();
             return forAction(managedAction, args, actionResult);
         }
     }