View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.myfaces.shared.renderkit.html;
20  
21  import org.apache.myfaces.shared.util.ArrayUtils;
22  
23  
24  /**
25   * Constant declarations for HTML rendering.
26   */
27  public interface HTML
28  {
29      // Deprecated attributes
30      @Deprecated String DATAFLD_ATTR = "datafld";
31      @Deprecated String DATASRC_ATTR = "datasrc";
32      @Deprecated String DATAFORMATAS_ATTR = "dataformatas";
33  
34      // Common attributes
35      String ALIGN_ATTR = "align";
36      String BORDER_ATTR = "border";
37      String WIDTH_ATTR = "width";
38      String READONLY_ATTR = "readonly";
39      String FILE_ATTR = "file";
40      String ACCEPT_ATTR = "accept";
41  
42      // Common event handler attributes
43      String ONCLICK_ATTR     = "onclick";
44      String ONDBLCLICK_ATTR  = "ondblclick";
45      String ONMOUSEDOWN_ATTR = "onmousedown";
46      String ONMOUSEUP_ATTR   = "onmouseup";
47      String ONMOUSEOVER_ATTR = "onmouseover";
48      String ONMOUSEMOVE_ATTR = "onmousemove";
49      String ONMOUSEOUT_ATTR  = "onmouseout";
50      String ONKEYPRESS_ATTR  = "onkeypress";
51      String ONKEYDOWN_ATTR   = "onkeydown";
52      String ONKEYUP_ATTR     = "onkeyup";
53      String ONFOCUS_ATTR = "onfocus";
54      String ONBLUR_ATTR = "onblur";
55      String[] EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK =
56      {
57          ONDBLCLICK_ATTR,
58          ONMOUSEDOWN_ATTR,
59          ONMOUSEUP_ATTR,
60          ONMOUSEOVER_ATTR,
61          ONMOUSEMOVE_ATTR,
62          ONMOUSEOUT_ATTR,
63          ONKEYPRESS_ATTR,
64          ONKEYDOWN_ATTR,
65          ONKEYUP_ATTR
66      };
67      String[] EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONMOUSEOVER_AND_ONMOUSEOUT =
68      {
69          ONDBLCLICK_ATTR,
70          ONMOUSEDOWN_ATTR,
71          ONMOUSEUP_ATTR,
72          ONMOUSEMOVE_ATTR,
73          ONKEYPRESS_ATTR,
74          ONKEYDOWN_ATTR,
75          ONKEYUP_ATTR,
76          ONCLICK_ATTR
77      };
78      String[] EVENT_HANDLER_ATTRIBUTES =
79              (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
80                  EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
81                  new String[] {ONCLICK_ATTR});
82  
83      // Input field event handler attributes
84      String ONSELECT_ATTR = "onselect";
85      String ONCHANGE_ATTR = "onchange";
86      String[] COMMON_FIELD_EVENT_ATTRIBUTES =
87      {
88          ONFOCUS_ATTR,
89          ONBLUR_ATTR,
90          ONSELECT_ATTR,
91          ONCHANGE_ATTR
92      };
93  
94      String[] COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS =
95      {
96          ONBLUR_ATTR,
97          ONSELECT_ATTR,
98          ONCHANGE_ATTR
99      };
100     
101     String[] COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONSELECT_AND_ONCHANGE =
102     {
103         ONFOCUS_ATTR,
104         ONBLUR_ATTR
105     };
106 
107     // universal attributes
108     String DIR_ATTR   = "dir";
109     String LANG_ATTR  = "lang";
110     String STYLE_ATTR = "style";
111     String TITLE_ATTR = "title";
112     String STYLE_CLASS_ATTR = "styleClass"; //"class" cannot be used as property name
113     // Role attribute (applies for "every" html tag)
114     String ROLE_ATTR  = "role"; 
115     
116     String[] UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE =
117     {
118         DIR_ATTR,
119         LANG_ATTR,
120         TITLE_ATTR,
121         ROLE_ATTR,
122         //NOTE: if changed, please verify universal attributes in HtmlMessageRenderer !
123     };
124     String[] UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE_AND_TITLE =
125     {
126         DIR_ATTR,
127         LANG_ATTR,
128         ROLE_ATTR,
129     };
130     String[] UNIVERSAL_ATTRIBUTES =
131             (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
132                 UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE,
133                 new String[] {STYLE_ATTR, STYLE_CLASS_ATTR});
134 
135     //universal, but not the same property-name -
136     //styleClass attribute is rendered as such
137     String CLASS_ATTR = "class";
138 
139     // common form field attributes
140     String ACCESSKEY_ATTR   = "accesskey";
141     String TABINDEX_ATTR    = "tabindex";
142     String DISABLED_ATTR = "disabled";
143     String[] COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED =
144     {
145         ACCESSKEY_ATTR,
146         TABINDEX_ATTR
147     };
148     String[] COMMON_FIELD_ATTRIBUTES =
149         (String[]) ArrayUtils.concat(
150             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
151             new String[] {DISABLED_ATTR});
152 
153     // Common Attributes
154     String[] COMMON_PASSTROUGH_ATTRIBUTES =
155         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
156             EVENT_HANDLER_ATTRIBUTES,
157             UNIVERSAL_ATTRIBUTES);
158     String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE =
159         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
160             EVENT_HANDLER_ATTRIBUTES,
161             UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE);
162     String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK =
163         (String[]) ArrayUtils.concat(
164             EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
165             UNIVERSAL_ATTRIBUTES);
166     String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE =
167         (String[]) ArrayUtils.concat(
168             EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONCLICK,
169             UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE);
170     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED =
171         (String[]) ArrayUtils.concat(
172             COMMON_PASSTROUGH_ATTRIBUTES,
173             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
174             COMMON_FIELD_EVENT_ATTRIBUTES);
175     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE =
176         (String[]) ArrayUtils.concat(
177             COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE,
178             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
179             COMMON_FIELD_EVENT_ATTRIBUTES);
180     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS =
181         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
182             COMMON_PASSTROUGH_ATTRIBUTES,
183             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
184             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS);
185     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK =
186         (String[]) ArrayUtils.concat(
187             COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK,
188             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
189             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONFOCUS);
190     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK =
191         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
192             COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK,
193             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED,
194             COMMON_FIELD_EVENT_ATTRIBUTES);
195     String[] COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONMOUSEOVER_AND_ONMOUSEOUT =
196         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
197             EVENT_HANDLER_ATTRIBUTES_WITHOUT_ONMOUSEOVER_AND_ONMOUSEOUT,
198             UNIVERSAL_ATTRIBUTES);
199     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS =
200         (String[]) ArrayUtils.concat(
201             UNIVERSAL_ATTRIBUTES,
202             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED);
203     String[] COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE_AND_EVENTS =
204         (String[]) ArrayUtils.concat(
205             UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE,
206             COMMON_FIELD_ATTRIBUTES_WITHOUT_DISABLED);
207     
208     // <a>
209     String TARGET_ATTR = "target";  //used by <a> and <form>
210     String CHARSET_ATTR     = "charset";
211     String COORDS_ATTR      = "coords";
212     String HREF_ATTR    = "href";
213     String HREFLANG_ATTR    = "hreflang";
214     String REL_ATTR         = "rel";
215     String REV_ATTR         = "rev";
216     String SHAPE_ATTR       = "shape";
217     String TYPE_ATTR        = "type";
218     String[] ANCHOR_ATTRIBUTES =
219     {
220         ACCESSKEY_ATTR,
221         CHARSET_ATTR,
222         COORDS_ATTR,
223         HREFLANG_ATTR,
224         REL_ATTR,
225         REV_ATTR,
226         SHAPE_ATTR,
227         TABINDEX_ATTR,
228         TARGET_ATTR,
229         TYPE_ATTR
230     };
231     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES =
232         (String[]) ArrayUtils.concat(
233             ANCHOR_ATTRIBUTES,
234             COMMON_PASSTROUGH_ATTRIBUTES,
235             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONSELECT_AND_ONCHANGE);
236     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_STYLE =
237         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
238             ANCHOR_ATTRIBUTES,
239             COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE,
240             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONSELECT_AND_ONCHANGE);
241     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE =
242         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
243             ANCHOR_ATTRIBUTES,
244             COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONCLICK_WITHOUT_STYLE,
245             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONSELECT_AND_ONCHANGE);
246     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
247         (String[]) ArrayUtils.concat(
248             ANCHOR_ATTRIBUTES,
249             UNIVERSAL_ATTRIBUTES);
250     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_STYLE_AND_EVENTS =
251         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
252             ANCHOR_ATTRIBUTES,
253             UNIVERSAL_ATTRIBUTES_WITHOUT_STYLE);
254     
255     String[] ANCHOR_ATTRIBUTES_DISABLED =
256     {
257         ACCESSKEY_ATTR,
258         TABINDEX_ATTR,
259     };
260     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_DISABLED =
261         (String[]) ArrayUtils.concat(
262             ANCHOR_ATTRIBUTES_DISABLED,
263             COMMON_PASSTROUGH_ATTRIBUTES,
264             COMMON_FIELD_EVENT_ATTRIBUTES_WITHOUT_ONSELECT_AND_ONCHANGE);
265     String[] ANCHOR_PASSTHROUGH_ATTRIBUTES_DISABLED_WITHOUT_EVENTS =
266         (String[]) ArrayUtils.concat(
267             ANCHOR_ATTRIBUTES_DISABLED,
268             UNIVERSAL_ATTRIBUTES);
269     
270     // <form>
271     String ACCEPT_CHARSET_ATTR = "accept-charset";
272     String ENCTYPE_ATTR = "enctype";
273     String ONRESET_ATTR = "onreset";
274     String ONSUMBIT_ATTR = "onsubmit";
275     String[] FORM_ATTRIBUTES =
276     {
277         ACCEPT_ATTR,
278         ACCEPT_CHARSET_ATTR,
279         ENCTYPE_ATTR,
280         ONRESET_ATTR,
281         ONSUMBIT_ATTR,
282         TARGET_ATTR,
283     };
284     String[] FORM_PASSTHROUGH_ATTRIBUTES =
285         (String[]) ArrayUtils.concat(
286             FORM_ATTRIBUTES,
287             COMMON_PASSTROUGH_ATTRIBUTES);
288     String[] FORM_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
289         (String[]) ArrayUtils.concat(
290             FORM_ATTRIBUTES,
291             UNIVERSAL_ATTRIBUTES);
292     // <img>
293     String SRC_ATTR = "src";
294     String ALT_ATTR = "alt";
295     String HEIGHT_ATTR = "height";
296     String HSPACE_ATTR = "hspace";
297     String ISMAP_ATTR = "ismap";
298     String LONGDESC_ATTR = "longdesc";
299     String USEMAP_ATTR = "usemap";
300     String VSPACE_ATTR = "vspace";
301 
302     String[] IMG_ATTRIBUTES =
303     {
304         ALIGN_ATTR,
305         ALT_ATTR,
306         BORDER_ATTR,
307         HEIGHT_ATTR,
308         HSPACE_ATTR,
309         ISMAP_ATTR,
310         LONGDESC_ATTR,
311         USEMAP_ATTR,
312         VSPACE_ATTR,
313         WIDTH_ATTR
314     };
315     String[] IMG_PASSTHROUGH_ATTRIBUTES =
316         (String[]) ArrayUtils.concat(
317            IMG_ATTRIBUTES,
318            COMMON_PASSTROUGH_ATTRIBUTES);
319     String[] IMG_PASSTHROUGH_ATTRIBUTES_WITHOUT_ONMOUSEOVER_AND_ONMOUSEOUT =
320         (String[]) ArrayUtils.concat(
321            IMG_ATTRIBUTES,
322            COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_ONMOUSEOVER_AND_ONMOUSEOUT);
323     String[] IMG_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
324         (String[]) ArrayUtils.concat(
325            IMG_ATTRIBUTES,
326            UNIVERSAL_ATTRIBUTES);
327     // <input>
328     String SIZE_ATTR = "size";
329     String AUTOCOMPLETE_ATTR = "autocomplete";
330     String CHECKED_ATTR = "checked";
331     String MAXLENGTH_ATTR = "maxlength";
332 
333     String[] INPUT_ATTRIBUTES = {
334         ALIGN_ATTR,
335         ALT_ATTR,
336         CHECKED_ATTR,
337         MAXLENGTH_ATTR,
338         READONLY_ATTR,
339         SIZE_ATTR
340     };
341     String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED =
342         (String[]) ArrayUtils.concat(
343                 INPUT_ATTRIBUTES,
344                 COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
345     String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE =
346         (String[]) ArrayUtils.concat(
347                 INPUT_ATTRIBUTES,
348                 COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE);
349 
350     String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK =
351         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
352                 INPUT_ATTRIBUTES,
353                 COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK);
354 
355     String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS =
356         (String[]) ArrayUtils.concat(
357                 INPUT_ATTRIBUTES,
358                 COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
359     
360     String[] INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE_AND_EVENTS =
361         (String[]) ArrayUtils.concat(
362                 INPUT_ATTRIBUTES,
363                 COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE_AND_EVENTS);
364 
365     //values for input-type attribute
366     String INPUT_TYPE_SUBMIT = "submit";
367     String INPUT_TYPE_IMAGE = "image";
368     String INPUT_TYPE_HIDDEN = "hidden";
369     String INPUT_TYPE_CHECKBOX = "checkbox";
370     String INPUT_TYPE_PASSWORD = "password";
371     String INPUT_TYPE_TEXT = "text";
372     String INPUT_TYPE_RADIO = "radio";
373     String INPUT_TYPE_BUTTON = "button";
374     String INPUT_TYPE_FILE = "file";
375 
376     // <button>
377     String[] BUTTON_ATTRIBUTES =
378     {
379         ALIGN_ATTR,
380         ALT_ATTR,
381     };
382     String[] BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED =
383         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
384             BUTTON_ATTRIBUTES,
385             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
386     String[] BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK =
387         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
388             BUTTON_ATTRIBUTES,
389             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONCLICK);
390     String[] BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS =
391         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
392             BUTTON_ATTRIBUTES,
393             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
394 
395     // <iframe>
396     String FRAMEBORDER_ATTR = "frameborder";
397     String SCROLLING_ATTR = "scrolling";
398 
399     // <label>
400     String FOR_ATTR = "for";
401     String[] LABEL_ATTRIBUTES =
402     {
403         ACCESSKEY_ATTR,
404         ONBLUR_ATTR,
405         ONFOCUS_ATTR
406         //FOR_ATTR is no pass through !
407     };
408     String[] LABEL_ATTRIBUTES_WITHOUT_EVENTS =
409     {
410         ACCESSKEY_ATTR
411     };
412     String[] LABEL_PASSTHROUGH_ATTRIBUTES =
413         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
414             LABEL_ATTRIBUTES,
415             COMMON_PASSTROUGH_ATTRIBUTES);
416     String[] LABEL_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
417         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
418             LABEL_ATTRIBUTES_WITHOUT_EVENTS,
419             UNIVERSAL_ATTRIBUTES);
420 
421     // <select>
422     String MULTIPLE_ATTR = "multiple";
423 
424     String[] SELECT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED = 
425             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED;
426     String[] SELECT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS = 
427         COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS;
428 
429     // <table>
430     String BGCOLOR_ATTR = "bgcolor";
431     String CELLPADDING_ATTR = "cellpadding";
432     String CELLSPACING_ATTR = "cellspacing";
433     String FRAME_ATTR = "frame";
434     String RULES_ATTR = "rules";
435     String SUMMARY_ATTR = "summary";
436     String[] TABLE_ATTRIBUTES = {
437         ALIGN_ATTR,
438         BGCOLOR_ATTR,
439         BORDER_ATTR,
440         CELLPADDING_ATTR,
441         CELLSPACING_ATTR,
442         FRAME_ATTR,
443         RULES_ATTR,
444         SUMMARY_ATTR,
445         WIDTH_ATTR
446     };
447     String[] TABLE_PASSTHROUGH_ATTRIBUTES =
448         (String[]) ArrayUtils.concat(
449             TABLE_ATTRIBUTES,
450             COMMON_PASSTROUGH_ATTRIBUTES);
451     String[] TABLE_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
452         (String[]) ArrayUtils.concat(
453             TABLE_ATTRIBUTES,
454             UNIVERSAL_ATTRIBUTES);
455 
456     // <textarea>
457     String COLS_ATTR = "cols";
458     String ROWS_ATTR = "rows";
459     String WRAP_ATTR = "wrap";
460     String[] TEXTAREA_ATTRIBUTES =
461     {
462         COLS_ATTR,
463         READONLY_ATTR,
464         ROWS_ATTR,
465         WRAP_ATTR
466     };
467     String[] TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED =
468         (String[]) ArrayUtils.concat(
469             TEXTAREA_ATTRIBUTES,
470             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED);
471     String[] TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS =
472         (String[]) ArrayUtils.concat(
473             TEXTAREA_ATTRIBUTES,
474             COMMON_FIELD_PASSTROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
475 
476     // <input type=file>
477     String[] INPUT_FILE_UPLOAD_ATTRIBUTES =
478     {
479         ACCEPT_ATTR
480     };
481     String[] INPUT_FILE_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED =
482         (String[]) ArrayUtils.concat(
483             INPUT_FILE_UPLOAD_ATTRIBUTES,
484             INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
485     String[] INPUT_FILE_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS =
486         (String[]) ArrayUtils.concat(
487             INPUT_FILE_UPLOAD_ATTRIBUTES,
488             INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
489 
490     /*
491     String[] MESSAGE_PASSTHROUGH_ATTRIBUTES =
492         (String[]) ArrayUtils.concat(
493             new String[] {DIR_ATTR, LANG_ATTR, TITLE_ATTR, STYLE_ATTR, STYLE_CLASS_ATTR},
494             EVENT_HANDLER_ATTRIBUTES);
495             */
496 
497     String[] MESSAGE_PASSTHROUGH_ATTRIBUTES_WITHOUT_TITLE_STYLE_AND_STYLE_CLASS =
498         (String[]) org.apache.myfaces.shared.util.ArrayUtils.concat(
499             new String[] {DIR_ATTR, LANG_ATTR},
500             EVENT_HANDLER_ATTRIBUTES);
501 
502 
503     // selectOne/Many table
504     String[] SELECT_TABLE_PASSTHROUGH_ATTRIBUTES =
505         new String[] {STYLE_ATTR, STYLE_CLASS_ATTR, BORDER_ATTR};
506 
507     String COMPACT_ATTR = "compact";
508     String[] UL_ATTRIBUTES = {
509         COMPACT_ATTR,
510         TYPE_ATTR
511     };
512     String[] UL_PASSTHROUGH_ATTRIBUTES =
513         (String[]) ArrayUtils.concat(
514             UL_ATTRIBUTES,
515             COMMON_PASSTROUGH_ATTRIBUTES);
516     String[] UL_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
517         (String[]) ArrayUtils.concat(
518             UL_ATTRIBUTES,
519             UNIVERSAL_ATTRIBUTES);
520 
521     //head
522     String HEAD_ELEM = "head";
523     
524     //body
525     String BODY_ELEM = "body";
526     String BODY_TARGET = BODY_ELEM;
527     
528     String ONLOAD_ATTR = "onload";
529     String ONUNLOAD_ATTR = "onunload";
530     String ALINK_ATTR = "alink";
531     String VLINK_ATTR = "vlink";
532     String LINK_ATTR = "link";
533     String TEXT_ATTR = "text";
534     String BACKGROUND_ATTR = "background";
535 
536     String[] BODY_ATTRIBUTES =
537     {
538         ONLOAD_ATTR,
539         ONUNLOAD_ATTR,
540         ALINK_ATTR,
541         VLINK_ATTR,
542         LINK_ATTR,
543         TEXT_ATTR,
544         BACKGROUND_ATTR,
545         BGCOLOR_ATTR
546     };
547     
548     String[] BODY_ATTRIBUTES_WITHOUT_EVENTS =
549     {
550         ALINK_ATTR,
551         VLINK_ATTR,
552         LINK_ATTR,
553         TEXT_ATTR,
554         BACKGROUND_ATTR,
555         BGCOLOR_ATTR
556     };
557 
558     String[] BODY_PASSTHROUGH_ATTRIBUTES =
559         (String[]) ArrayUtils.concat(
560                 COMMON_PASSTROUGH_ATTRIBUTES,
561                 BODY_ATTRIBUTES);
562     String[] BODY_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS =
563         (String[]) ArrayUtils.concat(
564                 UNIVERSAL_ATTRIBUTES,
565                 BODY_ATTRIBUTES_WITHOUT_EVENTS);
566     //HTML attributes needed for renderding only
567     String ID_ATTR = "id";
568     String NAME_ATTR = "name";
569     String VALUE_ATTR = "value";
570     String METHOD_ATTR = "method";
571     String ACTION_ATTR = "action";
572     String COLSPAN_ATTR = "colspan";
573     String SCOPE_ATTR = "scope";
574     String LABEL_ATTR = "label";
575     String SELECTED_ATTR = "selected";
576     String XMLNS_ATTR = "xmlns";
577 
578     //HTML attributes values
579     String SCOPE_COLGROUP_VALUE = "colgroup";
580     String SCOPE_ROW_VALUE = "row";
581 
582     //HTML element constants
583     String SPAN_ELEM = "span";
584     String DIV_ELEM = "div";
585     String INPUT_ELEM = "input";
586     String BUTTON_ELEM = "button";
587     String SELECT_ELEM = "select";
588     String OPTION_ELEM = "option";
589     String OPTGROUP_ELEM = "optgroup";
590     String TEXTAREA_ELEM = "textarea";
591     String FORM_ELEM = "form";
592     String ANCHOR_ELEM = "a";
593     String H1_ELEM = "h1";
594     String H2_ELEM = "h2";
595     String H3_ELEM = "h3";
596     String H4_ELEM = "h4";
597     String H5_ELEM = "h5";
598     String H6_ELEM = "h6";
599     String IFRAME_ELEM = "iframe";
600     String IMG_ELEM = "img";
601     String LABEL_ELEM = "label";
602     String TABLE_ELEM = "table";
603     String CAPTION_ELEM = "caption";
604     String TR_ELEM = "tr";
605     String TH_ELEM = "th";
606     String TD_ELEM = "td";
607     String TBODY_ELEM = "tbody";
608     String TFOOT_ELEM = "tfoot";
609     String THEAD_ELEM = "thead";
610     String STYLE_ELEM = "style";
611     String SCRIPT_ELEM = "script";
612     String SCRIPT_TYPE_ATTR = "type";
613     String SCRIPT_TYPE_TEXT_JAVASCRIPT = "text/javascript";
614     String STYLE_TYPE_TEXT_CSS = "text/css";
615     String SCRIPT_LANGUAGE_ATTR = "language";
616     String SCRIPT_LANGUAGE_JAVASCRIPT = "JavaScript";
617     String SCRIPT_ELEM_DEFER_ATTR = "defer";
618     String LINK_ELEM = "link";
619     String STYLESHEET_VALUE = "stylesheet";
620     String UL_ELEM = "ul";
621     String OL_ELEM = "ol";
622     String LI_ELEM = "li";
623 
624 
625     //HTML simple element constants
626     String BR_ELEM = "br";
627 
628 
629     //HTML entities
630     String NBSP_ENTITY = "&#160;";
631 
632     String HREF_PATH_SEPARATOR = "/";
633     String HREF_PATH_FROM_PARAM_SEPARATOR = "?";
634     //removed because wrong for XHTML and not used anyway: String HREF_PARAM_SEPARATOR = "&";
635     String HREF_PARAM_NAME_FROM_VALUE_SEPARATOR = "=";
636 
637 }