You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/02/21 08:16:09 UTC

[isis] 01/01: ISIS-471: fixing fa icon, moving pin icon to the right

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch ISIS-471-pin.bookmark
in repository https://gitbox.apache.org/repos/asf/isis.git

commit ac36bd98939b6f12fbb009c310f7bf4eba14cba5
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Feb 21 09:15:49 2021 +0100

    ISIS-471: fixing fa icon, moving pin icon to the right
---
 .../wicket/model/models/BookmarkedPagesModel.java  |  8 +++---
 .../bookmarkedpages/BookmarkedPagesPanel.html      | 12 ++++-----
 .../bookmarkedpages/BookmarkedPagesPanel.java      | 31 ++++++++++++++++------
 .../viewer/wicket/ui/util/CssClassAppender.java    |  5 ++++
 4 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
index e184462..7d788c6 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
@@ -120,17 +120,17 @@ public class BookmarkedPagesModel extends ModelAbstract<List<BookmarkTreeNode>>
     }
 
     public void pin(BookmarkTreeNode rootNode) {
-        this.rootNodes.remove(rootNode);
-        this.rootNodes.add(0, rootNode);
         rootNode.pin();
         this.numPinned++;
+        this.rootNodes.remove(rootNode);
+        this.rootNodes.add(0, rootNode);
     }
 
     public void unpin(BookmarkTreeNode rootNode) {
-        this.rootNodes.remove(rootNode);
-        this.rootNodes.add(this.numPinned, rootNode);
         rootNode.unpin();
         this.numPinned--;
+        this.rootNodes.remove(rootNode);
+        this.rootNodes.add(rootNodes.size()-this.numPinned, rootNode);
     }
 
     public void clear() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
index 0e2ae06..4348f52 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.html
@@ -44,20 +44,20 @@
                                             <ul wicket:id="bookmarkList" class="bookmarkedPagesList list-group">
                                                 <li wicket:id="bookmarkedPageItem" class="bookmarkedPageItem list-group-item">
                                                     <div>
-                                                        <a href="#" wicket:id="pinBookmarkLink" class="pinBookmarkPlaceHolder">
-                                                            <span class="fa fa-fw fa-thumb-tack"></span>
-                                                        </a>
-
                                                         <a href="#" wicket:id="bookmarkedPageLink">
                                                             <div class="bookmarkedPageImageAndTitle" style="display: inline-block">
                                                                 <img wicket:id="bookmarkedPageImage" class="bookmarkedPageImage"/>
                                                                 <span wicket:id="bookmarkedPageTitle" class="bookmarkedPageTitle">[link title]</span>
                                                             </div>
                                                         </a>
-
-                                                        <a href="#" wicket:id="clearBookmarkLink" class="clearBookmarkPlaceHolder pull-right">
+														
+														<a href="#" wicket:id="clearBookmarkLink" class="clearBookmarkPlaceHolder pull-right">
                                                             <span class="fa fa-fw fa-ban text-danger"></span>
                                                         </a>
+														<a href="#" wicket:id="pinBookmarkLink" class="pinBookmarkPlaceHolder pull-right">
+                                                            <span class="fas fa-fw fa-thumbtack"></span>
+                                                        </a>
+                                                        
                                                     </div>
                                                 </li>
                                             </ul>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
index 1ec2ffb..d59d18c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
@@ -138,26 +138,29 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
                     final PageType pageType = node.getPageType();
                     final Class<? extends Page> pageClass = pageClassRegistry.getPageClass(pageType);
 
+                    // toggle CSS pin state
                     final AjaxLink<Object> pinBookmarkLink = new AjaxLink<Object>(ID_PIN_BOOKMARK_LINK) {
 
                         private static final long serialVersionUID = 1L;
 
                         @Override
                         public void onClick(AjaxRequestTarget target) {
-                            if(!node.isPinned()) {
-                                bookmarkedPagesModel.pin(node);
-                                this.add(new CssClassAppender("text-success"));
-                            } else {
+                            if(node.isPinned()) {
                                 bookmarkedPagesModel.unpin(node);
-                                this.add(new CssClassAppender("text-muted"));
+                                applyCssForUnpin(this);
+                            } else {
+                                bookmarkedPagesModel.pin(node);
+                                applyCssForPin(this);
                             }
                         }
 
                     };
-                    if(!node.isPinned()) {
-                        pinBookmarkLink.add(new CssClassAppender("text-muted"));
+                    
+                    // set initial CSS for pin state
+                    if(node.isPinned()) {
+                        applyCssForPin(pinBookmarkLink);
                     } else {
-                        pinBookmarkLink.add(new CssClassAppender("text-success"));
+                        applyCssForUnpin(pinBookmarkLink);
                     }
 
                     final AjaxLink<Object> clearBookmarkLink = new AjaxLink<Object>(ID_CLEAR_BOOKMARK_LINK) {
@@ -247,5 +250,17 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
         return helpText;
     }
 
+    // -- PINNING CSS
+    
+    private static void applyCssForPin(Component target) {
+        target.add(new CssClassAppender("text-success"));
+    }
+    
+    private static void applyCssForUnpin(Component target) {
+        target.add(new CssClassAppender("text-muted"));   
+    }
+    
+    
+    
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
index 8299066..0e92c82 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
@@ -42,6 +42,10 @@ public class CssClassAppender extends AttributeAppender {
     public CssClassAppender(final String append) {
         this(Model.of(append));
     }
+    
+    public String getCssClass() {
+        return super.getAttribute();
+    }
 
     /**
      * Adds CSS class to tag (providing that the class is non-null and non-empty).
@@ -73,4 +77,5 @@ public class CssClassAppender extends AttributeAppender {
     public static String asCssStyle(final String str) {
         return str.replaceAll("[^A-Za-z0-9- ]", "").replaceAll("\\s+", "-");
     }
+    
 }
\ No newline at end of file