Author: rfelden
Date: Wed Jan 16 12:39:37 2008
New Revision: 19523

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19523&repname=
=3Djahia
Log:
sitemap update (usage <jahia-components:sitemap> (ajax=3D"true" for dynamic=
 sitemap)
GWTIncluder static method to include gwt module in standard tags

Added:
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
GWTIncluder.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/html/=
menus/SitemapTag.java
Modified:
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
InitGWT.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/WEB-INF/etc/taglibs/j=
ahia-components.tld

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gw=
t/gwtsitemap/client/GWTSitemapManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwtsitemap/client/GWTSitemapM=
anager.java&rev=3D19523&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java Wed Jan 16 12:39:37 2008
@@ -9,7 +9,7 @@
  *
  */
 public class GWTSitemapManager extends JahiaPageEntryPoint {
-    public static final String SITEMAP_ID =3D "siteMap";
+    public static final String SITEMAP_ID =3D "default_sitemap";
 =

     public void onModuleLoad() {
         RootPanel rootPanel =3D getRootPanel();

Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/aj=
ax/GWTIncluder.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/GWTIncluder.java&r=
ev=3D19523&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
GWTIncluder.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
GWTIncluder.java Wed Jan 16 12:39:37 2008
@@ -0,0 +1,30 @@
+package org.jahia.taglibs.ajax;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.PageContext;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 15 janv. 2008
+ */
+public class GWTIncluder {
+
+    private static final org.apache.log4j.Logger logger =3D org.apache.log=
4j.Logger.getLogger(InitGWT.class);
+    =

+    public static final String GWT_MODULE_PATH =3D "/jsp/jahia/gwt";
+
+    public static String generateGWTImport(PageContext pageContext, String=
 module) {
+        StringBuffer ret =3D new StringBuffer() ;
+        final HttpServletRequest request=3D (HttpServletRequest) pageConte=
xt.getRequest();
+        final HttpServletResponse response =3D (HttpServletResponse) pageC=
ontext.getResponse();
+        final String gwtModulePath =3D response.encodeURL(request.getConte=
xtPath()+ GWT_MODULE_PATH + "/" + module + "/" + module + ".nocache.js");
+        ret.append("<!-- The fully-qualified module name, followed by 'noc=
ache.js' -->\n");
+        ret.append("<script type=3D'text/javascript' src=3D'"+gwtModulePat=
h+"'>\n");
+        ret.append("</script>\n");
+        return ret.toString() ;
+    }
+
+}

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs=
/ajax/InitGWT.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/InitGWT.java&rev=3D19523&=
repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
InitGWT.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ajax/=
InitGWT.java Wed Jan 16 12:39:37 2008
@@ -61,6 +61,7 @@
         params.put(JahiaGWTParameters.OPERATION_MODE, retrieveProcessingCo=
ntext().getOperationMode());
         try {
             out.print("<!-- init jahia gwt config-->\n");
+            out.print("<link rel=3D\"stylesheet\" href=3D\""+getServerHttp=
Path(retriveJahiaData())+"/jsp/jahia/css/gwt-default.css\" type=3D\"text/cs=
s\"/>\n");
             out.print("<script type=3D'text/javascript'>\n");
             out.print(getJahiaGWTCongig(params) + "\n");
             out.print("</script>\n");
@@ -98,6 +99,17 @@
         return s.toString();
     }
 =

+    private final String getServerHttpPath(JahiaData jData) {
+        if (jData !=3D null) {
+            return jData.getProcessingContext().getContextPath();
+        } else if (org.jahia.bin.Jahia.getContextPath() !=3D null) {
+            return org.jahia.bin.Jahia.getContextPath();
+        } else {
+            return ((HttpServletRequest) pageContext.getRequest()).
+                    getContextPath();
+        }
+    }
+
 =

     private JahiaData retriveJahiaData() {
         ServletRequest request =3D pageContext.getRequest();

Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/ht=
ml/menus/SitemapTag.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/html/menus/SitemapTag.j=
ava&rev=3D19523&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/html/=
menus/SitemapTag.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/taglibs/html/=
menus/SitemapTag.java Wed Jan 16 12:39:37 2008
@@ -0,0 +1,163 @@
+package org.jahia.taglibs.html.menus;
+
+import org.jahia.taglibs.AbstractJahiaTag;
+import org.jahia.taglibs.ajax.GWTIncluder;
+import org.jahia.data.JahiaData;
+import org.jahia.params.ProcessingContext;
+import org.jahia.exceptions.JahiaException;
+import org.jahia.services.pages.JahiaPage;
+import org.jahia.services.pages.PageLoadFlags;
+import org.jahia.registries.ServicesRegistry;
+import org.apache.log4j.Logger;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.JspException;
+import java.io.IOException;
+import java.util.Vector;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 8 janv. 2008
+ */
+public class SitemapTag extends AbstractJahiaTag {
+
+    private static final Logger logger =3D Logger.getLogger(SitemapTag.cla=
ss);
+
+    private int startPid =3D -1 ;
+    private int maxDepth =3D -1 ;
+    private boolean ajax =3D false ;
+    private boolean showRoot =3D false ;
+
+    public void setStartPid(int startPid) {
+        this.startPid =3D startPid;
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth =3D maxDepth;
+    }
+
+    public void setShowRoot(boolean showRoot) {
+        this.showRoot =3D showRoot;
+    }
+
+    public void setAjax(boolean aj) {
+        ajax =3D aj ;
+    }
+
+    public int doStartTag() {
+        JspWriter out =3D pageContext.getOut();
+        if (ajax) {
+            // use the gwt module
+            try {
+                out.print("<div id=3D\"default_sitemap\" class=3D\"sitemap=
\"></div>") ;
+                out.print(GWTIncluder.generateGWTImport(pageContext, "org.=
jahia.ajax.gwt.gwtsitemap.GWTSitemapManager")) ;
+            } catch (IOException e) {
+                logger.error("Could not write to output", e);
+            }
+
+        } else {
+            // use the static way
+            ServletRequest request =3D pageContext.getRequest();
+            JahiaData jData =3D (JahiaData) request.getAttribute("org.jahi=
a.data.JahiaData");
+            ProcessingContext jParams =3D jData.getProcessingContext() ;
+
+
+
+            JahiaPage home =3D jParams.getSite().getHomePage() ;
+
+
+
+            try {
+                out.print("<div class=3D\"sitemap\">\n") ;
+
+                if (startPid =3D=3D -1) {
+                    startPid =3D home.getID() ;
+                }
+
+                if (showRoot) {
+                    out.print("<ul>\n") ;
+                    out.print("<li>") ;
+                    out.print(new StringBuffer().append("<a href=3D\"").ap=
pend(home.getURL(jParams)).append("\">").append(home.getTitle()).append("</=
a>").toString()) ;
+                }
+
+                printSubpages(jData, home.getID());
+
+                if (showRoot) {
+                    out.print("</li>\n<ul>\n") ;
+                }
+                out.print("</div>\n") ;
+            } catch (JahiaException e) {
+                logger.error("Hierarchy could not be browsed", e);
+            } catch (IOException e) {
+                logger.error("Could not write to output", e);
+            }
+        }
+
+        return SKIP_BODY ;
+    }
+
+        /**
+     * Recursive method to go through pages hierarchy using a specific con=
tainer list (attribute containerListName).
+     * @param jData JahiaData
+     * @param pageId the page id where to get the container list
+     * @throws JahiaException exception retrieving cache or containers
+     * @throws IOException JSP writer exception
+     */
+    private void printSubpages(JahiaData jData, int pageId) throws JahiaEx=
ception, IOException {
+
+        if (pageId < 1) {
+            logger.error("Incorrect page ID: " + pageId);
+            throw new IllegalArgumentException("attribute pageID cannot be=
 < 1 (is " + pageId + ")");
+        }
+
+        JspWriter out =3D pageContext.getOut();
+
+        ProcessingContext jParams =3D jData.getProcessingContext();
+
+        Vector<JahiaPage> childs =3D ServicesRegistry.getInstance().getJah=
iaPageService().getPageChilds(pageId, PageLoadFlags.ALL, jParams.getUser())=
 ;
+
+        if (childs.isEmpty()) {
+            return ;
+        }
+
+        boolean begin =3D true ;
+
+        // sort children
+        for (JahiaPage page: childs) {
+            if (page.hasActiveEntries() || (!page.hasActiveEntries() && pa=
ge.checkWriteAccess(jParams.getUser())) ) {
+
+                // print page
+                if (begin) {
+                    out.print("<ul>\n") ;
+                    begin =3D false ;
+                }
+
+                out.print("<li>") ;
+                out.print(new StringBuffer().append("<a href=3D\"").append=
(page.getURL(jParams)).append("\">").append(page.getTitle()).append("</a>")=
.toString()) ;
+                printSubpages(jData, page.getID());
+                out.print("</li>\n") ;
+            }
+        }
+
+        if (!begin) {
+            out.print("</ul>\n") ;
+        }
+
+
+    }
+
+
+    public int doEndTag() throws JspException {
+        // let's reinitialize the tag variables to allow tag object reuse =
in
+        // pooling.
+        startPid =3D -1 ;
+        showRoot =3D false ;
+        maxDepth =3D -1;
+        ajax =3D false ;
+        return EVAL_PAGE;
+    }
+
+}

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/WEB-INF/etc/tag=
libs/jahia-components.tld
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/webapp/WEB-INF/etc/taglibs/jahia-components.tld&rev=
=3D19523&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/WEB-INF/etc/taglibs/j=
ahia-components.tld (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/WEB-INF/etc/taglibs/j=
ahia-components.tld Wed Jan 16 12:39:37 2008
@@ -22,6 +22,33 @@
     </tag-file>
 =

     <tag>
+        <name>sitemap</name>
+        <tagclass>org.jahia.taglibs.html.menus.SitemapTag</tagclass>
+        <info>Display the entire sitemap</info>
+        <attribute>
+            <name>startPid</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>maxDepth</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>showRoot</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+        </attribute>
+        <attribute>
+            <name>ajax</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+        </attribute>
+        =

+    </tag>
+
+    <tag>
         <name>currentPagePath</name>
         <tagclass>org.jahia.taglibs.html.links.CurrentPagePathTag</tagclas=
s>
         <info>Returns the formatted path of the current page</info>

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to