/*
* � Copyright IBM Corp. 2010, 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.xsp.extlib.component.dojo.form;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.ValueBinding;
import com.ibm.xsp.binding.ComponentBindingObject;
/**
* Dojo TextBox component.
*
* @author Philippe Riand
*/
public class UIDojoTextBox extends UIDojoFormWidgetBase {
public static final String RENDERER_TYPE = "com.ibm.xsp.extlib.dojo.form.TextBox"; //$NON-NLS-1$
// TextBox
private Boolean trim;
private Boolean propercase;
private Boolean lowercase;
private Boolean uppercase;
private Integer maxLength;
private String format; // Extension point
private String parse; // Extension point
public UIDojoTextBox() {
setRendererType(RENDERER_TYPE);
}
public boolean isTrim() {
if (null != this.trim) {
return this.trim;
}
ValueBinding _vb = getValueBinding("trim"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setTrim(boolean trim) {
this.trim = trim;
}
public boolean isPropercase() {
if (null != this.propercase) {
return this.propercase;
}
ValueBinding _vb = getValueBinding("propercase"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setPropercase(boolean propercase) {
this.propercase = propercase;
}
public boolean isLowercase() {
if (null != this.lowercase) {
return this.lowercase;
}
ValueBinding _vb = getValueBinding("lowercase"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setLowercase(boolean lowercase) {
this.lowercase = lowercase;
}
public boolean isUppercase() {
if (null != this.uppercase) {
return this.uppercase;
}
ValueBinding _vb = getValueBinding("uppercase"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setUppercase(boolean uppercase) {
this.uppercase = uppercase;
}
public int getMaxLength() {
if (null != this.maxLength) {
return this.maxLength;
}
ValueBinding _vb = getValueBinding("maxLength"); //$NON-NLS-1$
if (_vb != null) {
Number val = (Number) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val.intValue();
}
}
return 0;
}
public void setMaxLength(int maxLength) {
this.maxLength = maxLength;
}
public String getFormat() {
if (null != this.format) {
return this.format;
}
ValueBinding _vb = getValueBinding("format"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setFormat(String format) {
this.format = format;
}
public String getParse() {
if (null != this.parse) {
return this.parse;
}
ValueBinding _vb = getValueBinding("parse"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setParse(String parse) {
this.parse = parse;
}
// FacesComponent
@Override
public void initBeforeContents(FacesContext context) throws FacesException {
// Force the converter
Converter converter = getDefaultConverter();
if(converter instanceof ComponentBindingObject) {
((ComponentBindingObject)converter).setComponent(this);
}
super.setConverter(converter);
super.initBeforeContents(context);
}
// @Override
// public void initBeforeContents(FacesContext context) throws FacesException {
// // Force the converter
// Converter converter = getConverter();
// if(converter==null) {
// converter = getDefaultConverter();
// if(converter instanceof ComponentBindingObject) {
// ((ComponentBindingObject)converter).setComponent(this);
// }
// super.setConverter(converter);
// }
//
// super.initBeforeContents(context);
// }
// Default properties
protected Converter getDefaultConverter() {
return null;
}
// State management
@Override
public void restoreState(FacesContext _context, Object _state) {
Object _values[] = (Object[]) _state;
super.restoreState(_context, _values[0]);
this.trim = (Boolean)_values[1];
this.lowercase = (Boolean)_values[2];
this.uppercase = (Boolean)_values[3];
this.propercase = (Boolean)_values[4];
this.maxLength= (Integer)_values[5];
this.format = (String)_values[6];
this.parse = (String)_values[7];
}
@Override
public Object saveState(FacesContext _context) {
Object _values[] = new Object[8];
_values[0] = super.saveState(_context);
_values[1] = trim;
_values[2] = lowercase;
_values[3] = uppercase;
_values[4] = propercase;
_values[5] = maxLength;
_values[6] = format;
_values[7] = parse;
return _values;
}
}