1 21 22 package org.opensubsystems.patterns.dialoglayout.www; 23 24 import javax.servlet.jsp.JspException ; 25 import javax.servlet.jsp.tagext.BodyContent ; 26 27 import org.opensubsystems.core.www.BlockElementTag; 28 import org.opensubsystems.core.www.TagUtils; 29 30 43 public class ContextHelpTag extends BlockElementTag 44 { 45 47 50 public static final String CONTEXT_HELP_CACHE = "contexthelp"; 51 52 54 57 private static final long serialVersionUID = 120478197670421422L; 58 59 62 protected String m_strTitle; 63 64 71 protected String m_strDirect; 72 73 75 78 public ContextHelpTag( 79 ) 80 { 81 super(null, BlockElementTag.DIV_BLOCK_ELEMENT); 82 m_strDirect = Boolean.FALSE.toString(); 83 } 84 85 87 90 public int doStartTag( 91 ) throws JspException 92 { 93 return (EVAL_BODY_BUFFERED); 96 } 97 98 101 public int doEndTag( 102 ) throws JspException 103 { 104 StringBuffer sbHtml = new StringBuffer (); 105 106 121 sbHtml.append("<div id=\""); 122 sbHtml.append(getCurrentId()); 123 sbHtml.append(m_strId); 124 sbHtml.append("hint\" class=\"clsHint\">" + 125 "<div class=\"clsHintHeader\">" + 126 "<a name=\""); 127 sbHtml.append(getCurrentId()); 128 sbHtml.append(m_strId); 129 sbHtml.append("help\" rel=\"Help\" rev=\"Help\"></a>"); 130 sbHtml.append(m_strTitle); 131 sbHtml.append("</div>" + 132 "<div class=\"clsHintBody\">"); 133 BodyContent content = getBodyContent(); 135 136 if (content != null) 137 { 138 sbHtml.append(content.getString()); 139 } 140 else 141 { 142 sbHtml.append("Missing context help for "); 143 sbHtml.append(getCurrentId()); 144 sbHtml.append(m_strId); 145 } 146 sbHtml.append("</div>"); 147 148 ImageButtonControlTag close = new ImageButtonControlTag(); 150 close.setCssclass("clsHintCloseButton clsImageOnlyFakeButton clsImageCloseButton"); 151 close.setFake(Boolean.TRUE.toString()); 152 close.setFakecssclass("clsHintClose"); 153 close.setTitle("Close the context help"); 154 close.setPageContext(pageContext); 155 close.doEndTag(sbHtml, ""); 156 157 sbHtml.append("</div>\n"); 158 159 if (isDirectWritten()) 162 { 163 TagUtils.write(pageContext, sbHtml.toString()); 165 } 166 else 167 { 168 cache(CONTEXT_HELP_CACHE, sbHtml.toString()); 171 } 172 173 return (EVAL_PAGE); 174 } 175 176 179 public String getTitle( 180 ) 181 { 182 return m_strTitle; 183 } 184 185 188 public void setTitle( 189 String strTitle 190 ) 191 { 192 m_strTitle = strTitle; 193 } 194 195 199 public String getDirect( 200 ) 201 { 202 return m_strDirect; 203 } 204 205 209 public void setDirect( 210 String strDirect 211 ) 212 { 213 m_strDirect = strDirect; 214 } 215 216 220 public void setDirect( 221 boolean bDirect 222 ) 223 { 224 m_strDirect = Boolean.toString(bDirect); 225 } 226 227 230 public boolean isDirectWritten( 231 ) 232 { 233 return ((Boolean.TRUE.toString().equalsIgnoreCase(m_strDirect)) 234 || ("1".equals(m_strDirect))); 235 } 236 } 237 | Popular Tags |