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