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 2013/04/16 21:21:53 UTC
git commit: ISIS-385: disables action buttons by collections
Updated Branches:
refs/heads/master 905f8d2db -> 02fe0e304
ISIS-385: disables action buttons by collections
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/02fe0e30
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/02fe0e30
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/02fe0e30
Branch: refs/heads/master
Commit: 02fe0e304fde18d67dc8af425fc0cfc892f87049
Parents: 905f8d2
Author: Dan Haywood <da...@apache.org>
Authored: Tue Apr 16 20:21:08 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Tue Apr 16 20:21:08 2013 +0100
----------------------------------------------------------------------
.../viewer/wicket/model/links/LinkAndLabel.java | 8 ++-
.../wicket/model/models/EntityCollectionModel.java | 19 ++++-
.../cssmenu/AppActionsCssMenuLinkFactory.java | 2 +-
.../ui/components/collection/CollectionPanel.java | 4 +-
.../ajaxtable/BulkActionsLinkFactory.java | 2 +-
.../CollectionContentsAsAjaxTablePanel.java | 3 +-
.../components/entity/EntityActionLinkFactory.java | 29 ++++++-
.../entity/header/EntityHeaderPanel.java | 9 ++-
.../ui/components/widgets/cssmenu/CssMenuItem.java | 5 +-
.../ui/components/widgets/cssmenu/CssMenuPanel.css | 70 +++++++++------
.../selector/links/LinksSelectorPanelAbstract.java | 4 +
.../ui/selector/links/images/icon_calendar_off.png | Bin 297 -> 0 bytes
.../ui/selector/links/images/icon_calendar_on.png | Bin 280 -> 0 bytes
.../dom/src/main/java/dom/todo/ToDoItem.java | 9 ++
.../quickstart_wicket_restful_jdo/pom.xml | 43 ++++++----
.../viewer-webapp/pom.xml | 7 ++
16 files changed, 154 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index ee15855..e037774 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -28,10 +28,12 @@ public class LinkAndLabel implements Serializable {
private final AbstractLink link;
private final String label;
+ private final String disabledReasonIfAny;
- public LinkAndLabel(final AbstractLink link, final String label) {
+ public LinkAndLabel(final AbstractLink link, final String label, String disabledReasonIfAny) {
this.link = link;
this.label = label;
+ this.disabledReasonIfAny = disabledReasonIfAny;
}
public AbstractLink getLink() {
@@ -41,4 +43,8 @@ public class LinkAndLabel implements Serializable {
public String getLabel() {
return label;
}
+
+ public String getDisabledReasonIfAny() {
+ return disabledReasonIfAny;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index 5b28090..59dc791 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -31,6 +31,7 @@ import org.apache.wicket.Component;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -77,6 +78,12 @@ public class EntityCollectionModel extends ModelAbstract<List<ObjectAdapter>> im
entityCollectionModel.mementoList = Lists.newArrayList(Lists.transform(list, ObjectAdapters.toMemento()));
}
+ @Override
+ public String getName(EntityCollectionModel model) {
+ PluralFacet facet = model.getTypeOfSpecification().getFacet(PluralFacet.class);
+ return facet.value();
+ }
+
},
/**
* A collection of an entity (eg Order/OrderDetail).
@@ -106,11 +113,18 @@ public class EntityCollectionModel extends ModelAbstract<List<ObjectAdapter>> im
// no-op
throw new UnsupportedOperationException();
}
+
+ @Override
+ public String getName(EntityCollectionModel model) {
+ return model.getCollectionMemento().getName();
+ }
};
abstract List<ObjectAdapter> load(EntityCollectionModel entityCollectionModel);
abstract void setObject(EntityCollectionModel entityCollectionModel, List<ObjectAdapter> list);
+
+ public abstract String getName(EntityCollectionModel entityCollectionModel);
}
/**
@@ -222,10 +236,11 @@ public class EntityCollectionModel extends ModelAbstract<List<ObjectAdapter>> im
* {@link #isParented() is parented}.)
*
* <p>
- * Will returns <tt>null</tt> otherwise.
+ * If {@link #isStandalone()}, returns the {@link PluralFacet} of the {@link #getTypeOfSpecification() specification}
+ * (eg 'Customers').
*/
public String getName() {
- return getCollectionMemento().getName();
+ return type.getName(this);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
index 754f6a5..01c339c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
@@ -49,7 +49,7 @@ class AppActionsCssMenuLinkFactory implements CssMenuLinkFactory {
final AbstractLink link = Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
final String actionLabel = ObjectActions.nameFor(action);
- return new LinkAndLabel(link, actionLabel);
+ return new LinkAndLabel(link, actionLabel, null);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index 6823de1..b1487e8 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -88,8 +88,8 @@ public class CollectionPanel extends PanelAbstract<EntityCollectionModel> {
return Lists.transform(userActions, new Function<ObjectAction, LinkAndLabel>(){
@Override
- public LinkAndLabel apply(ObjectAction arg0) {
- return linkFactory.newLink(adapterMemento, arg0, LinksSelectorPanelAbstract.ID_ADDITIONAL_LINK);
+ public LinkAndLabel apply(ObjectAction objectAction) {
+ return linkFactory.newLink(adapterMemento, objectAction, LinksSelectorPanelAbstract.ID_ADDITIONAL_LINK);
}});
}
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/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 b35698e..0f28bab 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
@@ -100,6 +100,6 @@ final class BulkActionsLinkFactory implements CssMenuLinkFactory {
}
};
link.add(new JGrowlBehaviour());
- return new LinkAndLabel(link, objectAction.getName());
+ return new LinkAndLabel(link, objectAction.getName(), null);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/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 1156a09..638dc2e 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
@@ -50,7 +50,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
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;
-import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ColumnAbstract;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterPropertyColumn;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterSelectColumn;
@@ -182,7 +181,7 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
}
}
- Filter<ObjectAssociation> associationDoesNotReferenceParent(final ObjectSpecification parentSpec) {
+ static Filter<ObjectAssociation> associationDoesNotReferenceParent(final ObjectSpecification parentSpec) {
if(parentSpec == null) {
return Filters.any();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
index 6f5c4b1..4522efe 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
@@ -20,13 +20,18 @@
package org.apache.isis.viewer.wicket.ui.components.entity;
import org.apache.wicket.Application;
+import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
+import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -61,9 +66,24 @@ public final class EntityActionLinkFactory implements CssMenuLinkFactory {
final ObjectAdapter adapter = adapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK);
final AbstractLink link = createLink(adapterMemento, action, linkId, adapter);
+ //action
final String label = ObjectActions.nameFor(action);
- return new LinkAndLabel(link, label);
+ // check visibility and whether enabled
+ final AuthenticationSession session = getAuthenticationSession();
+
+ final Consent visibility = action.isVisible(session, adapter, Where.OBJECT_FORMS);
+ if (visibility.isVetoed()) {
+ return null;
+ }
+
+ final Consent usability = action.isUsable(session, adapter, Where.OBJECT_FORMS);
+ final String disabledReasonIfAny = usability.getReason();
+ if(disabledReasonIfAny != null) {
+ link.setEnabled(false);
+ }
+
+ return new LinkAndLabel(link, label, disabledReasonIfAny);
}
private AbstractLink createLink(final ObjectAdapterMemento adapterMemento, final ObjectAction action, final String linkId, final ObjectAdapter adapter) {
@@ -105,14 +125,17 @@ public final class EntityActionLinkFactory implements CssMenuLinkFactory {
// Dependencies (from IsisContext)
// ///////////////////////////////////////////////////////////////////
- public IsisContext getIsisContext() {
+ protected IsisContext getIsisContext() {
return IsisContext.getInstance();
}
- public PersistenceSession getPersistenceSession() {
+ protected PersistenceSession getPersistenceSession() {
return IsisContext.getPersistenceSession();
}
+ protected AuthenticationSession getAuthenticationSession() {
+ return IsisContext.getAuthenticationSession();
+ }
// ///////////////////////////////////////////////////////////////////
// Convenience
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index f437c0a..326a24b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -39,6 +39,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer.Contrib
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.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
@@ -108,7 +109,6 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> implements Act
if(!topLevelActions.isEmpty()) {
final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(adapterMemento, getServiceAdapters(), topLevelActions, linkFactory);
- // TODO: i18n
final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions");
this.addOrReplace(cssMenuPanel);
@@ -124,7 +124,7 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> implements Act
final List<ObjectAction> topLevelActions = Lists.newArrayList();
addTopLevelActions(adapter, ActionType.USER, topLevelActions);
- if(IsisContext.getDeploymentType().isPrototyping()) {
+ if(getDeploymentType().isPrototyping()) {
addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions);
addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions);
}
@@ -192,4 +192,9 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> implements Act
}
+ protected DeploymentType getDeploymentType() {
+ return IsisContext.getDeploymentType();
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
index 1b2ad97..d4c5148 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
@@ -45,6 +45,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.consent.Consent;
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.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
@@ -290,11 +291,11 @@ public class CssMenuItem implements Serializable {
}
// //////////////////////////////////////////////////////////////
- // Build wicket components from the menu item.
+ // dependencies
// //////////////////////////////////////////////////////////////
protected AuthenticationSession getAuthenticationSession() {
- return ((AuthenticationSessionProvider) Application.get()).getAuthenticationSession();
+ return IsisContext.getAuthenticationSession();
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css
index 94c3a67..abe5df2 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css
@@ -266,13 +266,11 @@
text-decoration: underline;
}
-.entityActions .cssMenuPanel .menuh a:hover,.entityActions .cssMenuPanel .menuh p:hover
- {
+.entityActions .cssMenuPanel .menuh a:hover,.entityActions .cssMenuPanel .menuh p:hover {
color: #000;
background-color:#FFFFFF;
}
-
.additionalLinkList {
float:right;
margin:0px;
@@ -280,27 +278,45 @@
list-style:none;
}
- .additionalLinkList li {
- float:left;
- margin-right:10px;
- }
-
- .additionalLinkList li a {
- background-color: #F0EFEA;
- border-radius: 4px 4px 4px 4px;
- color: #46423C;
- display: block;
- float: left;
- font-size: 0.85em;
- font-weight: bold;
- height: 30px;
- line-height: 30px;
- padding: 0 10px;
- text-decoration: none;
- text-transform: uppercase;
- }
-
- .additionalLinkList li a:hover {
- background-color:#20B5C2;
- color:#FFFFFF;
- }
\ No newline at end of file
+.additionalLinkList li {
+ float:left;
+ margin-right:10px;
+}
+
+.additionalLinkList li em {
+ font-style: normal;
+}
+
+.additionalLinkList li a,
+.additionalLinkList li em {
+ background-color: #F0EFEA;
+ border-radius: 4px 4px 4px 4px;
+ display: block;
+ float: left;
+ font-size: 0.85em;
+ font-weight: bold;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 10px;
+ text-decoration: none;
+ text-transform: uppercase;
+}
+
+.additionalLinkList li a {
+ color: #46423C;
+}
+
+.additionalLinkList li em {
+ color: grey;
+}
+
+.additionalLinkList li a:hover {
+ background-color:#20B5C2;
+ color:#FFFFFF;
+}
+
+.additionalLinkList li em:hover {
+ color: grey;
+ background-color:#FFFFFF;
+ cursor: default;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java
index 050b9be..87e0db1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java
@@ -109,6 +109,10 @@ public abstract class LinksSelectorPanelAbstract<T extends IModel<?>> extends Pa
final AbstractLink link = linkAndLabel.getLink();
Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel());
+ String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny();
+ if(disabledReasonIfAny != null) {
+ viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny));
+ }
viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel())));
link.addOrReplace(viewTitleLabel);
item.addOrReplace(link);
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_off.png
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_off.png b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_off.png
deleted file mode 100644
index 5fa3a0e..0000000
Binary files a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_off.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_on.png
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_on.png b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_on.png
deleted file mode 100644
index fd011c4..0000000
Binary files a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/images/icon_calendar_on.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index acc0382..42831bb 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -321,6 +321,12 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
getDependencies().add(toDoItem);
return this;
}
+ public String disableAdd(final ToDoItem toDoItem) {
+ if(isComplete()) {
+ return "Cannot add dependencies for items that are complete";
+ }
+ return null;
+ }
public String validateAdd(final ToDoItem toDoItem) {
if(getDependencies().contains(toDoItem)) {
return "Already a dependency";
@@ -339,6 +345,9 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
return this;
}
public String disableRemove(final ToDoItem toDoItem) {
+ if(isComplete()) {
+ return "Cannot remove dependencies for items that are complete";
+ }
return getDependencies().isEmpty()? "No dependencies to remove": null;
}
public String validateRemove(final ToDoItem toDoItem) {
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/example/application/quickstart_wicket_restful_jdo/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/pom.xml b/example/application/quickstart_wicket_restful_jdo/pom.xml
index 229b2d1..5621971 100644
--- a/example/application/quickstart_wicket_restful_jdo/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/pom.xml
@@ -114,24 +114,24 @@
<version>6.1.25</version>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.4</version>
- </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>1.4</version>
+ </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.6</version>
- <executions>
- <execution>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<!-- http://simplericity.com/2009/11/10/1257880778509.html -->
<plugin>
<groupId>org.simplericity.jettyconsole</groupId>
@@ -344,6 +344,15 @@
</dependency>
-->
+ <!--
+ EXCEL: uncomment to use https://github.com/danhaywood/isis-wicket-excel
+ <dependency>
+ <groupId>com.danhaywood.isis.wicket.ui.components</groupId>
+ <artifactId>danhaywood-isis-wicket-excel</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+ -->
+
</dependencies>
</dependencyManagement>
http://git-wip-us.apache.org/repos/asf/isis/blob/02fe0e30/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
index 1e8cf25..ec0809f 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
@@ -297,6 +297,13 @@
<artifactId>danhaywood-isis-wicket-wickedcharts-summarycharts</artifactId>
</dependency>
-->
+ <!--
+ EXCEL: uncomment to use https://github.com/danhaywood/isis-wicket-excel
+ <dependency>
+ <groupId>com.danhaywood.isis.wicket.ui.components</groupId>
+ <artifactId>danhaywood-isis-wicket-excel</artifactId>
+ </dependency>
+ -->
</dependencies>