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/06/27 11:22:10 UTC

[2/2] git commit: ISIS-447: prototype class for prototype/exploration actions.

ISIS-447: prototype class for prototype/exploration actions.


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

Branch: refs/heads/master
Commit: 56b558c543a5c27b999f4089b05c5c3a811caf65
Parents: bfa434b
Author: Dan Haywood <da...@apache.org>
Authored: Thu Jun 27 10:11:50 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Jun 27 10:11:50 2013 +0100

----------------------------------------------------------------------
 .../viewer/wicket/model/links/LinkAndLabel.java |  9 +++++-
 .../additionallinks/AdditionalLinksPanel.java   |  5 +++-
 .../cssmenu/AppActionsCssMenuLinkFactory.java   |  6 ++--
 .../ajaxtable/BulkActionsLinkFactory.java       |  2 +-
 .../entity/EntityActionLinkFactory.java         |  5 ++--
 .../components/widgets/cssmenu/CssMenuItem.java | 31 ++++++++++++++++++--
 .../entitylink/EntityLinkSelect2Panel.html      |  4 +--
 .../entitylink/EntityLinkSelect2Panel.java      |  2 +-
 .../viewer/wicket/ui/pages/PageAbstract.css     |  7 ++++-
 9 files changed, 57 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/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 9aca2ea..717a528 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
@@ -30,12 +30,14 @@ public class LinkAndLabel implements Serializable {
     private final String label;
     private final String disabledReasonIfAny;
     private final boolean blobOrClob;
+    private final boolean prototype;
 
-    public LinkAndLabel(final AbstractLink link, final String label, String disabledReasonIfAny, boolean blobOrClob) {
+    public LinkAndLabel(final AbstractLink link, final String label, String disabledReasonIfAny, final boolean blobOrClob, final boolean prototype) {
         this.link = link;
         this.label = label;
         this.disabledReasonIfAny = disabledReasonIfAny;
         this.blobOrClob = blobOrClob;
+        this.prototype = prototype;
     }
 
     public AbstractLink getLink() {
@@ -53,4 +55,9 @@ public class LinkAndLabel implements Serializable {
     public boolean isBlobOrClob() {
         return blobOrClob;
     }
+ 
+    public boolean isPrototype() {
+        return prototype;
+    }
+    
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
index 434b6b1..92b7162 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
@@ -77,7 +77,10 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                     viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny));
                 }
                 if(linkAndLabel.isBlobOrClob()) {
-                    link.add(new AttributeModifier("class", Model.of("noVeil")));
+                    link.add(new CssClassAppender("noVeil"));
+                }
+                if(linkAndLabel.isPrototype()) {
+                    link.add(new CssClassAppender("prototype"));
                 }
                 viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel())));
                 link.addOrReplace(viewTitleLabel);

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/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 d6df1a5..9e77876 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
@@ -50,8 +50,10 @@ class AppActionsCssMenuLinkFactory implements CssMenuLinkFactory {
         final AbstractLink link = Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
         final String actionLabel = ObjectActions.nameFor(action);
 
-        boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
-        return new LinkAndLabel(link, actionLabel, null, blobOrClob);
+        final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
+        final boolean prototype = CssMenuItem.isExplorationOrPrototype(action);
+        
+        return new LinkAndLabel(link, actionLabel, null, blobOrClob, prototype);
     }
 
     

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/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 e2481de..f80c8ef 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
@@ -101,6 +101,6 @@ final class BulkActionsLinkFactory implements CssMenuLinkFactory {
 
         };
         link.add(new JGrowlBehaviour());
-        return new LinkAndLabel(link, objectAction.getName(), null, false);
+        return new LinkAndLabel(link, objectAction.getName(), null, false, CssMenuItem.isExplorationOrPrototype(objectAction));
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/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 14714e3..99335b8 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
@@ -82,8 +82,9 @@ public final class EntityActionLinkFactory implements CssMenuLinkFactory {
             link.setEnabled(false);
         }
 
-        boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
-        return new LinkAndLabel(link, label, disabledReasonIfAny, blobOrClob);
+        final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
+        final boolean prototype = CssMenuItem.isExplorationOrPrototype(action);
+        return new LinkAndLabel(link, label, disabledReasonIfAny, blobOrClob, prototype);
     }
 
     private AbstractLink createLink(final ObjectAdapterMemento adapterMemento, final ObjectAction action, final String linkId, final ObjectAdapter adapter) {

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/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 4f6417b..4c566d7 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
@@ -103,6 +103,11 @@ public class CssMenuItem implements Serializable {
             return cssMenuItem;
         }
 
+        public Builder prototyping(boolean prototype) {
+            cssMenuItem.setPrototyping(prototype);
+            return this;
+        }
+        
         /**
          * Returns the built {@link CssMenuItem}, associating with
          * {@link #parent(CssMenuItem) parent} (if specified).
@@ -113,6 +118,7 @@ public class CssMenuItem implements Serializable {
             }
             return cssMenuItem;
         }
+
     }
 
     private final String name;
@@ -123,12 +129,14 @@ public class CssMenuItem implements Serializable {
     private boolean enabled = true; // unless disabled
     private String disabledReason;
     private boolean blobOrClob = false; // unless set otherwise
+    private boolean prototype = false; // unless set otherwise
 
     static final String ID_MENU_LABEL = "menuLabel";
 
     static final String ID_SUB_MENU_ITEMS = "subMenuItems";
 
 
+
     /**
      * Factory method returning {@link Builder builder}.
      */
@@ -136,6 +144,14 @@ public class CssMenuItem implements Serializable {
         return new Builder(name);
     }
 
+    /**
+     * @param prototype
+     */
+    public void setPrototyping(boolean prototype) {
+        this.prototype = prototype;
+        
+    }
+
     private CssMenuItem(final String name) {
         this.name = name;
     }
@@ -238,9 +254,10 @@ public class CssMenuItem implements Serializable {
         final String reasonDisabledIfAny = usability.getReason();
         
         // check if returns blob or clob (if so, then add CSS to suppress veil)
-        boolean blobOrClob = returnsBlobOrClob(objectAction);
+        final boolean blobOrClob = returnsBlobOrClob(objectAction);
+        final boolean prototype = isExplorationOrPrototype(objectAction);
 
-        return newSubMenuItem(actionLabel).link(link).enabled(reasonDisabledIfAny).returnsBlobOrClob(blobOrClob);
+        return newSubMenuItem(actionLabel).link(link).enabled(reasonDisabledIfAny).returnsBlobOrClob(blobOrClob).prototyping(prototype);
     }
 
     public static boolean returnsBlobOrClob(final ObjectAction objectAction) {
@@ -255,6 +272,10 @@ public class CssMenuItem implements Serializable {
         return blobOrClob;
     }
 
+    public static boolean isExplorationOrPrototype(final ObjectAction action) {
+        return action.getType().isExploration() || action.getType().isPrototype();
+    }
+
     
     /**
      * Creates a {@link Builder} for a submenu item where the provided {@link CssMenuLinkFactory} is able to provide the target adapter. 
@@ -291,7 +312,10 @@ public class CssMenuItem implements Serializable {
             link.add(label);
             
             if(this.blobOrClob) {
-                link.add(new AttributeModifier("class", Model.of("noVeil")));
+                link.add(new CssClassAppender("noVeil"));
+            }
+            if(this.prototype) {
+                link.add(new CssClassAppender("prototype"));
             }
             // .. and hide label
             Components.permanentlyHide(markupContainer, CssMenuItem.ID_MENU_LABEL);
@@ -302,6 +326,7 @@ public class CssMenuItem implements Serializable {
             // ... and show label, along with disabled reason
             label.add(new AttributeModifier("title", Model.of(this.getDisabledReason())));
             label.add(new AttributeModifier("class", Model.of("disabled")));
+
             markupContainer.add(label);
 
             return label;

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
index 62b0add..c3109ca 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
@@ -41,8 +41,8 @@
 					</div>
 				    <div class="clear"/>
 	  			</div>
-			    <div class="feedbackPanel">
-			        <span wicket:id="feedback"/>
+			    <div class="xfeedbackPanel">
+			        <span xwicket:id="feedback"/>
 			    </div>
 			</div>
 		</wicket:panel>

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
index d93c45a..67259d4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
@@ -93,7 +93,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
      * Builds the parts of the GUI that are not dynamic.
      */
     private void buildGui() {
-        addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, this));
+        //addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, this));
         syncWithInput();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
index 157e17e..d988bfe 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
@@ -235,6 +235,11 @@ colors
     	font-weight:bold;
 	}
 	
+    #applicationActions .cssMenuPanel .menuh a.prototype span {
+	    color: lightblue;
+	}
+	
+	
 	#applicationActions .cssMenuPanel .menuh li a:link, 
 	#applicationActions .cssMenuPanel .menuh li a:visited, 
 	#applicationActions .cssMenuPanel .menuh li a:active, 
@@ -291,7 +296,7 @@ colors
 	    padding: 0px 1em 0px 1em;
 	    background-image:none !important;
 	}
-	
+
 	#applicationActions .cssMenuPanel .menuh li:hover a, 
 	#applicationActions .cssMenuPanel .menuh li:hover p {
 		color: #FFFFFF;