/*
* � Copyright IBM Corp. 2010, 2012
*
* 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.el.ValueBinding;
import com.ibm.commons.util.StringUtil;
import com.ibm.xsp.component.FacesComponent;
import com.ibm.xsp.component.FacesInputComponent;
import com.ibm.xsp.component.UIFormEx;
import com.ibm.xsp.component.UIInputEx;
import com.ibm.xsp.component.UIViewRootEx;
import com.ibm.xsp.extlib.resources.ExtLibResources;
import com.ibm.xsp.extlib.stylekit.StyleKitExtLibDefault;
import com.ibm.xsp.page.FacesComponentBuilder;
import com.ibm.xsp.stylekit.ThemeControl;
import com.ibm.xsp.util.FacesUtil;
/**
* Base dojo form widget.
*
* @author Philippe Riand
*/
public abstract class UIDojoFormWidgetBase extends UIInputEx implements FacesComponent, FacesInputComponent, ThemeControl {
public static final String COMPONENT_TYPE = "com.ibm.xsp.extlib.dojo.form.FormWidgetBase"; //$NON-NLS-1$
// _Widget
// Properties related to other controls (splitter, layout containers...) are *not* exposed here
private String tooltip;
private String dir;
private Boolean dragRestriction;
private String group;
private String lang;
private String style;
private String styleClass;
private String title;
private String waiRole;
private String waiState;
private String onBlur;
private String onClick;
private String onClose;
private String onDblClick;
private String onFocus;
private String onHide;
private String onKeyDown;
private String onKeyPress;
private String onKeyUp;
private String onMouseDown;
private String onMouseEnter;
private String onMouseLeave;
private String onMouseMove;
private String onMouseOut;
private String onMouseOver;
private String onMouseUp;
private String onShow;
// _FormWidget
private String alt;
private String type;
private Integer tabIndex;
private Boolean disabled;
private Boolean readOnly;
private Boolean intermediateChanges;
private String onChange;
public UIDojoFormWidgetBase() {
}
// Client side validation is never enabled as it uses dojo client side
// validation
@Override
public boolean isDisableClientSideValidation() {
//super.isDisableClientSideValidation();
return true;
}
@Override
public String getStyleKitFamily() {
return StyleKitExtLibDefault.DOJO_FORM;
}
// FacesComponent
@Override
public void initBeforeContents(FacesContext context) throws FacesException {
super.initBeforeContents(context);
}
@Override
public void buildContents(FacesContext context, FacesComponentBuilder builder) throws FacesException {
super.buildContents(context, builder);
}
@Override
public void initAfterContents(FacesContext context) throws FacesException {
super.initAfterContents(context);
// ensure that the form has the right dojo type
UIViewRootEx rootEx = (UIViewRootEx)context.getViewRoot();
if(rootEx!=null) {
UIFormEx formEx = (UIFormEx)FacesUtil.getForm(this);
String formType = formEx.getDojoType();
if(StringUtil.isEmpty(formType)) {
rootEx.setDojoForm(true);
//formEx.setDojoType("dijit.form.Form");
rootEx.addResource(ExtLibResources.dijitFormForm);
}
}
}
public String getTooltip() {
if (null != this.tooltip) {
return this.tooltip;
}
ValueBinding _vb = getValueBinding("tooltip"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setTooltip(String tooltip) {
this.tooltip = tooltip;
}
public String getDir() {
if (null != this.dir) {
return this.dir;
}
ValueBinding _vb = getValueBinding("dir"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setDir(String dir) {
this.dir = dir;
}
public boolean isDragRestriction() {
if (null != this.dragRestriction) {
return this.dragRestriction;
}
ValueBinding _vb = getValueBinding("dragRestriction"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (java.lang.Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setDragRestriction(boolean dragRestriction) {
this.dragRestriction = dragRestriction;
}
public String getGroup() {
if (null != this.group) {
return this.group;
}
ValueBinding _vb = getValueBinding("group"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setGroup(String group) {
this.group = group;
}
public String getLang() {
if (null != this.lang) {
return this.lang;
}
ValueBinding _vb = getValueBinding("lang"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setLang(String lang) {
this.lang = lang;
}
public String getStyle() {
if (null != this.style) {
return this.style;
}
ValueBinding _vb = getValueBinding("style"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setStyle(String style) {
this.style = style;
}
public String getStyleClass() {
if (null != this.styleClass) {
return this.styleClass;
}
ValueBinding _vb = getValueBinding("styleClass"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setStyleClass(String styleClass) {
this.styleClass = styleClass;
}
public String getTitle() {
if (null != this.title) {
return this.title;
}
ValueBinding _vb = getValueBinding("title"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setTitle(String title) {
this.title = title;
}
public String getWaiRole() {
if (null != this.waiRole) {
return this.waiRole;
}
ValueBinding _vb = getValueBinding("waiRole"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setWaiRole(String waiRole) {
this.waiRole = waiRole;
}
public String getWaiState() {
if (null != this.waiState) {
return this.waiState;
}
ValueBinding _vb = getValueBinding("waiState"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setWaiState(String waiState) {
this.waiState = waiState;
}
public String getOnBlur() {
if (null != this.onBlur) {
return this.onBlur;
}
ValueBinding _vb = getValueBinding("onBlur"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnBlur(String onBlur) {
this.onBlur = onBlur;
}
public String getOnClick() {
if (null != this.onClick) {
return this.onClick;
}
ValueBinding _vb = getValueBinding("onClick"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnClick(String onClick) {
this.onClick = onClick;
}
public String getOnClose() {
if (null != this.onClose) {
return this.onClose;
}
ValueBinding _vb = getValueBinding("onClose"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnClose(String onClose) {
this.onClose = onClose;
}
public String getOnDblClick() {
if (null != this.onDblClick) {
return this.onDblClick;
}
ValueBinding _vb = getValueBinding("onDblClick"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnDblClick(String onDblClick) {
this.onDblClick = onDblClick;
}
public String getOnFocus() {
if (null != this.onFocus) {
return this.onFocus;
}
ValueBinding _vb = getValueBinding("onFocus"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnFocus(String onFocus) {
this.onFocus = onFocus;
}
public String getOnHide() {
if (null != this.onHide) {
return this.onHide;
}
ValueBinding _vb = getValueBinding("onHide"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnHide(String onHide) {
this.onHide = onHide;
}
public String getOnKeyDown() {
if (null != this.onKeyDown) {
return this.onKeyDown;
}
ValueBinding _vb = getValueBinding("onKeyDown"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnKeyDown(String onKeyDown) {
this.onKeyDown = onKeyDown;
}
public String getOnKeyPress() {
if (null != this.onKeyPress) {
return this.onKeyPress;
}
ValueBinding _vb = getValueBinding("onKeyPress"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnKeyPress(String onKeyPress) {
this.onKeyPress = onKeyPress;
}
public String getOnKeyUp() {
if (null != this.onKeyUp) {
return this.onKeyUp;
}
ValueBinding _vb = getValueBinding("onKeyUp"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnKeyUp(String onKeyUp) {
this.onKeyUp = onKeyUp;
}
public String getOnMouseDown() {
if (null != this.onMouseDown) {
return this.onMouseDown;
}
ValueBinding _vb = getValueBinding("onMouseDown"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseDown(String onMouseDown) {
this.onMouseDown = onMouseDown;
}
public String getOnMouseEnter() {
if (null != this.onMouseEnter) {
return this.onMouseEnter;
}
ValueBinding _vb = getValueBinding("onMouseEnter"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseEnter(String onMouseEnter) {
this.onMouseEnter = onMouseEnter;
}
public String getOnMouseLeave() {
if (null != this.onMouseLeave) {
return this.onMouseLeave;
}
ValueBinding _vb = getValueBinding("onMouseLeave"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseLeave(String onMouseLeave) {
this.onMouseLeave = onMouseLeave;
}
public String getOnMouseMove() {
if (null != this.onMouseMove) {
return this.onMouseMove;
}
ValueBinding _vb = getValueBinding("onMouseMove"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseMove(String onMouseMove) {
this.onMouseMove = onMouseMove;
}
public String getOnMouseOut() {
if (null != this.onMouseOut) {
return this.onMouseOut;
}
ValueBinding _vb = getValueBinding("onMouseOut"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseOut(String onMouseOut) {
this.onMouseOut = onMouseOut;
}
public String getOnMouseOver() {
if (null != this.onMouseOver) {
return this.onMouseOver;
}
ValueBinding _vb = getValueBinding("onMouseOver"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseOver(String onMouseOver) {
this.onMouseOver = onMouseOver;
}
public String getOnMouseUp() {
if (null != this.onMouseUp) {
return this.onMouseUp;
}
ValueBinding _vb = getValueBinding("onMouseUp"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnMouseUp(String onMouseUp) {
this.onMouseUp = onMouseUp;
}
public String getAlt() {
if (null != this.alt) {
return this.alt;
}
ValueBinding _vb = getValueBinding("alt"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setAlt(String alt) {
this.alt = alt;
}
public String getType() {
if (null != this.type) {
return this.type;
}
ValueBinding _vb = getValueBinding("type"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setType(String type) {
this.type = type;
}
public int getTabIndex() {
if (null != this.tabIndex) {
return this.tabIndex;
}
ValueBinding _vb = getValueBinding("tabIndex"); //$NON-NLS-1$
if (_vb != null) {
Number val = (java.lang.Number) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val.intValue();
}
}
return 0;
}
public void setTabIndex(int tabIndex) {
this.tabIndex = tabIndex;
}
public boolean isDisabled() {
if (null != this.disabled) {
return this.disabled;
}
ValueBinding _vb = getValueBinding("disabled"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (java.lang.Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setDisabled(boolean disabled) {
this.disabled = disabled;
}
public boolean isReadOnly() {
if (null != this.readOnly) {
return this.readOnly;
}
ValueBinding _vb = getValueBinding("readOnly"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (java.lang.Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setReadOnly(boolean readOnly) {
this.readOnly = readOnly;
}
// This is to maintain the compatibility with JSF
// We add this pseudo property as it can be used by the readonly renderkit
public boolean isReadonly() {
return isReadOnly();
}
public void setReadonly(boolean readOnly) {
setReadOnly(readOnly);
}
public boolean isIntermediateChanges() {
if (null != this.intermediateChanges) {
return this.intermediateChanges;
}
ValueBinding _vb = getValueBinding("intermediateChanges"); //$NON-NLS-1$
if (_vb != null) {
Boolean val = (java.lang.Boolean) _vb.getValue(FacesContext.getCurrentInstance());
if(val!=null) {
return val;
}
}
return false;
}
public void setIntermediateChanges(boolean intermediateChanges) {
this.intermediateChanges = intermediateChanges;
}
public String getOnChange() {
if (null != this.onChange) {
return this.onChange;
}
ValueBinding _vb = getValueBinding("onChange"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnChange(String onChange) {
this.onChange = onChange;
}
public String getOnShow() {
if (null != this.onShow) {
return this.onShow;
}
ValueBinding _vb = getValueBinding("onShow"); //$NON-NLS-1$
if (_vb != null) {
return (java.lang.String) _vb.getValue(FacesContext.getCurrentInstance());
} else {
return null;
}
}
public void setOnShow(String onShow) {
this.onShow = onShow;
}
// State management
@Override
public void restoreState(FacesContext _context, Object _state) {
Object _values[] = (Object[]) _state;
super.restoreState(_context, _values[0]);
this.tooltip = (String)_values[1];
this.dir = (String)_values[2];
this.dragRestriction = (Boolean)_values[3];
this.group = (String)_values[4];
this.lang = (String)_values[5];
this.style = (String)_values[6];
this.styleClass = (String)_values[7];
this.title = (String)_values[8];
this.waiRole = (String)_values[9];
this.waiState = (String)_values[10];
this.onBlur = (String)_values[11];
this.onClick = (String)_values[12];
this.onClose = (String)_values[13];
this.onDblClick = (String)_values[14];
this.onFocus = (String)_values[15];
this.onKeyDown = (String)_values[16];
this.onKeyPress = (String)_values[17];
this.onKeyUp = (String)_values[18];
this.onMouseDown = (String)_values[19];
this.onMouseEnter = (String)_values[20];
this.onMouseLeave = (String)_values[21];
this.onMouseMove = (String)_values[22];
this.onMouseOut = (String)_values[23];
this.onMouseOver = (String)_values[24];
this.onMouseUp = (String)_values[25];
this.alt = (String)_values[26];
this.type = (String)_values[27];
this.tabIndex = (Integer)_values[28];
this.disabled = (Boolean)_values[29];
this.readOnly = (Boolean)_values[30];
this.intermediateChanges = (Boolean)_values[31];
this.onChange = (String)_values[32];
this.onShow = (String)_values[33];
this.onHide = (String)_values[34];
}
@Override
public Object saveState(FacesContext _context) {
Object _values[] = new Object[36];
_values[0] = super.saveState(_context);
_values[1] = tooltip;
_values[2] = dir;
_values[3] = dragRestriction;
_values[4] = group;
_values[5] = lang;
_values[6] = style;
_values[7] = styleClass;
_values[8] = title;
_values[9] = waiRole;
_values[10] = waiState;
_values[11] = onBlur;
_values[12] = onClick;
_values[13] = onClose;
_values[14] = onDblClick;
_values[15] = onFocus;
_values[16] = onKeyDown;
_values[17] = onKeyPress;
_values[18] = onKeyUp;
_values[19] = onMouseDown;
_values[20] = onMouseEnter;
_values[21] = onMouseLeave;
_values[22] = onMouseMove;
_values[23] = onMouseOut;
_values[24] = onMouseOver;
_values[25] = onMouseUp;
_values[26] = alt;
_values[27] = type;
_values[28] = tabIndex;
_values[29] = disabled;
_values[30] = readOnly;
_values[31] = intermediateChanges;
_values[32] = onChange;
_values[33] = onShow;
_values[34] = onHide;
return _values;
}
}