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 2014/02/18 17:21:54 UTC

git commit: ISIS-683: ensure UI toggles reset after bulk action.

Repository: isis
Updated Branches:
  refs/heads/master 4e3a0549f -> 7f30249b6


ISIS-683: ensure UI toggles reset after bulk action.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/7f30249b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/7f30249b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/7f30249b

Branch: refs/heads/master
Commit: 7f30249b616663c66b5f879b071441bc9918d258
Parents: 4e3a054
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Feb 18 16:16:57 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Feb 18 16:16:57 2014 +0000

----------------------------------------------------------------------
 .../ajaxtable/BulkActionsLinkFactory.java       | 23 ++++++++------------
 .../CollectionContentsAsAjaxTablePanel.java     | 19 +++++++++-------
 .../columns/ObjectAdapterToggleboxColumn.java   |  4 ++++
 3 files changed, 24 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7f30249b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
index 287e61d..0402da6 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
@@ -18,25 +18,18 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable;
 
-import java.util.Collections;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 
 import org.apache.wicket.Session;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
 import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.applib.annotation.Bulk;
-import org.apache.isis.applib.annotation.Bulk.InteractionContext;
 import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
@@ -45,22 +38,18 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.util.MementoFunctions;
-import org.apache.isis.viewer.wicket.model.util.ObjectAdapterFunctions;
 import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponse;
 import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem;
+import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
 import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ActionLinkFactory;
+import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem;
 import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
-import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 
 final class BulkActionsLinkFactory implements ActionLinkFactory {
     
@@ -69,10 +58,15 @@ final class BulkActionsLinkFactory implements ActionLinkFactory {
     
     @SuppressWarnings("unused")
     private final DataTable<ObjectAdapter,String> dataTable;
+    private final ObjectAdapterToggleboxColumn toggleboxColumn;
 
-    BulkActionsLinkFactory(EntityCollectionModel model, DataTable<ObjectAdapter,String> dataTable) {
+    BulkActionsLinkFactory(
+            final EntityCollectionModel model, 
+            final DataTable<ObjectAdapter,String> dataTable, 
+            final ObjectAdapterToggleboxColumn toggleboxColumn) {
         this.model = model;
         this.dataTable = dataTable;
+        this.toggleboxColumn = toggleboxColumn;
     }
 
     @Override
@@ -123,6 +117,7 @@ final class BulkActionsLinkFactory implements ActionLinkFactory {
                     }
                     
                     model.clearToggleMementosList();
+                    toggleboxColumn.clearToggles();
                     final ActionModel actionModelHint = model.getActionModelHint();
                     if(actionModelHint != null) {
                         ObjectAdapter resultAdapter = actionModelHint.getObject();

http://git-wip-us.apache.org/repos/asf/isis/blob/7f30249b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 1112199..aa02312 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -101,7 +101,7 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
 
         List<ObjectAction> bulkActions = determineBulkActions();
 
-        addToggleboxColumnIfRequired(columns, bulkActions);
+        ObjectAdapterToggleboxColumn toggleboxColumn = addToggleboxColumnIfRequired(columns, bulkActions);
         addTitleColumn(columns, model.getParentObjectAdapterMemento(), getSettings().getMaxTitleLengthInStandaloneTables(), getSettings().getMaxTitleLengthInStandaloneTables());
         addPropertyColumnsIfRequired(columns);
 
@@ -109,19 +109,19 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
         dataTable = new IsisAjaxFallbackDataTable<ObjectAdapter,String>(ID_TABLE, columns, dataProvider, model.getPageSize());
         
         addActionPromptModalWindow();
-        buildEntityActionsGui(bulkActions, this);
+        buildEntityActionsGui(bulkActions, this, toggleboxColumn);
 
         addOrReplace(dataTable);
         dataTable.honourHints();
     }
 
-    private void addToggleboxColumnIfRequired(final List<IColumn<ObjectAdapter,String>> columns, List<ObjectAction> bulkActions) {
+    private ObjectAdapterToggleboxColumn addToggleboxColumnIfRequired(final List<IColumn<ObjectAdapter,String>> columns, List<ObjectAction> bulkActions) {
         final EntityCollectionModel entityCollectionModel = getModel();
         if(bulkActions.isEmpty() || entityCollectionModel.isParented()) {
-            return;
+            return null;
         }
         
-        columns.add(new ObjectAdapterToggleboxColumn(new SelectionHandler() {
+        ObjectAdapterToggleboxColumn toggleboxColumn = new ObjectAdapterToggleboxColumn(new SelectionHandler() {
             
             private static final long serialVersionUID = 1L;
 
@@ -146,12 +146,15 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
                 // perhaps something to tackle in a separate ticket....
                 ajaxRequestTarget.add(dataTable);
             }
-        }));
+        });
+        columns.add(toggleboxColumn);
+        return toggleboxColumn;
     }
 
     private void buildEntityActionsGui(
             final List<ObjectAction> bulkActions, 
-            final ActionPromptProvider actionPromptModalWindowProvider) {
+            final ActionPromptProvider actionPromptModalWindowProvider, 
+            final ObjectAdapterToggleboxColumn toggleboxColumn) {
         final EntityCollectionModel model = getModel();
         
         if(bulkActions.isEmpty() || model.isParented()) {
@@ -160,7 +163,7 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
         }
         
         if(!bulkActions.isEmpty()) {
-            final ActionLinkFactory linkFactory = new BulkActionsLinkFactory(model, dataTable);
+            final ActionLinkFactory linkFactory = new BulkActionsLinkFactory(model, dataTable, toggleboxColumn);
 
             final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(null, getServiceAdapters(), bulkActions, linkFactory);
             // TODO: i18n

http://git-wip-us.apache.org/repos/asf/isis/blob/7f30249b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
index e933f2b..2e210f7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
@@ -105,5 +105,9 @@ public final class ObjectAdapterToggleboxColumn extends ColumnAbstract<ObjectAda
         cellItem.add(toggle);
     }
 
+    public void clearToggles() {
+        rowToggles.clear();
+    }
+
 
 }
\ No newline at end of file