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/05/11 11:24:43 UTC

git commit: ISIS-403: can now remove individual bookmarks from panel

Updated Branches:
  refs/heads/master 7533ebd8a -> 9a8c181db


ISIS-403: can now remove individual bookmarks from panel

Bookmark panel now also appears on home page and about page

Also some minor CSS restyling...
* made margins a little smaller
* float object actions to the left, not right (after title)
* increased font size for drop-down box
* increased font size for string panel


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

Branch: refs/heads/master
Commit: 9a8c181dbbca5978b023e1d588209aba34255c05
Parents: 7533ebd
Author: Dan Haywood <da...@apache.org>
Authored: Sat May 11 11:24:20 2013 +0200
Committer: Dan Haywood <da...@apache.org>
Committed: Sat May 11 11:24:20 2013 +0200

----------------------------------------------------------------------
 .../wicket/model/models/BookmarkedPagesModel.java  |    5 +
 .../bookmarkedpages/BookmarkedPagesPanel.css       |   24 +++-
 .../bookmarkedpages/BookmarkedPagesPanel.html      |   19 ++-
 .../bookmarkedpages/BookmarkedPagesPanel.java      |   68 ++++++---
 .../bookmarkedpages/images/clear_bookmarks.png     |  Bin 0 -> 407 bytes
 .../bookmarkedpages/images/icon_clear.png          |  Bin 455 -> 0 bytes
 .../CollectionContentsAsAjaxTablePanel.css         |    3 +-
 .../entity/collections/EntityCollectionsPanel.css  |    4 +-
 .../components/entity/header/EntityHeaderPanel.css |    2 +-
 .../entity/properties/EntityPropertiesPanel.css    |    2 +-
 .../entity/properties/EntityPropertiesPanel.html   |   20 +---
 .../ui/components/scalars/string/StringPanel.css   |    4 +
 .../isis/viewer/wicket/ui/pages/PageAbstract.css   |    9 +-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |    2 +-
 .../viewer/wicket/ui/pages/about/AboutPage.html    |    1 +
 .../viewer/wicket/ui/pages/about/AboutPage.java    |    1 +
 .../viewer/wicket/ui/pages/action/ActionPage.html  |    2 +-
 .../viewer/wicket/ui/pages/entity/EntityPage.html  |    2 +-
 .../isis/viewer/wicket/ui/pages/home/HomePage.html |    1 +
 .../isis/viewer/wicket/ui/pages/home/HomePage.java |    1 +
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |    8 +-
 .../dom/src/main/java/dom/todo/ToDoItem.java       |  113 +++++++++------
 22 files changed, 183 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
index 5c3192e..1696b7d 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
@@ -122,4 +122,9 @@ public class BookmarkedPagesModel extends ModelAbstract<List<? extends BookmarkT
     }
 
 
+    public void remove(BookmarkTreeNode rootNode) {
+        this.rootNodes.remove(rootNode);
+    }
+
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.css
index 1ced8c1..4071d88 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.css
@@ -87,7 +87,6 @@
 	margin-top: 30px;
 	margin-bottom: 10px;
 	margin-right: 5px;
-	margin-left: 10px;
 }
 
 .bookmarkedPagesPanel .currentBookmark span.bookmarkedPageImageAndTitle,
@@ -106,7 +105,7 @@
     display:block;
     cursor:pointer;
     background-color: #40C0CB;
-    z-index: 2;
+    z-index: 999;
     
     text-transform:uppercase;
     font-weight:bold;
@@ -120,7 +119,7 @@
     background-color:#F0EFEA;
     height:800px;
     width:0;/*new line*/
-    z-index: 1;
+    z-index: 998;
 }
 #bookmarkedPagesSlidingDiv .content {
     width:290px;
@@ -147,4 +146,21 @@
 }
 .bookmarkDepth5 {
     padding-left: 100px;  
-}
\ No newline at end of file
+}
+
+.clearBookmarkPlaceHolder {
+	position: relative;
+	top: -7px;
+    width: 20px;
+    padding-right: 20px;
+    padding-bottom: 40px;
+}
+
+.clearBookmark,
+.clearBookmarks {
+    background: url('images/clear_bookmarks.png') no-repeat;
+}
+
+.clearBookmarks span {
+	padding-left: 25px;
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
index 98347c2..62bae65 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
@@ -29,15 +29,20 @@
             <div id="bookmarkedPagesSlidingDiv">
                 <div class="content">
                     <div id="bookmarkedPages" class="bookmarkedPagesPanel bookmarkedPagesComponentType">
-                        <a href="#" wicket:id="clearBookmarks" class="clearBookmarks" title="Clear Bookmarks">clear</a>
+                        <a href="#" wicket:id="clearBookmarks" class="clearBookmarks" title="Clear Bookmarks">
+                            <span>clear all</span>
+                        </a>
                         <ul wicket:id="bookmarkList" class="bookmarkedPagesList">
                           <li wicket:id="bookmarkedPageItem" class="bookmarkedPageItem">
-                            <a href="#" wicket:id="bookmarkedPageLink">
-                                <span class="bookmarkedPageImageAndTitle">
-                                    <img wicket:id="bookmarkedPageImage" class="bookmarkedPageImage"/>
-                                    <span wicket:id="bookmarkedPageTitle" class="bookmarkedPageTitle">[link title]</span>
-                                </span>
-                            </a>
+                            <span>
+                                <a href="#" wicket:id="clearBookmarkLink" class="clearBookmarkPlaceHolder"></a>
+                                <a href="#" wicket:id="bookmarkedPageLink">
+                                    <span class="bookmarkedPageImageAndTitle">
+                                        <img wicket:id="bookmarkedPageImage" class="bookmarkedPageImage"/>
+                                        <span wicket:id="bookmarkedPageTitle" class="bookmarkedPageTitle">[link title]</span>
+                                    </span>
+                                </a>
+                            </span>
                           </li>
                         </ul>
                     </div>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
index 63ab4fb..b1994a0 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
@@ -30,6 +30,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.image.Image;
 import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -57,6 +58,7 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
     
     private static final String ID_BOOKMARK_LIST = "bookmarkList";
     private static final String ID_BOOKMARKED_PAGE_LINK = "bookmarkedPageLink";
+    private static final String ID_CLEAR_BOOKMARK_LINK = "clearBookmarkLink";
     private static final String ID_BOOKMARKED_PAGE_ITEM = "bookmarkedPageItem";
     private static final String ID_BOOKMARKED_PAGE_TITLE = "bookmarkedPageTitle";
     
@@ -89,17 +91,58 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
 
         final BookmarkedPagesModel bookmarkedPagesModel = getModel();
 
+        final AjaxLink<Void> clearAllBookmarksLink = new AjaxLink<Void>(CLEAR_BOOKMARKS){
+
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public void onClick(AjaxRequestTarget target) {
+                BookmarkedPagesPanel.this.getModel().clear();
+                setEnabled(false);
+                target.add(container, this);
+            }
+        };
+        clearAllBookmarksLink.setOutputMarkupId(true);
+        add(clearAllBookmarksLink);
+        clearAllBookmarksLink.setOutputMarkupId(true);
+
+        if(getModel().isEmpty()) {
+            clearAllBookmarksLink.setVisible(false);
+        }
+
+
         final ListView<BookmarkTreeNode> listView = new ListView<BookmarkTreeNode>(ID_BOOKMARKED_PAGE_ITEM, bookmarkedPagesModel) {
 
             private static final long serialVersionUID = 1L;
 
             @Override
             protected void populateItem(ListItem<BookmarkTreeNode> item) {
-                final BookmarkTreeNode rootNode = item.getModelObject();
-                final PageParameters pageParameters = rootNode.getPageParameters();
+                final BookmarkTreeNode node = item.getModelObject();
+                final PageParameters pageParameters = node.getPageParameters();
                 
                 final PageType pageType = PageParameterNames.PAGE_TYPE.getEnumFrom(pageParameters, PageType.class);
                 final Class<? extends Page> pageClass = pageClassRegistry.getPageClass(pageType);
+
+                final AjaxLink<Object> clearBookmarkLink = new AjaxLink<Object>(ID_CLEAR_BOOKMARK_LINK) {
+
+                    private static final long serialVersionUID = 1L;
+                    
+                    @Override
+                    public void onClick(AjaxRequestTarget target) {
+                        bookmarkedPagesModel.remove(node);
+                        if(bookmarkedPagesModel.isEmpty()) {
+                            permanentlyHide(CLEAR_BOOKMARKS);
+                        }
+                        target.add(container, clearAllBookmarksLink);
+                    }
+                    
+                };
+                if(node.getDepth() == 0) {
+                    clearBookmarkLink.add(new CssClassAppender("clearBookmark"));
+                } else {
+                    clearBookmarkLink.setEnabled(true);
+                }
+                item.add(clearBookmarkLink);
                 
                 final AbstractLink link = Links.newBookmarkablePageLink(ID_BOOKMARKED_PAGE_LINK, pageParameters, pageClass);
 
@@ -126,28 +169,11 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
                 if(bookmarkedPagesModel.isCurrent(pageParameters)) {
                     item.add(new CssClassAppender("currentBookmark"));
                 }
-                item.add(new CssClassAppender("bookmarkDepth" + rootNode.getDepth()));
+                item.add(new CssClassAppender("bookmarkDepth" + node.getDepth()));
             }
         };
         container.add(listView);
-        
-        if(!getModel().isEmpty()) {
-            final AjaxLink<Void> ajaxLink = new AjaxLink<Void>(CLEAR_BOOKMARKS){
-    
-                private static final long serialVersionUID = 1L;
-    
-                @Override
-                public void onClick(AjaxRequestTarget target) {
-                    BookmarkedPagesPanel.this.getModel().clear();
-                    setEnabled(false);
-                    target.add(container, this);
-                }
-            };
-            ajaxLink.setOutputMarkupId(true);
-            add(ajaxLink);
-        } else {
-            permanentlyHide(CLEAR_BOOKMARKS);
-        }
+
 
     }
     

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/clear_bookmarks.png
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/clear_bookmarks.png b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/clear_bookmarks.png
new file mode 100644
index 0000000..b798031
Binary files /dev/null and b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/clear_bookmarks.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/icon_clear.png
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/icon_clear.png b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/icon_clear.png
deleted file mode 100644
index 3e58109..0000000
Binary files a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/images/icon_clear.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
index ece5d60..4fbfe74 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
@@ -150,7 +150,8 @@
 }
 
 .collectionContentsAsAjaxTablePanel .actions {
-    float: right;
+	margin-top: -1px;
+    float: left;
     padding:0em 0em;
 }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.css
index 9d2f551..c2db15f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.css
@@ -22,8 +22,8 @@
  
 .entityCollectionsPanel fieldset legend {
 	position:absolute;
-	left:20px;
-	top:20px;
+	left:10px;
+	top:10px;
 }
 
 .entityCollectionsPanel .actions {

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.css
index a242649..8d5246a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.css
@@ -28,7 +28,7 @@ div.entityHeaderPanel .iconAndTitle{
 }
 
 div.entityHeaderPanel .actions {
-	float: right;
+	float: left;
     padding:0em 0em;
 }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
index 4fa4ed8..20dfa96 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
@@ -18,7 +18,7 @@
  */
 .entityPropertiesPanel fieldset {
 	margin: 0px 0px 10px 0px;
-	padding:20px;
+	padding:10px 10px 0px 10px;
 	border-radius: 4px;
 }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index 0c4d8ee..107215a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -38,27 +38,13 @@
 				    	<input type="submit" class="ok" wicket:id="ok"/>
 				    	<input type="submit" class="cancel" wicket:id="cancel"/>
 
-                        <div id="veil" 
-                            style="display:none;
-                                   position:absolute;
-                                   top:0;
-                                   left:0;
-                                   z-index=99999;
-                                   height: 100%;
-                                   width: 100%;
-                                   background: rgb(0, 0, 0) transparent;
-                                   background-color:rgba(0,0,0,0.2);">
-                            <div style="display: relative;">
+                        <div id="veil" style="position:fixed;"> 
+                            <div class="imgHolder">
                                 <wicket:link>
-                                    <img style="margin-left: auto;
-                                                margin-right: auto;
-                                                display: block;
-                                                margin-top: 7em;" 
-                                        src="./spinning-icon.gif"/>
+                                    <img src="./spinning-icon.gif"/>
                                 </wicket:link>
                             </div>
                         </div>
-
 				    </div>
 				</form>
 			</div>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.css
index eaeea17..f4ecfbd 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.css
@@ -16,3 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+.stringPanel .scalarValue input {
+    font-size:14px;
+}
+ 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/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 5980c52..e383760 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
@@ -384,7 +384,7 @@ form fieldset .okButton {
 
 .myBlockContainer {
 	background-color:#FFFFFF;
-	padding:20px;
+	padding:10px;
 	border-radius:4px;
 	-moz-border-radius:4px;
 	-webkit-border-radius:4px;
@@ -621,6 +621,7 @@ div.scalarPanel {
 }
 
 
+
 .actionPage .select2-container .select2-choice,
 .entityPage .select2-container .select2-choice {
     -webkit-border-radius: 4px;
@@ -628,13 +629,17 @@ div.scalarPanel {
     border-radius: 4px;
 	height: 20px;
     line-height: 20px;
-    font-size:11px;
 	color:#7F7F7F;
 	background:#FFFFFF none;
 	border:1px solid #F0EFEA;
 	border-top:1px solid #CCCBC7;
 }
 
+.actionPage .select2-container .select2-choice span,
+.entityPage .select2-container .select2-choice span {
+    font-size:13px;
+}
+
 .actionPage .select2-container.select2-drop-above .select2-choice,
 .entityPage .select2-container.select2-drop-above .select2-choice {
     -webkit-border-radius:0px;

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index d78544e..3a5185b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -74,7 +74,7 @@ public abstract class PageAbstract extends WebPage {
 
     private static final long serialVersionUID = 1L;
     
-    private static final String ID_BOOKMARKED_PAGES = "breadcrumbs";
+    private static final String ID_BOOKMARKED_PAGES = "bookmarks";
     private static final String ID_HOME_PAGE_LINK = "homePageLink";
     private static final String ID_APPLICATION_NAME = "applicationName";
     private static final String ID_USER_NAME = "userName";

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.html
index 210eb75..5e17908 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.html
@@ -31,6 +31,7 @@
 		<wicket:extend>
 			<div class="aboutPage">
 				<div>
+                    <div wicket:id="bookmarks"/>
 					<span wicket:id="about"/>
 				</div>
 			</div>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
index 517fa31..fdc1f32 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
@@ -33,6 +33,7 @@ public class AboutPage extends PageAbstract {
 
     public AboutPage() {
         super(new PageParameters(), ComponentType.ABOUT);
+        addBookmarkedPages();
         addChildComponents(null);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/action/ActionPage.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/action/ActionPage.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/action/ActionPage.html
index 897b12f..7ee1742 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/action/ActionPage.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/action/ActionPage.html
@@ -30,7 +30,7 @@
 	<body>
 		<wicket:extend>
 			<div class="actionPage">
-				<div wicket:id="breadcrumbs"/>
+				<div wicket:id="bookmarks"/>
 				<div wicket:id="action"/>
 			</div>
 		</wicket:extend>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html
index 3250353..04ab8ae 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html
@@ -30,7 +30,7 @@
 	<body>
 		<wicket:extend>
 			<div class="entityPage">
-				<div wicket:id="breadcrumbs"/>
+				<div wicket:id="bookmarks"/>
 				<div wicket:id="entity"/>
 			</div>
 		</wicket:extend>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.html
index 31fe6a5..66f7bce 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.html
@@ -30,6 +30,7 @@
 	<body>
 		<wicket:extend>
 			<div class="homePage">
+                <div wicket:id="bookmarks"/>
 				<div wicket:id="welcome"/>
 			</div>
 		</wicket:extend>

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
index b60f8ec..f87b398 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
@@ -35,6 +35,7 @@ public class HomePage extends PageAbstract {
 
     public HomePage() {
         super(new PageParameters(), ComponentType.WELCOME);
+        addBookmarkedPages();
         addChildComponents(null);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index 2f8c344..7c0e192 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -1,5 +1,9 @@
 $(document).ready(function() {
-    $('.buttons .okButton').click(function(){
+    var showVeil = function() {
         $('#veil').show(); 
-    });
+    };
+    
+    $('.buttons .okButton').click(showVeil);
+    $('.buttons .ok').click(showVeil);*/
+    $('.cssSubMenuItemsPanel .cssSubMenuItem a').click(showVeil);
 });

http://git-wip-us.apache.org/repos/asf/isis/blob/9a8c181d/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 b905576..deda679 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
@@ -29,9 +29,15 @@ import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.VersionStrategy;
 import javax.jdo.spi.PersistenceCapable;
 
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+
+import org.joda.time.LocalDate;
+
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.Audited;
 import org.apache.isis.applib.annotation.AutoComplete;
+import org.apache.isis.applib.annotation.Bookmarkable;
 import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.applib.annotation.Hidden;
@@ -54,10 +60,6 @@ import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
 import org.apache.isis.applib.util.TitleBuffer;
 import org.apache.isis.applib.value.Blob;
-import org.joda.time.LocalDate;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
 
 @javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
 @javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
@@ -85,6 +87,7 @@ import com.google.common.collect.Lists;
 @PublishedObject(ToDoItemChangedPayloadFactory.class)
 @AutoComplete(repository=ToDoItems.class, action="autoComplete")
 @MemberGroups({"General", "Detail"})
+@Bookmarkable
 public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3: uncomment to use https://github.com/danhaywood/isis-wicket-gmap3
 
 	private static final long ONE_WEEK_IN_MILLIS = 7 * 24 * 60 * 60 * 1000L;
@@ -106,9 +109,9 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         }
         return buf.toString();
     }
-
     // }}
 
+    
     // {{ Description
     private String description;
 
@@ -124,6 +127,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     }
     // }}
 
+
     // {{ DueBy (property)
     @javax.jdo.annotations.Persistent(defaultFetchGroup="true")
     private LocalDate dueBy;
@@ -149,6 +153,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     }
     // }}
 
+    
     // {{ Category
     private Category category;
 
@@ -162,6 +167,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     }
     // }}
 
+    
     // {{ OwnedBy (property)
     private String ownedBy;
 
@@ -177,7 +183,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
 
     // }}
 
-    // {{ Complete (property)
+    // {{ Complete (property), Done (action), Undo (action)
     private boolean complete;
 
     @Disabled
@@ -191,11 +197,39 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         this.complete = complete;
     }
 
-    
-    // {{ Cost (property)
+
+    @Named("Done")
+    @PublishedAction
+    @Bulk
+    @MemberOrder(name="complete", sequence = "1")
+    public ToDoItem completed() {
+        setComplete(true);
+        return this;
+    }
+    // disable action dependent on state of object
+    public String disableCompleted() {
+        return complete ? "Already completed" : null;
+    }
+
+
+    @Named("Undo")
+    @PublishedAction
+    @MemberOrder(name="complete", sequence = "2")
+    public ToDoItem notYetCompleted() {
+        setComplete(false);
+        return this;
+    }
+    // disable action dependent on state of object
+    public String disableNotYetCompleted() {
+        return !complete ? "Not yet completed" : null;
+    }
+    // }}
+
+
+    // {{ Cost (property), updateCost (action)
     private BigDecimal cost;
 
-    @Column(scale = 4)
+    @Column(scale = 2)
     @Optional
     @MemberOrder(sequence = "4.1")
     public BigDecimal getCost() {
@@ -205,6 +239,17 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     public void setCost(final BigDecimal cost) {
         this.cost = cost;
     }
+    
+    @Named("Update")
+    @MemberOrder(name="cost", sequence = "1")
+    public ToDoItem updateCost(@Named("New cost") final BigDecimal cost) {
+        setCost(cost);
+        return this;
+    }
+    // provide a default value
+    public BigDecimal default0UpdateCost() {
+        return getCost();
+    }
     // }}
 
 
@@ -224,7 +269,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     }
     // }}
 
-    
 
     // {{ Attachment (property)
     private Blob attachment;
@@ -258,44 +302,13 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         final Long version = (Long) JDOHelper.getVersion(persistenceCapable);
         return version;
     }
+    // hide property (imperatively, based on state of object)
     public boolean hideVersionSequence() {
         return !(this instanceof PersistenceCapable);
     }
     // }}
 
-    // {{ completed (action)
-    @PublishedAction
-    @Bulk
-    @MemberOrder(sequence = "1")
-    public ToDoItem completed() {
-        setComplete(true);
-        return this;
-    }
-
-    // disable action dependent on state of object
-    public String disableCompleted() {
-        return complete ? "Already completed" : null;
-    }
-    // }}
 
-    // {{ notYetCompleted (action)
-    @PublishedAction
-    @MemberOrder(sequence = "2")
-    public ToDoItem notYetCompleted() {
-        setComplete(false);
-        return this;
-    }
-
-
-    // disable action dependent on state of object
-    public String disableNotYetCompleted() {
-        return !complete ? "Not yet completed" : null;
-    }
-    // }}
-
-    
-    
-    
     // {{ dependencies (Collection)
     @javax.jdo.annotations.Persistent(table="TODO_DEPENDENCIES")
     @javax.jdo.annotations.Join(column="DEPENDING_TODO_ID")
@@ -327,6 +340,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         }
         return null;
     }
+    // validate the provided argument prior to invoking action
     public String validateAdd(final ToDoItem toDoItem) {
         if(getDependencies().contains(toDoItem)) {
             return "Already a dependency";
@@ -344,18 +358,21 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
         getDependencies().remove(toDoItem);
         return this;
     }
+    // disable action dependent on state of object
     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;
     }
+    // validate the provided argument prior to invoking action
     public String validateRemove(final ToDoItem toDoItem) {
         if(!getDependencies().contains(toDoItem)) {
             return "Not a dependency";
         }
         return null;
     }
+    // provide a drop-down
     public List<ToDoItem> choices0Remove() {
         return Lists.newArrayList(getDependencies());
     }
@@ -406,10 +423,8 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     // }}
 
 
-    
     // {{ isDue (programmatic)
-    @Programmatic
-    // excluded from the framework's metamodel
+    @Programmatic // excluded from the framework's metamodel
     public boolean isDue() {
         if (getDueBy() == null) {
             return false;
@@ -434,7 +449,10 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
 
     // {{ compareTo (programmatic)
     /**
-     * by complete flag, then due by date, then description
+     * by complete flag, then due by date, then description.
+     * 
+     * <p>
+     * Required because {@link #getDependencies()} is of type {@link SortedSet}. 
      */
     @Override
     public int compareTo(final ToDoItem other) {
@@ -512,7 +530,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     // {{ injected: DomainObjectContainer
     private DomainObjectContainer container;
 
-    public void setDomainObjectContainer(final DomainObjectContainer container) {
+    public void injectDomainObjectContainer(final DomainObjectContainer container) {
         this.container = container;
     }
     // }}
@@ -540,4 +558,5 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
 //    }
 //    // }}
 
+
 }