to.etc.domui.component.input
Class AbstractDivControl<T>

java.lang.Object
  extended by to.etc.domui.dom.css.CssBase
      extended by to.etc.domui.dom.html.NodeBase
          extended by to.etc.domui.dom.html.NodeContainer
              extended by to.etc.domui.dom.html.Div
                  extended by to.etc.domui.component.input.AbstractDivControl<T>
All Implemented Interfaces:
java.lang.Iterable<NodeBase>, IModelBinding, IBindable, INodeErrorDelegate, IActionControl, IControl<T>, IDisplayControl<T>, IHasChangeListener, IInputNode<T>, IDraggable, IDropTargetable

public abstract class AbstractDivControl<T>
extends Div
implements IInputNode<T>

Abstract base class for a control that is implemented on top of a DIV. This handles most basic actions required of all controls.

Author:
Frits Jalvingh Created on May 19, 2010

Constructor Summary
AbstractDivControl()
           
 
Method Summary
 IBinder bind()
          Return the binder for this control.
abstract  void createContent()
           
protected  void disabledChanged()
           
 IValueChanged<?> getOnValueChanged()
           
 T getValue()
          Returns the current value of this input component.
 T getValueSafe()
          Like IDisplayControl.getValue() this returns the value of the component, but this returns null if the value was invalid.
 boolean isBound()
          Returns T if this control is bound to some data value.
 boolean isDisabled()
          Returns T if the control is currently in disabled.
 boolean isMandatory()
          Returns T if this control is a mandatory input.
 boolean isReadOnly()
          Returns T if the control is currently in readonly mode.
protected  void mandatoryChanged()
           
protected  void readOnlyChanged()
           
 void setDisabled(boolean d)
          Set the input to disabled mode.
 void setMandatory(boolean m)
          Make the control mandatory.
 void setOnValueChanged(IValueChanged<?> onValueChanged)
           
 void setReadOnly(boolean ro)
          Sets the input to readonly-mode.
 void setValue(T v)
          Set a new value into this control.
protected  void validate()
           
 
Methods inherited from class to.etc.domui.dom.html.Div
afterCreateContent, componentHandleWebAction, fadeIn, fadeOut, getCustomUpdatesCallJS, getDragHandler, getDropBody, getDropHandler, getDropMode, getReturnPressed, setDragHandler, setDropBody, setDropHandler, setReturnPressed, slideDown, slideUp, tb, visit
 
Methods inherited from class to.etc.domui.dom.html.NodeContainer
add, add, add, addTable, canContain, delegateTo, findChildIndex, forceRebuild, getChild, getChildCount, getChildren, getDeepChild, getDeepChildren, getErrorFence, internalCheckNotDirty, internalClearDelta, internalClearDeltaFully, internalGetOldChildren, internalShelve, internalUnshelve, iterator, moveControlToModel, moveModelToControl, onRefresh, removeAllChildren, removeChild, removeChild, replaceChild, setControlsEnabled, setErrorFence, setErrorFence, setText, setValue
 
Methods inherited from class to.etc.domui.dom.html.NodeBase
$, acceptRequestParameter, addCssClass, addGlobalMessage, appendAfterMe, appendBeforeMe, appendCreateJS, appendJavascript, build, changed, clearFocusRequested, clearGlobalMessage, clearGlobalMessage, clearGlobalMessage, clearMessage, findComponentBundle, getActualID, getAllocationTracepoint, getClicked, getComponentBundle, getCreateJS, getCssClass, getErrorDelegate, getErrorLocation, getMessage, getOnClickJS, getOnMouseDownJS, getPage, getParent, getParent, getParent, getSharedContext, getSpecialAttribute, getSpecialAttributeList, getTag, getTestID, getTitle, getUserObject, handleDrop, hasCssClass, hasError, internalGetOldParent, internalHasChangedAttributes, internalNeedClickHandler, internalOnClicked, internalOnValueChanged, internalSetHasChangedAttributes, internalSetHasChangedAttributes, internalSetLogAllocations, internalSetTag, isBuilt, isFocusRequested, isStretchHeight, onAddedToPage, onBeforeFullRender, onForceRebuild, onHeaderContributors, onRemoveFromPage, onShelve, onUnshelve, refresh, remove, removeCssClass, renderJavascriptState, replaceWith, setClicked, setComponentBundle, setCssClass, setErrorDelegate, setErrorLocation, setFocus, setMessage, setOnClickJS, setOnMouseDownJS, setSpecialAttribute, setStretchHeight, setTestID, setTitle, setUserObject, toString
 
Methods inherited from class to.etc.domui.dom.css.CssBase
getBackgroundAttachment, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorderBottomColor, getBorderBottomStyle, getBorderBottomWidth, getBorderLeftColor, getBorderLeftStyle, getBorderLeftWidth, getBorderRightColor, getBorderRightStyle, getBorderRightWidth, getBorderTopColor, getBorderTopStyle, getBorderTopWidth, getBottom, getCachedStyle, getClear, getColor, getDisplay, getFloat, getFontFamily, getFontSize, getFontSizeAdjust, getFontStyle, getFontVariant, getFontWeight, getHeight, getLeft, getLineHeight, getMarginBottom, getMarginLeft, getMarginRight, getMarginTop, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOverflow, getPosition, getRight, getTextAlign, getTop, getTransform, getVerticalAlign, getVisibility, getWidth, getZIndex, internalSetDisplay, setBackgroundAttachment, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBorder, setBorderBottomColor, setBorderBottomStyle, setBorderBottomWidth, setBorderColor, setBorderLeftColor, setBorderLeftStyle, setBorderLeftWidth, setBorderRightColor, setBorderRightStyle, setBorderRightWidth, setBorderStyle, setBorderTopColor, setBorderTopStyle, setBorderTopWidth, setBorderWidth, setBottom, setBottom, setCachedStyle, setClear, setColor, setDisplay, setFloat, setFontFamily, setFontSize, setFontSizeAdjust, setFontStyle, setFontVariant, setFontWeight, setHeight, setLeft, setLeft, setLineHeight, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setMaxHeight, setMaxWidth, setMinHeight, setMinWidth, setOverflow, setPosition, setRight, setRight, setTextAlign, setTop, setTop, setTransform, setVerticalAlign, setVisibility, setWidth, setZIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface to.etc.domui.dom.html.IControl
getErrorLocation, hasError, setErrorLocation
 
Methods inherited from interface to.etc.domui.dom.html.IDisplayControl
setTestID
 
Methods inherited from interface to.etc.domui.dom.html.IActionControl
setTestID
 
Methods inherited from interface to.etc.domui.dom.errors.INodeErrorDelegate
clearMessage, getMessage, setMessage
 

Constructor Detail

AbstractDivControl

public AbstractDivControl()
Method Detail

createContent

public abstract void createContent()
                            throws java.lang.Exception
Overrides:
createContent in class NodeBase
Throws:
java.lang.Exception

getValueSafe

public T getValueSafe()
Description copied from interface: IControl
Like IDisplayControl.getValue() this returns the value of the component, but this returns null if the value was invalid. For this method NULL either means the value was invalid OR it's content was empty. To distinguish between the two call IControl.hasError() or use IDisplayControl.getValue() instead of this call.

Specified by:
getValueSafe in interface IControl<T>
Returns:

isMandatory

public boolean isMandatory()
Description copied from interface: IControl
Returns T if this control is a mandatory input.

Specified by:
isMandatory in interface IControl<T>
Returns:

setMandatory

public void setMandatory(boolean m)
Description copied from interface: IControl
Make the control mandatory.

Specified by:
setMandatory in interface IControl<T>

mandatoryChanged

protected void mandatoryChanged()

isReadOnly

public boolean isReadOnly()
Description copied from interface: IControl
Returns T if the control is currently in readonly mode. Controls that do not have a readonly ability (comboboxes) will use disabled as the readonly state. For those controls the readonly state mirrors the disabled state.

Specified by:
isReadOnly in interface IControl<T>
Returns:

setReadOnly

public void setReadOnly(boolean ro)
Description copied from interface: IControl
Sets the input to readonly-mode. Components that do not implement readonly mode (comboboxes) will usually set themselves to disabled which works much the same.

Specified by:
setReadOnly in interface IControl<T>

readOnlyChanged

protected void readOnlyChanged()

getValue

public T getValue()
Description copied from interface: IDisplayControl
Returns the current value of this input component. If the component contains no value this returns null. All text input components will return null when their value is the empty string! If the component, during conversion or validation of the input value, discovers that the input is invalid it will set itself in "error" mode, post an error message up the form, and throw a ValidationException. This means that this call either delivers correct input (as defined by it's converter and validators), null (when empty) or throws an exception. When a ValidationException occurs the framework mostly ignores it - it does not produce a stacktrace or error in the client. Instead the resulting error as posted by the error handling framework gets displayed on the form when the request completes.

To get the value of a component while ignoring exceptions call #getValueSafe().

Specified by:
getValue in interface IDisplayControl<T>
Returns:

validate

protected void validate()

setValue

public void setValue(T v)
Description copied from interface: IDisplayControl
Set a new value into this control. Setting a value to null means the control holds no value. This value is converted to a presentable form using any (implicitly) defined converters; it will not be validated though! This means that if you set an invalid value for a validator this will not be seen until the value is gotten from the control again.

Specified by:
setValue in interface IDisplayControl<T>

isDisabled

public boolean isDisabled()
Description copied from interface: IControl
Returns T if the control is currently in disabled. Controls that do not have a readonly ability (comboboxes) will use disabled as the readonly state. For those controls the readonly state mirrors the disabled state.

Specified by:
isDisabled in interface IControl<T>
Returns:

setDisabled

public void setDisabled(boolean d)
Description copied from interface: IActionControl
Set the input to disabled mode.

Specified by:
setDisabled in interface IActionControl

disabledChanged

protected void disabledChanged()

getOnValueChanged

public IValueChanged<?> getOnValueChanged()
Specified by:
getOnValueChanged in interface IHasChangeListener

setOnValueChanged

public void setOnValueChanged(IValueChanged<?> onValueChanged)
Specified by:
setOnValueChanged in interface IHasChangeListener

bind

public IBinder bind()
Return the binder for this control.

Specified by:
bind in interface IBindable
Returns:
See Also:
IBindable.bind()

isBound

public boolean isBound()
Returns T if this control is bound to some data value.

Specified by:
isBound in interface IBindable
Returns:
See Also:
IBindable.isBound()