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