net.sf.jzeno.echo.databinding
Class DynaDateField

java.lang.Object
  extended by nextapp.echo.AbstractComponent
      extended by net.sf.jzeno.echo.components.CustomComponent
          extended by net.sf.jzeno.echo.databinding.DynaDateField
All Implemented Interfaces:
Borderable, MouseCursorable, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, BindingTarget, PropertyComponent, RebindableComponent, EventSink, EventSource, Precreation, Component, ActionListener, FastComponent, FastComponentContainer
Direct Known Subclasses:
DateEditor

public class DynaDateField
extends CustomComponent
implements java.beans.PropertyChangeListener, FastComponent, Borderable, MouseCursorable, Precreation, ActionListener

A date editor, bind it to a property of type java.util.Date . It features a calendar pop-up, to allow the user to select a date. Users can also enter the date by hand.

The date editor uses the globally configured date format (see EchoSupport.getDateFormat()).

Regionalisation is supported, and conversion of the entered time (most likely in local time of the user) into UTC for internal use can be configured by specifying a propery path to a TimeZone. Translation will also happen in the inverse direction. In general it is highly recommended to store dates and times in your application in UTC, and only translate to local dates and times at interfaces of your system (GUI/Messageing/etc..).

See Also:
Serialized Form

Nested Class Summary
 class DynaDateField.DefaultValidator
           
 
Nested classes/interfaces inherited from interface echopoint.positionable.Borderable
Borderable.NestedStyleInfo
 
Nested classes/interfaces inherited from interface echopoint.positionable.MouseCursorable
MouseCursorable.NestedStyleInfo
 
Field Summary
static int CHARACTER_UNITS
           
static int PERCENT_UNITS
           
static int PIXEL_UNITS
           
 
Fields inherited from interface echopoint.positionable.Borderable
BORDER_DASHED, BORDER_DOTTED, BORDER_DOUBLE, BORDER_GROOVE, BORDER_INSET, BORDER_NONE, BORDER_OUTSET, BORDER_RIDGE, BORDER_SOLID, borderStyleSymbolics, STYLE_BORDER_COLOR, STYLE_BORDER_SIZE, STYLE_BORDER_STYLE, STYLE_BOTTOM_BORDER_COLOR, STYLE_BOTTOM_BORDER_SIZE, STYLE_BOTTOM_BORDER_STYLE, STYLE_LEFT_BORDER_COLOR, STYLE_LEFT_BORDER_SIZE, STYLE_LEFT_BORDER_STYLE, STYLE_RIGHT_BORDER_COLOR, STYLE_RIGHT_BORDER_SIZE, STYLE_RIGHT_BORDER_STYLE, STYLE_TOP_BORDER_COLOR, STYLE_TOP_BORDER_SIZE, STYLE_TOP_BORDER_STYLE
 
Fields inherited from interface echopoint.positionable.MouseCursorable
borderStyleSymbolics, CURSOR_AUTO, CURSOR_CROSSHAIR, CURSOR_CUSTOM_URI, CURSOR_DEFAULT, CURSOR_E_RESIZE, CURSOR_HELP, CURSOR_MOVE, CURSOR_N_RESIZE, CURSOR_NE_RESIZE, CURSOR_NW_RESIZE, CURSOR_POINTER, CURSOR_S_RESIZE, CURSOR_SE_RESIZE, CURSOR_SW_RESIZE, CURSOR_TEXT, CURSOR_W_RESIZE, CURSOR_WAIT, STYLE_MOUSE_CURSOR, STYLE_MOUSE_CURSOR_URI
 
Fields inherited from interface nextapp.echo.Component
BACKGROUND_CHANGED_PROPERTY, CHILDREN_CHANGED_PROPERTY, ENABLED_CHANGED_PROPERTY, FONT_CHANGED_PROPERTY, FOREGROUND_CHANGED_PROPERTY, IDENTIFIER_CHANGED_PROPERTY, LOCALE_CHANGED_PROPERTY, MODEL_CHANGED_PROPERTY, SELECTABLE_CHANGED_PROPERTY, STYLE_BACKGROUND, STYLE_FONT, STYLE_FOREGROUND, UPDATE_PROPERTY, VISIBLE_CHANGED_PROPERTY
 
Constructor Summary
DynaDateField()
           Creates an unbound component.
DynaDateField(java.lang.Class beanClass, java.lang.String property, java.lang.String constructionHints)
           Creates a databound datefield.
 
Method Summary
 void actionPerformed(ActionEvent e)
          Invoked when an action occurs.
 void applyContext()
           
 java.lang.String getActionCommand()
           
 Color getBackground()
           Gets the background color of the date field.
 Color getBorderColor()
           
 int getBorderSize()
           
 int getBorderStyle()
           Gets the border style of the button.
 Color getBottomBorderColor()
           
 int getBottomBorderSize()
           
 int getBottomBorderStyle()
           
 java.lang.String getCssClass()
           
 java.text.DateFormat getDateFormat()
           
 Font getFont()
          Returns the font.
 Color getForeground()
           Gets the foregound color.
 java.lang.String getIconName()
           
 java.lang.String getInvalidMessage()
           Gets the message key that is added to the screen, when the component is marked as invalid.
 java.lang.String getInvalidMessageKey()
          Deprecated. use getInvalidMessage() instead
 Color getLeftBorderColor()
           
 int getLeftBorderSize()
           
 int getLeftBorderStyle()
           
 int getMaximumYear()
           
 int getMinimumYear()
           
 int getMouseCursor()
          Returns the current mouse cursor in use.
 java.lang.String getMouseCursorURI()
           
 java.lang.String getNullValue()
           Gets the input string that corresponds with the value null.
 Color getRightBorderColor()
           
 int getRightBorderSize()
           
 int getRightBorderStyle()
           
 java.lang.String getTimeZoneProperty()
           Gets the property path that binds this date field to a TimeZoneinstance.
 Color getTopBorderColor()
           
 int getTopBorderSize()
           
 int getTopBorderStyle()
           
 int getWidth()
           Gets the width of the text field.
 int getWidthUnits()
           Gets the units in which width is specified.
 boolean isAsync()
           
 boolean isReadOnly()
           Returns whether or not the datefield is read-only.
 void propertyChange(java.beans.PropertyChangeEvent evt)
           Used internally.
 void rebind()
           This operation causes the component to reset it's content to that of the domain model.
 void setActionCommand(java.lang.String command)
           
 void setAsync(boolean value)
           
 void setBackground(Color backgroundColor)
           Sets the background color of the date field.
 void setBorderColor(Color borderColor)
          Sets the Color of the Borderable's border.
 void setBorderSize(int borderSize)
          Sets the size of the Borderables's border.
 void setBorderStyle(int style)
           Sets the border style of the button.
 void setBottomBorderColor(Color borderColor)
          Sets the Color of the Borderable's bottom border.
 void setBottomBorderSize(int borderSize)
          Sets the size of the Borderables's bottom border.
 void setBottomBorderStyle(int borderStyle)
          Sets the border style of the Borderables's bottom border.
 void setCssClass(java.lang.String newValue)
           
 void setFocused(boolean focused)
           Sets the input focus to this component.
 void setFont(Font font)
          Sets the font of the component.
 void setForeground(Color foreground)
           Sets the foreground color.
 void setIconName(java.lang.String iconName)
           Sets the drop down icon you want to use.
 void setInvalidMessage(java.lang.String invalidMessageKey)
           Sets the message key that is shown when the component is marked as invalid.
 void setInvalidMessageKey(java.lang.String s)
          Deprecated. use setInvalidMessage() instead
 void setLeftBorderColor(Color borderColor)
          Sets the Color of the Borderable's left border.
 void setLeftBorderSize(int borderSize)
          Sets the size of the Borderables's left border.
 void setLeftBorderStyle(int borderStyle)
          Sets the border style of the Borderables's left border.
 void setMaximumLengh(int maximumLength)
           
 void setMaximumYear(int maximumYear)
           
 void setMinimumYear(int minimumYear)
           
 void setMouseCursor(int mouseCursor)
          Sets the mouse cursor to use.
 void setMouseCursorURI(java.lang.String mouseCursorURI)
          Sets the URI to a custom platform mouse cursor.
 void setNullValue(java.lang.String nullValue)
           Sets the input string that corresponds with the property value null .
 void setReadOnly(boolean readOnly)
           Sets whether or not the datefield is read-only.
 void setRequired(boolean required)
           Determine if the editor is required to be filled in.
 void setRightBorderColor(Color borderColor)
          Sets the Color of the Borderable's right border.
 void setRightBorderSize(int borderSize)
          Sets the size of the Borderables's right border.
 void setRightBorderStyle(int borderStyle)
          Sets the border style of the Borderables's right border.
 void setTimeZoneProperty(java.lang.String property)
           Sets the property path that binds this date field to a TimeZoneinstance.
 void setTopBorderColor(Color borderColor)
          Sets the Color of the Borderable's top border.
 void setTopBorderSize(int borderSize)
          Sets the size of the Borderables's top border.
 void setTopBorderStyle(int borderStyle)
          Sets the border style of the Borderables's top border.
 void setWidth(int width)
           Sets the width of the text field.
 void setWidthUnits(int units)
           Sets the units in which width is specified.
 
Methods inherited from class net.sf.jzeno.echo.components.CustomComponent
addValidator, fireActionEvent, fireActionEvent, fireActionEvent, getBean, getBeanClass, getDecorator, getNullObject, getProperty, getValidationErrors, getValidators, getValue, isBound, isMarkedInvalid, isRequired, isValid, markInvalid, markValid, preRender, removeValidator, setBean, setBeanClass, setDecorator, setNullObject, setProperty, setValue, traceValue, validate
 
Methods inherited from class nextapp.echo.AbstractComponent
add, add, addHierarchyListener, addPropertyChangeListener, applyStyle, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getClientId, getComponent, getComponentCount, getComponents, getEchoInstance, getIdentifier, getListenerList, getLocale, getParent, indexOf, init, isAncestorOf, isDifferent, isEnabled, isFocused, isRecursivelyVisible, isRegistered, isSelectableForScriptRecorder, isShowing, isVisible, processHierarchyEvent, remove, remove, removeAll, removeHierarchyListener, removePropertyChangeListener, setClientId, setEnabled, setIdentifier, setLocale, setParent, setRegistered, setSelectableForScriptRecorder, setVisible, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface echopoint.positionable.Borderable
applyStyle
 
Methods inherited from interface echopoint.positionable.MouseCursorable
applyStyle
 

Field Detail

CHARACTER_UNITS

public static final int CHARACTER_UNITS
See Also:
Constant Field Values

PIXEL_UNITS

public static final int PIXEL_UNITS
See Also:
Constant Field Values

PERCENT_UNITS

public static final int PERCENT_UNITS
See Also:
Constant Field Values
Constructor Detail

DynaDateField

public DynaDateField()

Creates an unbound component.


DynaDateField

public DynaDateField(java.lang.Class beanClass,
                     java.lang.String property,
                     java.lang.String constructionHints)

Creates a databound datefield. You should bind it to a property of type java.util.Date.

Method Detail

rebind

public void rebind()
Description copied from interface: RebindableComponent

This operation causes the component to reset it's content to that of the domain model.

Specified by:
rebind in interface RebindableComponent
Overrides:
rebind in class CustomComponent

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)

Used internally.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

getNullValue

public java.lang.String getNullValue()

Gets the input string that corresponds with the value null. Also see setNullValue(String).


setNullValue

public void setNullValue(java.lang.String nullValue)

Sets the input string that corresponds with the property value null . If a users enters this special input string, null will be written to our bound property. A typical case would be setting nullValue to an empty string. To remove the nullValue, call this method with null.


getInvalidMessage

public java.lang.String getInvalidMessage()

Gets the message key that is added to the screen, when the component is marked as invalid. Also see setInvalidMessage(String).


setInvalidMessage

public void setInvalidMessage(java.lang.String invalidMessageKey)

Sets the message key that is shown when the component is marked as invalid. Typically the component is marked invalid when you call EchoSupport.doValidationRecursively(Component) in your code. The value specified for this property is translated through the i18n support in jZeno (i18n.properties).


getInvalidMessageKey

public java.lang.String getInvalidMessageKey()
Deprecated. use getInvalidMessage() instead


setInvalidMessageKey

public void setInvalidMessageKey(java.lang.String s)
Deprecated. use setInvalidMessage() instead


isReadOnly

public boolean isReadOnly()

Returns whether or not the datefield is read-only. Also see setReadOnly(boolean).

Specified by:
isReadOnly in interface PropertyComponent
Overrides:
isReadOnly in class CustomComponent

setReadOnly

public void setReadOnly(boolean readOnly)

Sets whether or not the datefield is read-only. If it is read-only the user will not be able to enter a new date. He will not be able to use the calendar pop-up either. Besides this the component will be grayed out.

Specified by:
setReadOnly in interface PropertyComponent
Overrides:
setReadOnly in class CustomComponent

getCssClass

public java.lang.String getCssClass()

setCssClass

public void setCssClass(java.lang.String newValue)

getMinimumYear

public int getMinimumYear()

setMinimumYear

public void setMinimumYear(int minimumYear)

getMaximumYear

public int getMaximumYear()

setMaximumYear

public void setMaximumYear(int maximumYear)

getBackground

public Color getBackground()

Gets the background color of the date field.

Specified by:
getBackground in interface Component
Overrides:
getBackground in class AbstractComponent
Returns:
The background color of the component.

setBackground

public void setBackground(Color backgroundColor)

Sets the background color of the date field. This corresponds to the color of the edit box where the user enters the date.

Specified by:
setBackground in interface Component
Overrides:
setBackground in class AbstractComponent
Parameters:
backgroundColor - The new background color of the component.

getForeground

public Color getForeground()

Gets the foregound color. This corresponds to the text color in the edit box, where the user enters a date.

Specified by:
getForeground in interface Component
Overrides:
getForeground in class AbstractComponent
Returns:
The foreground of the component.

setForeground

public void setForeground(Color foreground)

Sets the foreground color. This corresponds to the text color in the edit box, where the user enters a date.

Specified by:
setForeground in interface Component
Overrides:
setForeground in class AbstractComponent
Parameters:
foreground - The new foreground color of the component.

setRequired

public void setRequired(boolean required)
Description copied from interface: PropertyComponent

Determine if the editor is required to be filled in.

Specified by:
setRequired in interface PropertyComponent
Overrides:
setRequired in class CustomComponent

setTimeZoneProperty

public void setTimeZoneProperty(java.lang.String property)

Sets the property path that binds this date field to a TimeZoneinstance. This TimeZone instance will translate from the java.util.Date we are bound to, to the date shown and entered on the screen. The data binding property path specified starts from the same root bean as our regular data binding.

Setting timeZenoProperty to null disables regionalisation. This is also the default value.


getTimeZoneProperty

public java.lang.String getTimeZoneProperty()

Gets the property path that binds this date field to a TimeZoneinstance. Also see setTimeZoneProperty(String).


setFocused

public void setFocused(boolean focused)

Sets the input focus to this component.

Specified by:
setFocused in interface Component
Overrides:
setFocused in class AbstractComponent
Parameters:
focused - True if the component is to be focused.

getBorderSize

public int getBorderSize()
Specified by:
getBorderSize in interface Borderable
Returns:
The size of the Borderables's border.

getBottomBorderColor

public Color getBottomBorderColor()
Specified by:
getBottomBorderColor in interface Borderable
Returns:
The Color of the Borderable's bottom border.

getBottomBorderSize

public int getBottomBorderSize()
Specified by:
getBottomBorderSize in interface Borderable
Returns:
The size of the Borderables's bottom border.

getBottomBorderStyle

public int getBottomBorderStyle()
Specified by:
getBottomBorderStyle in interface Borderable
Returns:
The style of the Borderables's bottom border.
See Also:
Borderable.getBorderStyle()

getLeftBorderColor

public Color getLeftBorderColor()
Specified by:
getLeftBorderColor in interface Borderable
Returns:
The Color of the Borderable's left border.

getLeftBorderSize

public int getLeftBorderSize()
Specified by:
getLeftBorderSize in interface Borderable
Returns:
The size of the Borderables's left border.

getLeftBorderStyle

public int getLeftBorderStyle()
Specified by:
getLeftBorderStyle in interface Borderable
Returns:
The style of the Borderables's left border.
See Also:
Borderable.getBorderStyle()

getRightBorderColor

public Color getRightBorderColor()
Specified by:
getRightBorderColor in interface Borderable
Returns:
The Color of the Borderable's right border.

getRightBorderSize

public int getRightBorderSize()
Specified by:
getRightBorderSize in interface Borderable
Returns:
The size of the Borderables's right border.

getRightBorderStyle

public int getRightBorderStyle()
Specified by:
getRightBorderStyle in interface Borderable
Returns:
The style of the Borderables's right border.
See Also:
Borderable.getBorderStyle()

getTopBorderColor

public Color getTopBorderColor()
Specified by:
getTopBorderColor in interface Borderable
Returns:
The Color of the Borderable's top border.

getTopBorderSize

public int getTopBorderSize()
Specified by:
getTopBorderSize in interface Borderable
Returns:
The size of the Borderables's top border.

getTopBorderStyle

public int getTopBorderStyle()
Specified by:
getTopBorderStyle in interface Borderable
Returns:
The style of the Borderables's top border.
See Also:
Borderable.getBorderStyle()

setBorderSize

public void setBorderSize(int borderSize)
Description copied from interface: Borderable
Sets the size of the Borderables's border. This will also set the left, top, right and bottom border size.

Specified by:
setBorderSize in interface Borderable

setBottomBorderColor

public void setBottomBorderColor(Color borderColor)
Description copied from interface: Borderable
Sets the Color of the Borderable's bottom border.

Specified by:
setBottomBorderColor in interface Borderable

setBottomBorderSize

public void setBottomBorderSize(int borderSize)
Description copied from interface: Borderable
Sets the size of the Borderables's bottom border.

Specified by:
setBottomBorderSize in interface Borderable

setBottomBorderStyle

public void setBottomBorderStyle(int borderStyle)
Description copied from interface: Borderable
Sets the border style of the Borderables's bottom border.

Specified by:
setBottomBorderStyle in interface Borderable
See Also:
Borderable.setBorderStyle(int)

setLeftBorderColor

public void setLeftBorderColor(Color borderColor)
Description copied from interface: Borderable
Sets the Color of the Borderable's left border.

Specified by:
setLeftBorderColor in interface Borderable

setLeftBorderSize

public void setLeftBorderSize(int borderSize)
Description copied from interface: Borderable
Sets the size of the Borderables's left border.

Specified by:
setLeftBorderSize in interface Borderable

setLeftBorderStyle

public void setLeftBorderStyle(int borderStyle)
Description copied from interface: Borderable
Sets the border style of the Borderables's left border.

Specified by:
setLeftBorderStyle in interface Borderable
See Also:
Borderable.setBorderStyle(int)

setRightBorderColor

public void setRightBorderColor(Color borderColor)
Description copied from interface: Borderable
Sets the Color of the Borderable's right border.

Specified by:
setRightBorderColor in interface Borderable

setRightBorderSize

public void setRightBorderSize(int borderSize)
Description copied from interface: Borderable
Sets the size of the Borderables's right border.

Specified by:
setRightBorderSize in interface Borderable

setRightBorderStyle

public void setRightBorderStyle(int borderStyle)
Description copied from interface: Borderable
Sets the border style of the Borderables's right border.

Specified by:
setRightBorderStyle in interface Borderable
See Also:
Borderable.setBorderStyle(int)

setTopBorderColor

public void setTopBorderColor(Color borderColor)
Description copied from interface: Borderable
Sets the Color of the Borderable's top border.

Specified by:
setTopBorderColor in interface Borderable

setTopBorderSize

public void setTopBorderSize(int borderSize)
Description copied from interface: Borderable
Sets the size of the Borderables's top border.

Specified by:
setTopBorderSize in interface Borderable

setTopBorderStyle

public void setTopBorderStyle(int borderStyle)
Description copied from interface: Borderable
Sets the border style of the Borderables's top border.

Specified by:
setTopBorderStyle in interface Borderable
See Also:
Borderable.setBorderStyle(int)

setBorderStyle

public void setBorderStyle(int style)

Sets the border style of the button. (See the Borderable interface in EchoPoint).

Specified by:
setBorderStyle in interface Borderable

getBorderStyle

public int getBorderStyle()

Gets the border style of the button.

Specified by:
getBorderStyle in interface Borderable
Returns:
int the current border style

getMouseCursor

public int getMouseCursor()
Description copied from interface: MouseCursorable
Returns the current mouse cursor in use. This will be one of the following values.

Specified by:
getMouseCursor in interface MouseCursorable
Returns:
The current mouse cursor in use.

getMouseCursorURI

public java.lang.String getMouseCursorURI()
Specified by:
getMouseCursorURI in interface MouseCursorable
Returns:
The custom URI for the mouse cursor or null

setMouseCursor

public void setMouseCursor(int mouseCursor)
Description copied from interface: MouseCursorable
Sets the mouse cursor to use. This will be one of the following values.

Specified by:
setMouseCursor in interface MouseCursorable
Parameters:
mouseCursor - - the mouse cursor to use

setMouseCursorURI

public void setMouseCursorURI(java.lang.String mouseCursorURI)
Description copied from interface: MouseCursorable
Sets the URI to a custom platform mouse cursor. This will only be used if the mosue cusor is set to CURSOR_CUSTOM.

Specified by:
setMouseCursorURI in interface MouseCursorable
Parameters:
mouseCursorURI - the URI to a custom platform mouse cursor.

setBorderColor

public void setBorderColor(Color borderColor)
Description copied from interface: Borderable
Sets the Color of the Borderable's border. This will also set the left, top, right and bottom border color.

Specified by:
setBorderColor in interface Borderable

getBorderColor

public Color getBorderColor()
Specified by:
getBorderColor in interface Borderable
Returns:
The Color of the Borderable's border.

setIconName

public void setIconName(java.lang.String iconName)

Sets the drop down icon you want to use. Specify the name of the gif/jpg/png/... image you want to show. Images should be located in the images folder, in the root of your web application.


getIconName

public java.lang.String getIconName()

setWidth

public void setWidth(int width)

Sets the width of the text field.


getWidth

public int getWidth()

Gets the width of the text field.


setWidthUnits

public void setWidthUnits(int units)

Sets the units in which width is specified.


getWidthUnits

public int getWidthUnits()

Gets the units in which width is specified.


setMaximumLengh

public void setMaximumLengh(int maximumLength)

getDateFormat

public java.text.DateFormat getDateFormat()

setFont

public void setFont(Font font)
Description copied from interface: Component
Sets the font of the component.

Specified by:
setFont in interface Component
Overrides:
setFont in class AbstractComponent
Parameters:
font - The new font of the component.

getFont

public Font getFont()
Description copied from interface: Component
Returns the font.

Specified by:
getFont in interface Component
Overrides:
getFont in class AbstractComponent
Returns:
The font of the component.

applyContext

public void applyContext()
Specified by:
applyContext in interface Precreation

setAsync

public void setAsync(boolean value)

isAsync

public boolean isAsync()

setActionCommand

public void setActionCommand(java.lang.String command)
Specified by:
setActionCommand in interface EventSource
Overrides:
setActionCommand in class CustomComponent

getActionCommand

public java.lang.String getActionCommand()
Specified by:
getActionCommand in interface EventSource
Overrides:
getActionCommand in class CustomComponent

actionPerformed

public void actionPerformed(ActionEvent e)
Description copied from interface: ActionListener
Invoked when an action occurs.

Specified by:
actionPerformed in interface ActionListener
Parameters:
e - The event describing the action.