Update of 
/var/cvs/contributions/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/navigation
In directory 
james.mmbase.org:/tmp/cvs-serv14734/cmsc/taglib/src/java/com/finalist/cmsc/taglib/navigation

Modified Files:
        LinkTag.java 
Log Message:
Added a function to the link tag to restrict searching for a given portlet to 
the current page. 


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/navigation


Index: LinkTag.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/navigation/LinkTag.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- LinkTag.java        11 Jan 2008 10:22:17 -0000      1.15
+++ LinkTag.java        28 Jan 2008 12:38:28 -0000      1.16
@@ -44,6 +44,7 @@
    private String window;
    private String urlfragment;
    private String portletdefinition;
+   private boolean restrictToCurrentPage;
 
    /**
     * Parameters added by nested param tag
@@ -126,6 +127,19 @@
    private void setPageAndWindowBasedOnPortletDefinition(String path, String 
portletdefinition) {
       List<Page> pages = SiteManagement.getListFromPath(path);
       int lastIndexOfPages = pages.size() - 1;
+
+      if (restrictToCurrentPage) {
+         if(lastIndexOfPages >= 0) {
+            Page currentPage = pages.get(lastIndexOfPages);
+            String portletPosition = 
getPortletPositionWithDefinition(currentPage, portletdefinition);
+            if (portletPosition != null) {
+               window = portletPosition;
+               page = currentPage;
+            }
+         }
+         return;
+      }
+
       for (int i = lastIndexOfPages; i >= 0; i--) {
          Page currentPage = pages.get(i);
          String portletPosition = 
getPortletPositionWithDefinition(currentPage, portletdefinition);
@@ -267,6 +281,10 @@
       this.portletdefinition = portletdefinition;
    }
 
+   public void setRestrictToCurrentPage(boolean restrictToCurrentPage) {
+      this.restrictToCurrentPage = restrictToCurrentPage;
+   }
+
 
    public void setWindow(String window) {
       this.window = window;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to