KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.jahia.deprecated.taglibs.field.page;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.ServletRequest JavaDoc;
6 import javax.servlet.jsp.JspWriter JavaDoc;
7 import javax.servlet.jsp.tagext.BodyContent JavaDoc;
8 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
9
10 import org.jahia.data.JahiaData;
11 import org.jahia.services.pages.JahiaPage;
12 import org.jahia.utils.JahiaConsole;
13
14
15 /**
16  * Class IfNotCurrentPageTag : evaluates the body only if the page contained in the
17  * enclosing PageFieldTag is not the current page.
18  * This tag is the "else" part of the "IfCurrentPage" tag.
19  * This tag must be enclosed inside a PageField tag.
20  *
21  * @author Jerome Tamiotti
22  */

23 public class IfNotCurrentPageTag extends BodyTagSupport JavaDoc {
24
25
26     public int doStartTag() {
27
28         // looks for the enclosing PageField tag
29
PageFieldTag parent = (PageFieldTag) findAncestorWithClass(this, PageFieldTag.class);
30         if (parent == null) {
31             return SKIP_BODY;
32         }
33         JahiaPage thePage = parent.getPage();
34         if (thePage != null) {
35
36             ServletRequest JavaDoc request = pageContext.getRequest();
37             JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
38             if (jData.page().getID() != thePage.getID()) {
39                 return EVAL_BODY_INCLUDE;
40             }
41         }
42         return SKIP_BODY;
43     }
44
45
46     public int doAfterBody() {
47
48         try {
49             BodyContent JavaDoc body = getBodyContent();
50             if ( body != null ){
51                 JspWriter JavaDoc out = body.getEnclosingWriter();
52                 out.print(body.getString());
53             }
54         } catch (IOException JavaDoc ioe) {
55             JahiaConsole.println("IfNotCurrentPageTag: doAfterBody ", ioe.toString());
56         }
57         return SKIP_BODY;
58     }
59 }
60
Popular Tags