1 package fr.improve.struts.taglib.layout; 2 3 63 64 import javax.servlet.http.HttpServletRequest ; 65 import javax.servlet.jsp.JspException ; 66 67 import fr.improve.struts.taglib.layout.event.EndLayoutEvent; 68 import fr.improve.struts.taglib.layout.event.StartLayoutEvent; 69 import fr.improve.struts.taglib.layout.event.StaticCodeIncludeLayoutEvent; 70 import fr.improve.struts.taglib.layout.event.StaticCodeIncludeListener; 71 import fr.improve.struts.taglib.layout.util.LayoutUtils; 72 import fr.improve.struts.taglib.layout.util.TagUtils; 73 74 86 87 public class HtmlTag extends PanelTag implements StaticCodeIncludeListener { 88 89 92 protected boolean locale = false; 93 94 97 protected boolean xhtml = false; 98 99 102 protected String onload; 103 104 107 protected String contentAlign = "center"; 108 109 112 protected boolean layout = true; 113 114 117 protected StringBuffer staticCode = new StringBuffer (); 118 119 protected org.apache.struts.taglib.html.BaseTag baseTag = 120 new org.apache.struts.taglib.html.BaseTag(); 121 protected org.apache.struts.taglib.html.HtmlTag htmlTag = 122 new org.apache.struts.taglib.html.HtmlTag(); 123 124 public HtmlTag() { 125 super(); 126 width = "80%"; 127 align ="center"; 128 contentAlign = "center"; 129 layout = true; 130 } 131 132 135 public Object processStaticCodeIncludeEvent(StaticCodeIncludeLayoutEvent in_event) throws JspException { 136 String lc_value = (String ) in_event.getValue(); 137 staticCode.append(lc_value); 138 return ""; 139 } 140 141 145 public Object processStartLayoutEvent(StartLayoutEvent in_event) throws JspException { 146 return Boolean.FALSE; 147 } 148 public Object processEndLayoutEvent(EndLayoutEvent in_event) throws JspException { 149 return Boolean.FALSE; 150 } 151 152 public void doBeforeBody(StringBuffer sb) { 153 sb.append("<br><table cellspacing=\"0\" cellpadding=\"10\" width=\"100%\" align=\""); 154 sb.append(contentAlign); 155 sb.append("\" border=\"0\">"); 156 } 157 protected void doEndHtml(StringBuffer sb) { 158 DynMenuTag2.includeScriptCode(sb, pageContext); 159 sb.append("</body>"); 160 } 161 166 public int doEndLayoutTag() throws JspException { 167 168 StringBuffer sb = new StringBuffer (); 169 if (layout) { 170 sb.append("</td>"); 171 sb.append("</tr>"); 172 sb.append("</table>"); 173 } 174 175 if (staticCode.length()!=0) { 176 sb.append(staticCode.toString()); 177 staticCode = new StringBuffer (); 178 } 179 180 doEndHtml(sb); 181 TagUtils.write(pageContext, sb.toString()); 182 htmlTag.doEndTag(); 183 184 return (EVAL_PAGE); 185 186 } 187 protected void doPrintHead(StringBuffer sb) throws JspException { 188 if (key != null) { 189 sb.append("\t<title>"); 190 sb.append(getLabel()); 191 sb.append("</title>\n"); 192 } 193 sb.append("\t<link rel=\"stylesheet\" HREF='"); 194 sb.append(getSkin().getCssDirectory(pageContext.getRequest())); 195 sb.append("/"); 196 sb.append(LayoutUtils.getSkin(pageContext.getSession()).getCssFileName()); 197 sb.append("' type=\"text/css\">\n"); 198 sb.append("\t<script language=\"Javascript\" SRC=\""); 199 sb.append(getSkin().getConfigDirectory(pageContext.getRequest())); 200 sb.append("/javascript.js\"></script>"); 201 sb.append("<script>var imgsrc=\""); 202 sb.append(getSkin().getImageDirectory(pageContext.getRequest())); 203 if (!getSkin().getImageDirectory(pageContext.getRequest()).endsWith("/")) 204 sb.append("/"); 205 sb.append("\"; var scriptsrc=\""); 206 sb.append(getSkin().getConfigDirectory(pageContext.getRequest())); 207 if (!getSkin().getConfigDirectory(pageContext.getRequest()).endsWith("/")) sb.append("/"); 208 sb.append("\"; var langue=\""); 209 sb.append(LayoutUtils.getLocale(pageContext).getLanguage()); 210 sb.append("\"; var contextPath=\""); 211 sb.append(((HttpServletRequest )pageContext.getRequest()).getContextPath()); 212 sb.append("\";</script>"); 213 } 214 219 public int doStartLayoutTag() throws JspException { 220 221 LayoutUtils.copyProperties(htmlTag,this); 223 htmlTag.doStartTag(); 224 225 TagUtils.write(pageContext, "\n<head>\n\t"); 227 228 LayoutUtils.copyProperties(baseTag,this); 229 baseTag.doStartTag(); 230 baseTag.doEndTag(); 231 TagUtils.write(pageContext, "\n"); 232 233 StringBuffer sb = new StringBuffer (); 234 doPrintHead(sb); 235 TagUtils.write(pageContext, sb.toString()); 236 237 238 sb.setLength(0); 239 sb.append("\n</head>\n"); 240 241 sb.append("<body"); 242 if (onload!=null) { 243 sb.append(" onload=\""); 244 sb.append(onload); 245 sb.append("\""); 246 } 247 sb.append(">\n"); 248 249 if (styleClass!=null) { 251 doStartPanel(sb); 252 if (key!=null) doPrintTitle(sb); 253 doEndPanel(sb); 254 } 255 256 if (layout) { 258 doBeforeBody(sb); 259 sb.append("<tr>"); 260 sb.append("<td align=\"center\">"); 261 } 262 263 TagUtils.write(pageContext, sb.toString()); 264 return (EVAL_BODY_INCLUDE); 265 266 } 267 public boolean getLocale() { 268 return locale; 269 } 270 public boolean getXhtml() { 271 return xhtml; 272 } 273 public boolean isLocale() { 274 return locale; 275 } 276 279 public void release() { 280 super.release(); 281 282 htmlTag.release(); 283 baseTag.release(); 284 285 locale = false; 286 xhtml = false; 287 288 width = "80%"; 289 align = "center"; 290 291 onload = null; 292 layout = true; 293 contentAlign = "center"; 294 } 295 299 public void setLocale(boolean newLocale) { 300 locale = newLocale; 301 } 302 public void setXhtml(boolean xhtml) { 303 this.xhtml = xhtml; 304 } 305 public String getOnload() { 306 return onload; 307 } 308 309 public void setOnload(String in_onload) { 310 onload = in_onload; 311 } 312 313 public void setAlign(String in_align) { 314 contentAlign = in_align; 315 } 316 317 public void setLayout(boolean in_layout) { 318 layout = in_layout; 319 } 320 321 } 322 | Popular Tags |