KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > renderkit > dom_html_basic > DomBasicInputRenderer


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.faces.renderkit.dom_html_basic;
35
36 import javax.faces.component.UIComponent;
37 import javax.faces.component.UIInput;
38 import javax.faces.component.ValueHolder;
39 import javax.faces.context.FacesContext;
40 import javax.faces.convert.Converter;
41 import javax.faces.convert.ConverterException;
42 import javax.faces.el.ValueBinding;
43
44 public abstract class DomBasicInputRenderer extends DomBasicRenderer {
45
46     /**
47      * Set the submittedValue parameter to the UIComponent instance if and only
48      * if the UIComponent is a subclass of UIInput
49      */

50     public void setSubmittedValue(UIComponent uiComponent,
51                                   Object JavaDoc submittedValue) {
52         if (uiComponent instanceof UIInput) {
53             ((UIInput) uiComponent).setSubmittedValue(submittedValue);
54         }
55     }
56
57     Object JavaDoc getValue(UIComponent uiComponent) {
58         Object JavaDoc value = null;
59         if (uiComponent instanceof ValueHolder) {
60             value = ((ValueHolder) uiComponent).getValue();
61         }
62         return value;
63     }
64
65     /**
66      * Return the converted submittedValue. If a converter is registered with
67      * the component then use that converter. Otherwise get the default
68      * converter corresponding to the type of the value binding. If no converter
69      * is found then return the submittedValue unchanged.
70      *
71      * @param facesContext the current FacesContext
72      * @param uiComponent the uiComponent whose value will be converted.
73      * @param submittedValue the submittedValue to be submitted
74      */

75
76     public Object JavaDoc getConvertedValue(FacesContext facesContext, UIComponent
77             uiComponent, Object JavaDoc submittedValue) throws ConverterException {
78
79         // get the converter (if any) registered with this component
80
Converter converter = null;
81         if (uiComponent instanceof ValueHolder) {
82             converter = ((ValueHolder) uiComponent).getConverter();
83         }
84         // if we didn't find a converter specifically registered with the component
85
// then get the default converter for the type of the value binding,
86
// if it exists
87
ValueBinding valueBinding = uiComponent.getValueBinding("value");
88         if (converter == null && valueBinding != null) {
89             Class JavaDoc valueBindingClass = valueBinding.getType(facesContext);
90             if (valueBindingClass != null) {
91                 converter = facesContext.getApplication()
92                         .createConverter(valueBindingClass);
93             }
94         }
95
96         if (converter != null) {
97             return converter.getAsObject(facesContext, uiComponent,
98                                          (String JavaDoc) submittedValue);
99         } else if (submittedValue != null) {
100             return (String JavaDoc) submittedValue;
101         } else {
102             return null;
103         }
104     }
105 }
106
Popular Tags