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 2012/11/23 16:50:53 UTC
svn commit: r1412922 - in /isis/trunk/framework:
applib/src/main/java/org/apache/isis/applib/filter/
core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/
core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specim...
Author: danhaywood
Date: Fri Nov 23 15:50:48 2012
New Revision: 1412922
URL: http://svn.apache.org/viewvc?rev=1412922&view=rev
Log:
ISIS-232: fixes
* error in way contributed actions were being cached in metamodel
* contributed actions had gone missing, now displayed again
* don't disable bookmark links
* remove 'incubating' from powered-by strapline.
Added:
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java
- copied, changed from r1412890, isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/ObjectActions.java
Removed:
isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/ObjectActions.java
Modified:
isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filter.java
isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filters.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionFilters.java
isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
Modified: isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filter.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filter.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filter.java (original)
+++ isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filter.java Fri Nov 23 15:50:48 2012
@@ -19,6 +19,8 @@
package org.apache.isis.applib.filter;
+import com.google.common.base.Predicate;
+
/**
* For use by repository implementations to allow a set of objects returned by a
* back-end objectstore to be filtered before being returned to the caller.
@@ -41,4 +43,5 @@ public interface Filter<T> {
* otherwise.
*/
public boolean accept(T t);
+
}
Modified: isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filters.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filters.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filters.java (original)
+++ isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/filter/Filters.java Fri Nov 23 15:50:48 2012
@@ -19,6 +19,8 @@
package org.apache.isis.applib.filter;
+import com.google.common.base.Predicate;
+
public final class Filters {
private Filters() {
@@ -87,4 +89,13 @@ public final class Filters {
return none();
}
+ public static <T> Predicate<T> asPredicate(final Filter<T> filter) {
+ return new Predicate<T>() {
+ @Override
+ public boolean apply(T candidate) {
+ return filter.accept(candidate);
+ }
+ };
+ }
+
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionFilters.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionFilters.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionFilters.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionFilters.java Fri Nov 23 15:50:48 2012
@@ -12,6 +12,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
+import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class ObjectActionFilters {
@@ -57,4 +58,13 @@ public class ObjectActionFilters {
}
};
}
+
+ public static Filter<ObjectAction> filterOfType(final ActionType type) {
+ return new Filter<ObjectAction>(){
+ @Override
+ public boolean accept(ObjectAction oa) {
+ return oa.getType() == type;
+ }
+ };
+ }
}
Copied: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java (from r1412890, isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/ObjectActions.java)
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java?p2=isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java&p1=isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/ObjectActions.java&r1=1412890&r2=1412922&rev=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/util/ObjectActions.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java Fri Nov 23 15:50:48 2012
@@ -17,33 +17,20 @@
* under the License.
*/
-package org.apache.isis.viewer.wicket.model.util;
+package org.apache.isis.core.metamodel.spec.feature;
-import com.google.common.base.Predicate;
+import java.util.List;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.named.NamedFacet;
-import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.ObjectActionSet;
+
+import com.google.common.collect.Lists;
public final class ObjectActions {
private ObjectActions() {
}
- public static Predicate<ObjectAction> ofType(final ActionType type) {
- return new Predicate<ObjectAction>() {
- @Override
- public boolean apply(final ObjectAction input) {
- return input.getType() == type;
- }
- };
- }
-
- public static String labelFor(final ObjectAction action, final ObjectAdapter contextAdapter) {
- return action.promptForParameters(contextAdapter) ? ObjectActions.nameFor(action) : nameFor(action);
- }
-
public static String nameFor(final ObjectAction noAction) {
final String actionName = noAction.getName();
if (actionName != null) {
@@ -56,4 +43,20 @@ public final class ObjectActions {
return "(no name)";
}
+ public static List<ObjectAction> flattenedActions(final List<ObjectAction> objectActions) {
+ final List<ObjectAction> actions = Lists.newArrayList();
+ for (final ObjectAction action : objectActions) {
+ if (action.getType().isSet()) {
+ final ObjectActionSet actionSet = (ObjectActionSet) action;
+ final List<ObjectAction> subActions = actionSet.getActions();
+ for (final ObjectAction subAction : subActions) {
+ actions.add(subAction);
+ }
+ } else {
+ actions.add(action);
+ }
+ }
+ return actions;
+ }
+
}
Modified: isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java (original)
+++ isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java Fri Nov 23 15:50:48 2012
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -81,7 +82,9 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.SpecificationContext;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
+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.metamodel.spec.feature.OneToManyAssociation;
@@ -730,27 +733,10 @@ public abstract class ObjectSpecificatio
return actionListToAppendTo;
}
- private List<ObjectAction> getFlattenedActions(final List<ObjectAction> objectActions, final ActionType type, final Filter<ObjectAction> filter) {
- final List<ObjectAction> actions = Lists.newArrayList();
- for (final ObjectAction action : objectActions) {
- if (action.getType().isSet()) {
- final ObjectActionSet actionSet = (ObjectActionSet) action;
- final List<ObjectAction> subActions = actionSet.getActions();
- for (final ObjectAction subAction : subActions) {
- addAction(type, actions, subAction, filter);
- }
- } else {
- addAction(type, actions, action, filter);
- }
- }
-
- return actions;
- }
-
- private void addAction(final ActionType type, final List<ObjectAction> actions, final ObjectAction subAction, Filter<ObjectAction> filter) {
- if (type.matchesTypeOf(subAction) && filter.accept(subAction)) {
- actions.add(subAction);
- }
+ @SuppressWarnings("unchecked")
+ private static List<ObjectAction> getFlattenedActions(final List<ObjectAction> objectActions, final ActionType type, final Filter<ObjectAction> filter) {
+ final List<ObjectAction> actions = ObjectActions.flattenedActions(objectActions);
+ return Lists.newArrayList(Iterables.filter(actions, Filters.asPredicate(Filters.and(ObjectActionFilters.filterOfType(type), filter))));
}
@Override
@@ -821,6 +807,11 @@ public abstract class ObjectSpecificatio
*
*/
protected List<ObjectAction> getContributedActions(final ActionType actionType, Filter<ObjectAction> filter) {
+ List<ObjectAction> contributedActionSets = getContributedActions(actionType);
+ return Lists.newArrayList(Iterables.filter(contributedActionSets, Filters.asPredicate(filter)));
+ }
+
+ private List<ObjectAction> getContributedActions(final ActionType actionType) {
if (isService()) {
return Collections.emptyList();
}
@@ -831,19 +822,19 @@ public abstract class ObjectSpecificatio
contributedActionSets = Lists.newArrayList();
final List<ObjectAdapter> services = getServicesProvider().getServices();
for (final ObjectAdapter serviceAdapter : services) {
- addContributedActionsIfAny(serviceAdapter, actionType, filter, contributedActionSets);
+ addContributedActionsIfAny(serviceAdapter, actionType, contributedActionSets);
}
contributedActionSetsByType.put(actionType, contributedActionSets);
}
return contributedActionSets;
}
- private void addContributedActionsIfAny(final ObjectAdapter serviceAdapter, final ActionType actionType, Filter<ObjectAction> filter, final List<ObjectAction> contributedActionSetsToAppendTo) {
+ private void addContributedActionsIfAny(final ObjectAdapter serviceAdapter, final ActionType actionType, final List<ObjectAction> contributedActionSetsToAppendTo) {
final ObjectSpecification specification = serviceAdapter.getSpecification();
if (specification == this) {
return;
}
- final List<ObjectAction> contributedActions = findContributedActions(specification, actionType, filter);
+ final List<ObjectAction> contributedActions = findContributedActions(specification, actionType);
// only add if there are matching subactions.
if (contributedActions.size() == 0) {
return;
@@ -852,9 +843,9 @@ public abstract class ObjectSpecificatio
contributedActionSetsToAppendTo.add(contributedActionSet);
}
- private List<ObjectAction> findContributedActions(final ObjectSpecification specification, final ActionType actionType, Filter<ObjectAction> filter) {
+ private List<ObjectAction> findContributedActions(final ObjectSpecification specification, final ActionType actionType) {
final List<ObjectAction> contributedActions = Lists.newArrayList();
- final List<ObjectAction> serviceActions = specification.getObjectActions(actionType, Contributed.INCLUDED, filter);
+ final List<ObjectAction> serviceActions = specification.getObjectActions(actionType, Contributed.INCLUDED, Filters.<ObjectAction>any());
for (final ObjectAction serviceAction : serviceActions) {
if (serviceAction.isAlwaysHidden()) {
continue;
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java Fri Nov 23 15:50:48 2012
@@ -26,11 +26,11 @@ import org.apache.wicket.request.mapper.
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
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.PageType;
-import org.apache.isis.viewer.wicket.model.util.ObjectActions;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuLinkFactory;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java Fri Nov 23 15:50:48 2012
@@ -80,7 +80,6 @@ public class BookmarkedPagesPanel extend
final AbstractLink link = Links.newBookmarkablePageLink(BOOKMARKED_PAGE_LINK, pageParameters, pageClass);
link.add(new Label(BOOKMARKED_PAGE_TITLE, BookmarkedPagesModel.titleFrom(pageParameters)));
item.add(link);
- link.setEnabled(!bookmarkedPagesModel.isCurrent(pageParameters));
}
};
container.add(listView);
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java Fri Nov 23 15:50:48 2012
@@ -28,6 +28,7 @@ import org.apache.wicket.request.mapper.
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -37,7 +38,6 @@ import org.apache.isis.viewer.wicket.mod
import org.apache.isis.viewer.wicket.model.models.ActionModel.SingleResultsMode;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.PageType;
-import org.apache.isis.viewer.wicket.model.util.ObjectActions;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuLinkFactory;
@@ -62,7 +62,7 @@ public final class EntityActionLinkFacto
final AbstractLink link = createLink(adapterMemento, action, linkId, adapter);
final ObjectAdapter contextAdapter = entityModel.getObject();
- final String label = ObjectActions.labelFor(action, contextAdapter);
+ final String label = ObjectActions.nameFor(action);
return new LinkAndLabel(link, label);
}
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java Fri Nov 23 15:50:48 2012
@@ -37,7 +37,9 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer.Contributed;
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.runtimes.dflt.runtime.system.context.IsisContext;
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.EntityModel;
@@ -102,14 +104,10 @@ public class EntityHeaderPanel extends P
final ObjectAdapter adapter = model.getObject();
final ObjectAdapterMemento adapterMemento = model.getObjectAdapterMemento();
if (adapter != null) {
- final ObjectSpecification adapterSpec = adapter.getSpecification();
-
- @SuppressWarnings("unchecked")
- final List<ObjectAction> userActions = adapterSpec.getObjectActions(ActionType.USER, Contributed.INCLUDED,
- Filters.and(memberOrderNameNotCollection(adapterSpec), dynamicallyVisibleFor(adapter)));
+ final List<ObjectAction> topLevelActions = getTopLevelActions(adapter);
- if(!userActions.isEmpty()) {
- final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(adapterMemento, getServiceAdapters(), userActions, linkFactory);
+ if(!topLevelActions.isEmpty()) {
+ final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(adapterMemento, getServiceAdapters(), topLevelActions, linkFactory);
// TODO: i18n
final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions");
@@ -121,6 +119,25 @@ public class EntityHeaderPanel extends P
permanentlyHide(ID_ENTITY_ACTIONS);
}
}
+
+ private List<ObjectAction> getTopLevelActions(final ObjectAdapter adapter) {
+ final List<ObjectAction> topLevelActions = Lists.newArrayList();
+
+ addTopLevelActions(adapter, ActionType.USER, topLevelActions);
+ if(IsisContext.getDeploymentType().isPrototyping()) {
+ addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions);
+ addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions);
+ }
+ return topLevelActions;
+ }
+
+ private void addTopLevelActions(final ObjectAdapter adapter, ActionType actionType, final List<ObjectAction> topLevelActions) {
+ final ObjectSpecification adapterSpec = adapter.getSpecification();
+ @SuppressWarnings("unchecked")
+ final List<ObjectAction> userActions = adapterSpec.getObjectActions(actionType, Contributed.INCLUDED,
+ Filters.and(memberOrderNameNotCollection(adapterSpec), dynamicallyVisibleFor(adapter)));
+ topLevelActions.addAll(ObjectActions.flattenedActions(userActions));
+ }
private Filter<ObjectAction> memberOrderNameNotCollection(final ObjectSpecification adapterSpec) {
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java Fri Nov 23 15:50:48 2012
@@ -28,13 +28,16 @@ import com.google.common.collect.Collect
import org.apache.wicket.Application;
+import org.apache.isis.applib.filter.Filters;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.progmodel.facets.actions.notcontributed.NotContributedFacet;
+import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.util.ObjectActions;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem.Builder;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel.Style;
@@ -66,22 +69,18 @@ public class CssMenuBuilder {
}
private void addMenuItems(final CssMenuItem parent, final List<ObjectAction> actions) {
- addMenuItemsForActionsOfType(parent, actions, ActionType.SET);
addMenuItemsForActionsOfType(parent, actions, ActionType.USER);
- if (isExplorationMode()) {
+ if (isPrototyping()) {
addMenuItemsForActionsOfType(parent, actions, ActionType.EXPLORATION);
+ addMenuItemsForActionsOfType(parent, actions, ActionType.PROTOTYPE);
}
if (isDebugMode()) {
addMenuItemsForActionsOfType(parent, actions, ActionType.DEBUG);
}
}
- /**
- * Protected so can be overridden in testing if required.
- */
- protected boolean isExplorationMode() {
- //return Application.get().getConfigurationType().equalsIgnoreCase(Application.DEVELOPMENT);
- return Application.get().usesDeploymentConfig();
+ public boolean isPrototyping() {
+ return IsisContext.getDeploymentType().isPrototyping();
}
/**
@@ -95,7 +94,7 @@ public class CssMenuBuilder {
}
private void addMenuItemsForActionsOfType(final CssMenuItem parent, final List<ObjectAction> actions, final ActionType type) {
- final Collection<ObjectAction> filterActionsOfType = Collections2.filter(actions, ObjectActions.ofType(type));
+ final Collection<ObjectAction> filterActionsOfType = Collections2.filter(actions, Filters.asPredicate(ObjectActionFilters.filterOfType(type)));
for (final ObjectAction action : filterActionsOfType) {
addMenuItem(parent, action);
}
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html Fri Nov 23 15:50:48 2012
@@ -58,7 +58,7 @@
<div id="footer">
<div class="links">
- powered by: <a href="http://incubator.apache.org/isis">Apache Isis (incubating)</a>
+ powered by: <a href="http://isis.apache.org">Apache Isis</a>
</div>
</div>
Modified: isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
URL: http://svn.apache.org/viewvc/isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java?rev=1412922&r1=1412921&r2=1412922&view=diff
==============================================================================
--- isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java (original)
+++ isis/trunk/framework/viewer/wicket/wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java Fri Nov 23 15:50:48 2012
@@ -23,20 +23,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-
-import org.apache.wicket.RestartResponseAtInterceptPageException;
-import org.apache.wicket.markup.head.CssReferenceHeaderItem;
-import org.apache.wicket.markup.head.HeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -52,6 +38,18 @@ import org.apache.isis.viewer.wicket.ui.
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.pages.about.AboutPage;
import org.apache.isis.viewer.wicket.ui.pages.login.WicketSignInPage;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
+import org.apache.wicket.markup.head.CssReferenceHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
/**
* Convenience adapter for {@link WebPage}s built up using {@link ComponentType}