001: /*
002: * Copyright 2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.apache.myfaces.shared_impl.renderkit.html;
017:
018: import org.apache.myfaces.shared_impl.util.ArrayUtils;
019:
020: /**
021: * Constant declarations for HTML rendering.
022: * @author Manfred Geiler
023: * @author Anton Koinov
024: * @version $Revision: 544646 $ $Date: 2007-06-05 23:51:27 +0200 (Di, 05 Jun 2007) $
025: */
026: public interface HTML {
027: // Deprecated attributes
028: @Deprecated
029: String DATAFLD_ATTR = "datafld";
030: @Deprecated
031: String DATASRC_ATTR = "datasrc";
032: @Deprecated
033: String DATAFORMATAS_ATTR = "dataformatas";
034:
035: // Common attributes
036: String ALIGN_ATTR = "align";
037: String BORDER_ATTR = "border";
038: String WIDTH_ATTR = "width";
039: String READONLY_ATTR = "readonly";
040: String FILE_ATTR = "file";
041: String ACCEPT_ATTR = "accept";
042:
043: // Common event handler attributes
044: String ONCLICK_ATTR = "onclick";
045: String ONDBLCLICK_ATTR = "ondblclick";
046: String ONMOUSEDOWN_ATTR = "onmousedown";
047: String ONMOUSEUP_ATTR = "onmouseup";
048: String ONMOUSEOVER_ATTR = "onmouseover";
049: String ONMOUSEMOVE_ATTR = "onmousemove";
050: String ONMOUSEOUT_ATTR = "onmouseout";
051: String ONKEYPRESS_ATTR = "onkeypress";
052: String ONKEYDOWN_ATTR = "onkeydown";
053: String ONKEYUP_ATTR = "onkeyup";
054: String ONFOCUS_ATTR = "onfocus";
055: String ONBLUR_ATTR = "onblur";
056: String[] EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK = {
057: ONDBLCLICK_ATTR, ONMOUSEDOWN_ATTR, ONMOUSEUP_ATTR,
058: ONMOUSEOVER_ATTR, ONMOUSEMOVE_ATTR, ONMOUSEOUT_ATTR,
059: ONKEYPRESS_ATTR, ONKEYDOWN_ATTR, ONKEYUP_ATTR, ONBLUR_ATTR,
060: ONFOCUS_ATTR };
061: String[] EVENT_HANDLER_ATTRIBUTES = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
062: .concat(EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
063: new String[] { ONCLICK_ATTR });
064:
065: // Input field event handler attributes
066: String ONSELECT_ATTR = "onselect";
067: String ONCHANGE_ATTR = "onchange";
068: String[] COMMON_FIELD_EVENT_ATTRIBUTES = { ONFOCUS_ATTR,
069: ONBLUR_ATTR, ONSELECT_ATTR, ONCHANGE_ATTR };
070:
071: String[] COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS = {
072: ONBLUR_ATTR, ONSELECT_ATTR, ONCHANGE_ATTR };
073:
074: // universal attributes
075: String DIR_ATTR = "dir";
076: String LANG_ATTR = "lang";
077: String STYLE_ATTR = "style";
078: String TITLE_ATTR = "title";
079: String STYLE_CLASS_ATTR = "styleClass"; //"class" cannot be used as property name
080:
081: String[] UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE = { DIR_ATTR,
082: LANG_ATTR, TITLE_ATTR,
083:
084: //NOTE: if changed, please verify universal attributes in HtmlMessageRenderer !
085: };
086: String[] UNIVERSAL_ATTRIBUTES = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
087: .concat(UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE, new String[] {
088: STYLE_ATTR, STYLE_CLASS_ATTR });
089:
090: //universal, but not the same property-name -
091: //styleClass attribute is rendered as such
092: String CLASS_ATTR = "class";
093:
094: // common form field attributes
095: String ACCESSKEY_ATTR = "accesskey";
096: String TABINDEX_ATTR = "tabindex";
097: String DISABLED_ATTR = "disabled";
098: String[] COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED = {
099: ACCESSKEY_ATTR, TABINDEX_ATTR };
100: String[] COMMON_FIELD_ATTRIBUTES = (String[]) ArrayUtils.concat(
101: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
102: new String[] { DISABLED_ATTR });
103:
104: // Common Attributes
105: String[] COMMON_PASSTROUGH_ATTRIBUTES = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
106: .concat(EVENT_HANDLER_ATTRIBUTES, UNIVERSAL_ATTRIBUTES);
107: String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
108: .concat(EVENT_HANDLER_ATTRIBUTES,
109: UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE);
110: String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK = (String[]) ArrayUtils
111: .concat(EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
112: UNIVERSAL_ATTRIBUTES);
113: String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE = (String[]) ArrayUtils
114: .concat(EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
115: UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE);
116: String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED = (String[]) ArrayUtils
117: .concat(COMMON_PASSTROUGH_ATTRIBUTES,
118: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
119: COMMON_FIELD_EVENT_ATTRIBUTES);
120: String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE = (String[]) ArrayUtils
121: .concat(COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE,
122: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
123: COMMON_FIELD_EVENT_ATTRIBUTES);
124: String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
125: .concat(COMMON_PASSTROUGH_ATTRIBUTES,
126: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
127: COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS);
128: String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK = (String[]) ArrayUtils
129: .concat(COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK,
130: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
131: COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS);
132: String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
133: .concat(COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK,
134: COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
135: COMMON_FIELD_EVENT_ATTRIBUTES);
136:
137: // <a>
138: String TARGET_ATTR = "target"; //used by <a> and <form>
139: String CHARSET_ATTR = "charset";
140: String COORDS_ATTR = "coords";
141: String HREF_ATTR = "href";
142: String HREFLANG_ATTR = "hreflang";
143: String REL_ATTR = "rel";
144: String REV_ATTR = "rev";
145: String SHAPE_ATTR = "shape";
146: String TYPE_ATTR = "type";
147: String[] ANCHOR_ATTRIBUTES = { ACCESSKEY_ATTR, CHARSET_ATTR,
148: COORDS_ATTR, HREFLANG_ATTR, REL_ATTR, REV_ATTR, SHAPE_ATTR,
149: TABINDEX_ATTR, TARGET_ATTR, TYPE_ATTR };
150: String[] ANCHOR_PASSTHROUGH_ATTRIBUTES = (String[]) ArrayUtils
151: .concat(ANCHOR_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
152: String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_STYLE = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
153: .concat(ANCHOR_ATTRIBUTES,
154: COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE);
155: String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
156: .concat(ANCHOR_ATTRIBUTES,
157: COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE);
158:
159: // <form>
160: String ACCEPT_CHARSET_ATTR = "accept-charset";
161: String ENCTYPE_ATTR = "enctype";
162: String ONRESET_ATTR = "onreset";
163: String ONSUMBIT_ATTR = "onsubmit";
164: String[] FORM_ATTRIBUTES = { ACCEPT_ATTR, ACCEPT_CHARSET_ATTR,
165: ENCTYPE_ATTR, ONRESET_ATTR, ONSUMBIT_ATTR, TARGET_ATTR, };
166: String[] FORM_PASSTHROUGH_ATTRIBUTES = (String[]) ArrayUtils
167: .concat(FORM_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
168:
169: // <img>
170: String SRC_ATTR = "src";
171: String ALT_ATTR = "alt";
172: String HEIGHT_ATTR = "height";
173: String HSPACE_ATTR = "hspace";
174: String ISMAP_ATTR = "ismap";
175: String LONGDESC_ATTR = "longdesc";
176: String USEMAP_ATTR = "usemap";
177: String VSPACE_ATTR = "vspace";
178:
179: String[] IMG_ATTRIBUTES = { ALIGN_ATTR, ALT_ATTR, BORDER_ATTR,
180: HEIGHT_ATTR, HSPACE_ATTR, ISMAP_ATTR, LONGDESC_ATTR,
181: USEMAP_ATTR, VSPACE_ATTR, WIDTH_ATTR };
182: String[] IMG_PASSTHROUGH_ATTRIBUTES = (String[]) ArrayUtils.concat(
183: IMG_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
184:
185: // <input>
186: String SIZE_ATTR = "size";
187: String AUTOCOMPLETE_ATTR = "autocomplete";
188: String CHECKED_ATTR = "checked";
189: String MAXLENGTH_ATTR = "maxlength";
190:
191: String[] INPUT_ATTRIBUTES = { ALIGN_ATTR, ALT_ATTR, CHECKED_ATTR,
192: MAXLENGTH_ATTR, READONLY_ATTR, SIZE_ATTR };
193: String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = (String[]) ArrayUtils
194: .concat(INPUT_ATTRIBUTES,
195: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
196: String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE = (String[]) ArrayUtils
197: .concat(INPUT_ATTRIBUTES,
198: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE);
199:
200: String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
201: .concat(INPUT_ATTRIBUTES,
202: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK);
203:
204: //values for input-type attribute
205: String INPUT_TYPE_SUBMIT = "submit";
206: String INPUT_TYPE_IMAGE = "image";
207: String INPUT_TYPE_HIDDEN = "hidden";
208: String INPUT_TYPE_CHECKBOX = "checkbox";
209: String INPUT_TYPE_PASSWORD = "password";
210: String INPUT_TYPE_TEXT = "text";
211: String INPUT_TYPE_RADIO = "radio";
212: String INPUT_TYPE_BUTTON = "button";
213:
214: // <button>
215: String[] BUTTON_ATTRIBUTES = { ALIGN_ATTR, ALT_ATTR, };
216: String[] BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
217: .concat(BUTTON_ATTRIBUTES,
218: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
219: String[] BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
220: .concat(BUTTON_ATTRIBUTES,
221: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK);
222:
223: // <iframe>
224: String FRAMEBORDER_ATTR = "frameborder";
225: String SCROLLING_ATTR = "scrolling";
226:
227: // <label>
228: String FOR_ATTR = "for";
229: String[] LABEL_ATTRIBUTES = { ACCESSKEY_ATTR, ONBLUR_ATTR,
230: ONFOCUS_ATTR
231: //FOR_ATTR is no pass through !
232: };
233: String[] LABEL_PASSTHROUGH_ATTRIBUTES = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
234: .concat(LABEL_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
235:
236: // <select>
237: String MULTIPLE_ATTR = "multiple";
238:
239: String[] SELECT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED;
240:
241: // <table>
242: String BGCOLOR_ATTR = "bgcolor";
243: String CELLPADDING_ATTR = "cellpadding";
244: String CELLSPACING_ATTR = "cellspacing";
245: String FRAME_ATTR = "frame";
246: String RULES_ATTR = "rules";
247: String SUMMARY_ATTR = "summary";
248: String[] TABLE_ATTRIBUTES = { ALIGN_ATTR, BGCOLOR_ATTR,
249: BORDER_ATTR, CELLPADDING_ATTR, CELLSPACING_ATTR,
250: FRAME_ATTR, RULES_ATTR, SUMMARY_ATTR, WIDTH_ATTR };
251: String[] TABLE_PASSTHROUGH_ATTRIBUTES = (String[]) ArrayUtils
252: .concat(TABLE_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
253:
254: // <textarea>
255: String COLS_ATTR = "cols";
256: String ROWS_ATTR = "rows";
257: String WRAP_ATTR = "wrap";
258: String[] TEXTAREA_ATTRIBUTES = { COLS_ATTR, READONLY_ATTR,
259: ROWS_ATTR, WRAP_ATTR };
260: String[] TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = (String[]) ArrayUtils
261: .concat(TEXTAREA_ATTRIBUTES,
262: COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
263:
264: // <input type=file>
265: String[] INPUT_FILE_UPLOAD_ATTRIBUTES = { ACCEPT_ATTR };
266: String[] INPUT_FILE_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = (String[]) ArrayUtils
267: .concat(INPUT_FILE_UPLOAD_ATTRIBUTES,
268: INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
269:
270: /*
271: String[] MESSAGE_PASSTHROUGH_ATTRIBUTES =
272: (String[]) ArrayUtils.concat(
273: new String[] {DIR_ATTR, LANG_ATTR, TITLE_ATTR, STYLE_ATTR, STYLE_CLASS_ATTR},
274: EVENT_HANDLER_ATTRIBUTES);
275: */
276:
277: String[] MESSAGE_PASSTHROUGH_ATTRIBUTES_WITHOUT_TITLE_STYLE_AND_STYLE_CLASS = (String[]) org.apache.myfaces.shared_impl.util.ArrayUtils
278: .concat(new String[] { DIR_ATTR, LANG_ATTR },
279: EVENT_HANDLER_ATTRIBUTES);
280:
281: // selectOne/Many table
282: String[] SELECT_TABLE_PASSTHROUGH_ATTRIBUTES = new String[] {
283: STYLE_ATTR, STYLE_CLASS_ATTR, BORDER_ATTR };
284:
285: String COMPACT_ATTR = "compact";
286: String[] UL_ATTRIBUTES = { COMPACT_ATTR, TYPE_ATTR };
287: String[] UL_PASSTHROUGH_ATTRIBUTES = (String[]) ArrayUtils.concat(
288: UL_ATTRIBUTES, COMMON_PASSTROUGH_ATTRIBUTES);
289:
290: //HTML attributes needed for renderding only
291: String ID_ATTR = "id";
292: String NAME_ATTR = "name";
293: String VALUE_ATTR = "value";
294: String METHOD_ATTR = "method";
295: String ACTION_ATTR = "action";
296: String COLSPAN_ATTR = "colspan";
297: String SCOPE_ATTR = "scope";
298: String LABEL_ATTR = "label";
299: String SELECTED_ATTR = "selected";
300:
301: //HTML attributes values
302: String SCOPE_COLGROUP_VALUE = "colgroup";
303:
304: //HTML element constants
305: String SPAN_ELEM = "span";
306: String DIV_ELEM = "div";
307: String INPUT_ELEM = "input";
308: String BUTTON_ELEM = "button";
309: String SELECT_ELEM = "select";
310: String OPTION_ELEM = "option";
311: String OPTGROUP_ELEM = "optgroup";
312: String TEXTAREA_ELEM = "textarea";
313: String FORM_ELEM = "form";
314: String ANCHOR_ELEM = "a";
315: String H1_ELEM = "h1";
316: String H2_ELEM = "h2";
317: String H3_ELEM = "h3";
318: String H4_ELEM = "h4";
319: String H5_ELEM = "h5";
320: String H6_ELEM = "h6";
321: String IFRAME_ELEM = "iframe";
322: String IMG_ELEM = "img";
323: String LABEL_ELEM = "label";
324: String TABLE_ELEM = "table";
325: String CAPTION_ELEM = "caption";
326: String TR_ELEM = "tr";
327: String TH_ELEM = "th";
328: String TD_ELEM = "td";
329: String TBODY_ELEM = "tbody";
330: String TFOOT_ELEM = "tfoot";
331: String THEAD_ELEM = "thead";
332: String STYLE_ELEM = "style";
333: String SCRIPT_ELEM = "script";
334: String SCRIPT_TYPE_ATTR = "type";
335: String SCRIPT_TYPE_TEXT_JAVASCRIPT = "text/javascript";
336: String STYLE_TYPE_TEXT_CSS = "text/css";
337: String SCRIPT_LANGUAGE_ATTR = "language";
338: String SCRIPT_LANGUAGE_JAVASCRIPT = "JavaScript";
339: String SCRIPT_ELEM_DEFER_ATTR = "defer";
340: String LINK_ELEM = "link";
341: String STYLESHEET_VALUE = "stylesheet";
342: String UL_ELEM = "ul";
343: String OL_ELEM = "ol";
344: String LI_ELEM = "li";
345:
346: //HTML simple element constants
347: String BR_ELEM = "br";
348:
349: //HTML entities
350: String NBSP_ENTITY = " ";
351:
352: String HREF_PATH_SEPARATOR = "/";
353: String HREF_PATH_FROM_PARAM_SEPARATOR = "?";
354: String HREF_PARAM_SEPARATOR = "&";
355: String HREF_PARAM_NAME_FROM_VALUE_SEPARATOR = "=";
356:
357: }
|