KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > field > page > IfPageInPathTag


1 package org.jahia.deprecated.taglibs.field.page;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Enumeration JavaDoc;
5
6 import javax.servlet.ServletRequest JavaDoc;
7 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
8
9 import org.jahia.data.JahiaData;
10 import org.jahia.exceptions.JahiaException;
11 import org.jahia.services.pages.JahiaPage;
12 import org.jahia.utils.JahiaConsole;
13
14
15 /**
16  * Class IfPageInPathTag : evaluates the body only if the given page is in the path
17  * of the current page.
18  * This tag must be enclosed inside a PageField tag.
19  *
20  * @author Jerome Tamiotti
21  */

22 public class IfPageInPathTag extends BodyTagSupport JavaDoc {
23
24     public int doStartTag() {
25
26         // looks for the enclosing PageField tag
27
PageFieldTag parent = (PageFieldTag) findAncestorWithClass(this, PageFieldTag.class);
28         if (parent == null) {
29             return SKIP_BODY;
30         }
31         JahiaPage thePage = parent.getPage();
32         if (thePage != null) {
33
34             ServletRequest JavaDoc request = pageContext.getRequest();
35             JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
36             // loops through the current path
37
try {
38                 Enumeration JavaDoc thePath = jData.page().getPagePath(jData.params().getOperationMode(), jData.params().getUser());
39                 while (thePath.hasMoreElements()) {
40                     JahiaPage aPage = (JahiaPage) thePath.nextElement();
41                     if (aPage.getID() == thePage.getID()) {
42                         return EVAL_BODY_BUFFERED;
43                     }
44                 }
45             } catch (JahiaException je) {
46                 JahiaConsole.println("IfPageInPathTag: doStartTag ",je.toString());
47             }
48         }
49         return SKIP_BODY;
50     }
51
52
53     public int doAfterBody() {
54         try {
55             bodyContent.writeOut(bodyContent.getEnclosingWriter());
56         } catch (IOException JavaDoc ioe) {
57             JahiaConsole.println("IfPageInPathTag: doAfterBody ",ioe.toString());
58         }
59         return SKIP_BODY;
60     }
61
62 }
63
Popular Tags