ISIS-402: bulk actions now shown for prototype and exploring modes.

ie @Bulk and @Prototype now can be used in conjunction.


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

Branch: refs/heads/master
Commit: 5adf0eb137cd21cd582ba235ac524085d31035f6
Parents: fb4b060
Author: Dan Haywood <[email protected]>
Authored: Thu May 9 16:37:38 2013 +0200
Committer: Dan Haywood <[email protected]>
Committed: Thu May 9 16:37:38 2013 +0200

----------------------------------------------------------------------
 .../CollectionContentsAsAjaxTablePanel.java        |   32 +++++++++++++++
 .../components/widgets/cssmenu/CssMenuBuilder.java |    5 ++-
 2 files changed, 36 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/5adf0eb1/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 638dc2e..88091e9 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
@@ -47,6 +47,7 @@ import 
org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
+import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.common.SelectionHandler;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
@@ -149,10 +150,41 @@ public class CollectionContentsAsAjaxTablePanel extends 
PanelAbstract<EntityColl
         final ObjectSpecification typeSpec = model.getTypeOfSpecification();
         
         List<ObjectAction> objectActions = 
typeSpec.getObjectActions(ActionType.USER, Contributed.INCLUDED, 
Filters.<ObjectAction>any());
+        
+        if ( isExploring() || isPrototyping()) {
+            List<ObjectAction> explorationActions = 
typeSpec.getObjectActions(ActionType.EXPLORATION, Contributed.INCLUDED, 
Filters.<ObjectAction>any());
+            List<ObjectAction> prototypeActions = 
typeSpec.getObjectActions(ActionType.PROTOTYPE, Contributed.INCLUDED, 
Filters.<ObjectAction>any());
+            objectActions.addAll(explorationActions);
+            objectActions.addAll(prototypeActions);
+        }
+        if (isDebugMode()) {
+            List<ObjectAction> debugActions = 
typeSpec.getObjectActions(ActionType.DEBUG, Contributed.INCLUDED, 
Filters.<ObjectAction>any());
+            objectActions.addAll(debugActions);
+        }
+
         List<ObjectAction> flattenedActions = 
ObjectActions.flattenedActions(objectActions);
+        
         return Lists.newArrayList(Iterables.filter(flattenedActions, BULK));
     }
 
+    
+    public boolean isExploring() {
+        return IsisContext.getDeploymentType().isExploring();
+    }
+    public boolean isPrototyping() {
+        return IsisContext.getDeploymentType().isPrototyping();
+    }
+
+    /**
+     * Protected so can be overridden in testing if required.
+     */
+    protected boolean isDebugMode() {
+        // TODO: need to figure out how to switch into debug mode;
+        // probably call a Debug toggle page, and stuff into
+        // Session.getMetaData()
+        return true;
+    }
+
 
     private static void addTitleColumn(final 
List<IColumn<ObjectAdapter,String>> columns, ObjectAdapterMemento 
parentAdapterMementoIfAny) {
         columns.add(new ObjectAdapterTitleColumn(parentAdapterMementoIfAny));

http://git-wip-us.apache.org/repos/asf/isis/blob/5adf0eb1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
 
b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
index 1a657ea..70b6d9d 100644
--- 
a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
+++ 
b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
@@ -79,7 +79,7 @@ public class CssMenuBuilder {
 
     private void addMenuItems(final CssMenuItem parent, final 
List<ObjectAction> actions) {
         addMenuItemsForActionsOfType(parent, actions, ActionType.USER);
-        if (isPrototyping()) {
+        if ( isExploring() || isPrototyping()) {
             addMenuItemsForActionsOfType(parent, actions, 
ActionType.EXPLORATION);
             addMenuItemsForActionsOfType(parent, actions, 
ActionType.PROTOTYPE);
         }
@@ -88,6 +88,9 @@ public class CssMenuBuilder {
         }
     }
 
+    public boolean isExploring() {
+        return IsisContext.getDeploymentType().isExploring();
+    }
     public boolean isPrototyping() {
         return IsisContext.getDeploymentType().isPrototyping();
     }

Reply via email to