KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > taglibs > container > ContainerDiffHighlightTag


1 package org.jahia.taglibs.container;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.ServletRequest JavaDoc;
6 import javax.servlet.jsp.JspException JavaDoc;
7 import javax.servlet.jsp.JspWriter JavaDoc;
8 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
9
10 import org.jahia.data.JahiaData;
11 import org.jahia.data.beans.ContainerBean;
12 import org.jahia.data.containers.JahiaContainer;
13 import org.jahia.resourcebundle.JahiaResourceBundle;
14 import org.jahia.services.containers.ContentContainer;
15 import org.jahia.services.version.VersioningDifferenceStatus;
16 import org.jahia.taglibs.resourcebundle.EngineResourceBundleTag;
17
18 /**
19  * <p>Title: </p>
20  * <p>Description: Difference Status highlight for a container</p>
21  * <p>Copyright: Copyright (c) 2002</p>
22  * <p>Company: Jahia Ltd</p>
23  * @author Khue Nguyen
24  * @version 1.0
25  */

26 public class ContainerDiffHighlightTag extends TagSupport JavaDoc {
27
28     private static org.apache.log4j.Logger logger =
29         org.apache.log4j.Logger.getLogger(ContainerDiffHighlightTag.class);
30
31     private JahiaContainer container = null;
32     private String JavaDoc name = null;
33     private boolean display = true;
34
35     private boolean compareMode = false;
36     private JahiaData jData = null;
37     private int containerStatus = VersioningDifferenceStatus.UNCHANGED;
38     public String JavaDoc getName() {
39         return name;
40     }
41     public void setName(String JavaDoc name) {
42         this.name = name;
43     }
44     public boolean isDisplay() {
45         return display;
46     }
47     public void setDisplay(boolean display) {
48         this.display = display;
49     }
50
51     protected void init() {
52         if (getName() == null) {
53             ContainerTag parent = (ContainerTag) findAncestorWithClass(this,
54                 ContainerTag.class);
55             if (parent != null) {
56                 this.container = parent.getContainer();
57             }
58         } else {
59             ContainerBean containerBean = (ContainerBean) pageContext.findAttribute(getName());
60             if (containerBean != null) {
61                 this.container = containerBean.getJahiaContainer();
62             }
63         }
64         if ( container != null ){
65             try {
66                 ContentContainer cContainer =
67                         ContentContainer.getContainer(container.getID());
68                 compareMode = jData.gui().isCompareMode();
69                 if ( compareMode ){
70                     //containerStatus = cContainer.getRestoreStatus(1,0,false);
71
if ( jData.params().getEntryLoadRequest().isVersioned() ){
72                         containerStatus =
73                                 cContainer.getRestoreStatus(jData.params()
74                                 .getEntryLoadRequest().getVersionID(),2,true);
75                     } else {
76                         containerStatus = cContainer.getStagingStatus();
77                     }
78                 }
79             } catch ( Throwable JavaDoc t ){
80                 logger.debug("Exception occurred :",t);
81             }
82         }
83     }
84
85     public int doStartTag() {
86
87         ServletRequest JavaDoc request = pageContext.getRequest();
88
89         jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
90
91         init();
92         if ( getId() != null ){
93             // reset context attribute
94
pageContext.removeAttribute(getId());
95         }
96
97         if ( container != null && isDisplay()) {
98             if ( compareMode && jData.params().getEntryLoadRequest().isStaging() ){
99
100                 if (getId() != null) {
101                     pageContext.setAttribute(id, new Integer JavaDoc(this.containerStatus));
102                 }
103
104                 try {
105                     JspWriter JavaDoc out = pageContext.getOut();
106
107                     String JavaDoc style = EngineResourceBundleTag.parseResourceValue(
108                             JahiaResourceBundle
109                             .getEngineResource("org.jahia.services.version.difference.style."
110                             + containerStatus, jData.params(), jData.params().getLocale()),jData.params());
111                     String JavaDoc statusLabel = EngineResourceBundleTag.parseResourceValue(
112                             JahiaResourceBundle
113                             .getEngineResource("org.jahia.services.version.restore.status."
114                             + containerStatus, jData.params(), jData.params().getLocale()),jData.params());
115
116                     StringBuffer JavaDoc buff = new StringBuffer JavaDoc("<fieldset style='");
117                     buff.append(style);
118                     buff.append("'><legend><b>Diff Status : ");
119                     buff.append(statusLabel);
120                     buff.append("</b></legend>");
121                     out.print(buff.toString());
122                 } catch (IOException JavaDoc ioe) {
123                     logger.error("ContainerDiffHighlightTag: doStartTag ", ioe);
124                 }
125             }
126         }
127         return SKIP_BODY;
128     }
129
130     public int doEndTag ()
131         throws JspException JavaDoc {
132         super.doEndTag();
133         container = null;
134         compareMode = false;
135         display = true;
136         containerStatus = VersioningDifferenceStatus.UNCHANGED;
137         name = null;
138         jData = null;
139         return EVAL_PAGE;
140     }
141
142 }
143
Popular Tags