KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > util > CurrentPagePathTag


1 package org.jahia.deprecated.taglibs.util;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Enumeration JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.jsp.JspException JavaDoc;
8 import javax.servlet.jsp.JspWriter JavaDoc;
9 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
10
11 import org.jahia.data.JahiaData;
12 import org.jahia.exceptions.JahiaException;
13 import org.jahia.gui.GuiBean;
14 import org.jahia.services.pages.ContentPage;
15 import org.jahia.utils.JahiaConsole;
16
17
18 /**
19  * Class CurrentPagePathTag : returns the formated path of the current page
20  *
21  * @author Jerome Tamiotti
22  */

23 public class CurrentPagePathTag extends TagSupport JavaDoc {
24
25     private String JavaDoc separator = "/";
26     private String JavaDoc style = "";
27     private int maxchar = 0;
28
29     public void setSeparator(String JavaDoc aSeparator) {
30         this.separator = aSeparator;
31     }
32
33     public void setStyle(String JavaDoc aStyle) {
34         this.style = aStyle;
35     }
36
37     public void setMaxchar(int maxChar) {
38         this.maxchar = maxChar;
39     }
40
41
42     public int doStartTag() {
43
44         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)pageContext.getRequest();
45         JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
46         try {
47             Enumeration JavaDoc thePath = jData.page().getContentPagePath(jData.params().getOperationMode(), jData.params().getUser());
48             StringBuffer JavaDoc path = new StringBuffer JavaDoc();
49             while (thePath.hasMoreElements()) {
50                 ContentPage thePage = (ContentPage) thePath.nextElement();
51                 if (thePage != null) {
52                     path.append("<a ");
53                     if (!this.style.equals("")) {
54                         path.append("class=\"");
55                         path.append(this.style);
56                         path.append("\" ");
57                     }
58                     path.append("href=\"");
59                     path.append(thePage.getURL(jData.params()));
60                     path.append("\">");
61                     String JavaDoc title = thePage.getTitle(jData.params());
62                     if (this.maxchar == 0) {
63                        this.maxchar = title.length();
64                     }
65                     path.append( GuiBean.glueTitle(title, this.maxchar) );
66                     path.append("</a>");
67                     if (thePath.hasMoreElements()) {
68                         path.append( Utils.insertContextPath( jData.gui().drawHttpJspContext(request), this.separator ) );
69                     }
70                 }
71             }
72             JspWriter JavaDoc out = pageContext.getOut();
73             out.print(path.toString());
74
75         } catch (IOException JavaDoc ioe) {
76             JahiaConsole.println("CurrentPagePathTag: doStartTag ", ioe.toString());
77         } catch (JahiaException je) {
78             JahiaConsole.println("CurrentPagePathTag: doStartTag ", je.toString());
79         }
80         return SKIP_BODY;
81     }
82
83     public int doEndTag() throws JspException JavaDoc {
84         // let's reinitialize the tag variables to allow tag object reuse in
85
// pooling.
86
separator = "/";
87         style = "";
88         maxchar = 0;
89         return EVAL_PAGE;
90     }
91
92 }
93
Popular Tags