Class DateItem

All Implemented Interfaces:
HasHandlers, HasBlurHandlers, HasChangedHandlers, HasChangeHandlers, HasClickHandlers, HasDoubleClickHandlers, HasEditorEnterHandlers, HasEditorExitHandlers, HasFocusHandlers, HasIconClickHandlers, HasIconKeyPressHandlers, HasItemHoverHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasPendingStatusChangedHandlers, HasPickerIconClickHandlers, HasShowContextMenuHandlers, HasTitleClickHandlers, HasTitleDoubleClickHandlers, HasTitleHoverHandlers, HasValueHoverHandlers, HasValueIconClickHandlers
Direct Known Subclasses:
DateTimeItem

public class DateItem extends FormItem
A FormItem for editing logical-Date values, where times are ignored.

The item renders with one of two appearances, depending on the value of useTextField - when set to true, dates are edited directly in a text field, and formatted according to your locale and settings such as dateFormatter.

When set to false, the default appearance, the item uses separate selectors for year, month and day values. To control which selectors are visible and in what order, use selectorFormat. In this mode, the selectable dates may be limited by the item's start and end dates. See those two settings for more information.

In either mode, a popup picker is provided assuming that the pickerIcon is visible.

As noted, this item is for editing logical-Date values. To edit logical-Time values, see TimeItem, and to edit datetime values, see DateTimeItem. For relative-date features, see RelativeDateItem.

For detailed information on working with dates, times and datetimes, see the Date and Time Format and Storage overview.

  • Constructor Details

    • DateItem

      public DateItem()
    • DateItem

      public DateItem(JavaScriptObject jsObj)
    • DateItem

      public DateItem(String name)
    • DateItem

      public DateItem(String name, String title)
  • Method Details

    • getOrCreateRef

      public static DateItem getOrCreateRef(JavaScriptObject jsObj)
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
      Changes the defaults for Canvas AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
      Changes the defaults for FormItem AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • changePickerIconDefaults

      public static void changePickerIconDefaults(FormItemIcon defaults)
    • setAutoUseTextField

      public DateItem setAutoUseTextField(Boolean autoUseTextField)
      When set to true, the default, and when useTextField is set to false, such that the item displays multiple separate pickers, useTextField is automatically switched on when the item is rendering in a non-interactive way, such as when printing, or when canEdit is false and the read-only display-mode is static.
      Parameters:
      autoUseTextField - New autoUseTextField value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
    • getAutoUseTextField

      public Boolean getAutoUseTextField()
      When set to true, the default, and when useTextField is set to false, such that the item displays multiple separate pickers, useTextField is automatically switched on when the item is rendering in a non-interactive way, such as when printing, or when canEdit is false and the read-only display-mode is static.
      Returns:
      Current autoUseTextField value. Default value is true
    • setBrowserInputType

      public DateItem setBrowserInputType(String browserInputType)
      If useTextField is true and browserInputType is set to "date", then a native HTML5 date input is used in place of a text input.

      The use of a native HTML5 date input causes certain features to be disabled. Input masks, the picker icon, and a custom dateFormatter are not supported. In-field hints are currently supported, but future browser changes might force this support to be removed. Therefore, it is safest to not use in-field hints (set showHintInField to false) in conjunction with a native HTML5 date input.

      NOTE: For optimal appearance this feature requires specific CSS which may not be present in certain legacy skins.

      Note : This is an advanced setting

      Overrides:
      setBrowserInputType in class FormItem
      Parameters:
      browserInputType - New browserInputType value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getBrowserInputType

      public String getBrowserInputType()
      If useTextField is true and browserInputType is set to "date", then a native HTML5 date input is used in place of a text input.

      The use of a native HTML5 date input causes certain features to be disabled. Input masks, the picker icon, and a custom dateFormatter are not supported. In-field hints are currently supported, but future browser changes might force this support to be removed. Therefore, it is safest to not use in-field hints (set showHintInField to false) in conjunction with a native HTML5 date input.

      NOTE: For optimal appearance this feature requires specific CSS which may not be present in certain legacy skins.

      Overrides:
      getBrowserInputType in class FormItem
      Returns:
      Current browserInputType value. Default value is null
    • setCenturyThreshold

      public DateItem setCenturyThreshold(int centuryThreshold)
      Only used if we're showing the date in a text field. When parsing a date, if the year is specified with 1 or 2 digits and is less than the centuryThreshold, then the year will be assumed to be 20xx; otherwise it will be interpreted according to default browser behavior, which will consider it to be 19xx.

      By default, the centuryThreshold is calculated as the current year + 25.

      If you need to allow 1 and 2 digit years, set this attribute to null to have the control retain your year-value as entered.

      Parameters:
      centuryThreshold - New centuryThreshold value. Default value is 25
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getCenturyThreshold

      public int getCenturyThreshold()
      Only used if we're showing the date in a text field. When parsing a date, if the year is specified with 1 or 2 digits and is less than the centuryThreshold, then the year will be assumed to be 20xx; otherwise it will be interpreted according to default browser behavior, which will consider it to be 19xx.

      By default, the centuryThreshold is calculated as the current year + 25.

      If you need to allow 1 and 2 digit years, set this attribute to null to have the control retain your year-value as entered.

      Returns:
      Current centuryThreshold value. Default value is 25
      See Also:
    • setDateFormatter

      public DateItem setDateFormatter(DateDisplayFormat dateFormatter)
      If useTextField is true this property can be used to customize the format in which dates are displayed for this item.
      Should be set to a standard DateDisplayFormat.

      As with any formItem rendering out a date value, if no explicit dateFormatter is supplied, dateFormatter will be derived from DynamicForm.dateFormatter or DynamicForm.datetimeFormatter, depending on the specified FormItem.type for this field, if set, otherwise from the standard default DateUtil.setShortDisplayFormat() or DateUtil.setShortDatetimeDisplayFormat().

      NOTE: For entirely custom formats, developers may apply a custom editorValueFormatter. To ensure the DateItem is able to parse user-entered date strings back into Dates, for most cases developers can specify an explicit inputFormat, or if necessary a custom editorValueParser

      This attribute does not have an effect if a native HTML5 date or datetime input is being used. See browserInputType.

      Overrides:
      setDateFormatter in class FormItem
      Parameters:
      dateFormatter - New dateFormatter value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getDateFormatter

      public DateDisplayFormat getDateFormatter()
      If useTextField is true this property can be used to customize the format in which dates are displayed for this item.
      Should be set to a standard DateDisplayFormat.

      As with any formItem rendering out a date value, if no explicit dateFormatter is supplied, dateFormatter will be derived from DynamicForm.dateFormatter or DynamicForm.datetimeFormatter, depending on the specified FormItem.type for this field, if set, otherwise from the standard default DateUtil.setShortDisplayFormat() or DateUtil.setShortDatetimeDisplayFormat().

      NOTE: For entirely custom formats, developers may apply a custom editorValueFormatter. To ensure the DateItem is able to parse user-entered date strings back into Dates, for most cases developers can specify an explicit inputFormat, or if necessary a custom editorValueParser

      This attribute does not have an effect if a native HTML5 date or datetime input is being used. See browserInputType.

      Overrides:
      getDateFormatter in class FormItem
      Returns:
      Current dateFormatter value. Default value is null
      See Also:
    • getDaySelector

      public SelectItem getDaySelector()
      SelectItem for picking a day of the month.

      To control which selectors are visible and in what order, use selectorFormat.

      This component is an AutoChild named "daySelector". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current daySelector value. Default value is null
      See Also:
    • setDaySelectorProperties

      public DateItem setDaySelectorProperties(SelectItem daySelectorProperties)
      Custom properties to apply to this dateItem's generated daySelector.

      Note : This is an advanced setting

      Parameters:
      daySelectorProperties - New daySelectorProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getDaySelectorProperties

      public SelectItem getDaySelectorProperties()
      Custom properties to apply to this dateItem's generated daySelector.
      Returns:
      Current daySelectorProperties value. Default value is null
    • setDefaultChooserDate

      public DateItem setDefaultChooserDate(Date defaultChooserDate)
      Default date to show in the date chooser. If this items value is currently unset, this property may be specified to set a default date to highlight in the dateChooser for this item. If unset, the date chooser will highlight the current date by default. Note that this has no effect if the item as a whole currently has a value - in that case the date chooser will always highlight the current value for the item.
      Parameters:
      defaultChooserDate - New defaultChooserDate value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getDefaultChooserDate

      public Date getDefaultChooserDate()
      Default date to show in the date chooser. If this items value is currently unset, this property may be specified to set a default date to highlight in the dateChooser for this item. If unset, the date chooser will highlight the current date by default. Note that this has no effect if the item as a whole currently has a value - in that case the date chooser will always highlight the current value for the item.
      Returns:
      Returns the default date to display in the date chooser if this form items value is currently unset.

      Default implementation returns defaultChooserDate. Default value is null

    • setEditProxyConstructor

      public DateItem setEditProxyConstructor(String editProxyConstructor)
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      setEditProxyConstructor in class FormItem
      Parameters:
      editProxyConstructor - New editProxyConstructor value. Default value is "DateItemEditProxy"
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getEditProxyConstructor

      public String getEditProxyConstructor()
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      getEditProxyConstructor in class FormItem
      Returns:
      Current editProxyConstructor value. Default value is "DateItemEditProxy"
      See Also:
    • setEndDate

      public DateItem setEndDate(Date endDate)
      The maximum date this item is intended to work with.

      The default value is December 31st, 5 years after the current year.

      The range specified by this setting and startDate must be enforced via a dateRange validator. By default, a client-only validator is automatically generated for you, unless you provide a customized one on this item or an associated DataSourceField. Note that changing this attribute after the item is drawn may result in item-validation.

      See startDate and generateValidator for more information.

      If this method is called after the component has been drawn/initialized: Setter for endDate.

      Note: A LogicalDate is expected.

      Parameters:
      endDate - the new endDate. Default value is See below
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getEndDate

      public Date getEndDate()
      The maximum date this item is intended to work with.

      The default value is December 31st, 5 years after the current year.

      The range specified by this setting and startDate must be enforced via a dateRange validator. By default, a client-only validator is automatically generated for you, unless you provide a customized one on this item or an associated DataSourceField. Note that changing this attribute after the item is drawn may result in item-validation.

      See startDate and generateValidator for more information.

      Returns:
      Current endDate value. Default value is See below
      See Also:
    • setEnforceDate

      public DateItem setEnforceDate(Boolean enforceDate)
      Can this field be set to a non-date value [other than null]?

      When set to true, FormItem.setValue() will return false without setting the item value and log a warning if passed something other than a valid date value. If the dateItem is showing a free-form text entry field, and a user enters a text value which cannot be parsed into a valid date, the item will automatically redraw and display the invalidDateStringMessage (though at this point calling FormItem.getValue() will return the string entered by the user).

      When set to false, a user may enter a value that is not a valid date (for example, "Not applicable") and the value will not immediately be flagged as an error. However note that for the value to actually pass validation you would need to declare the field as not of "date" type, for example:

            {name:"startDate", type:"dateOrOther", editorType:"DateItem", useTextField:true },
        
      The type "dateOrOther" could be declared as a SimpleType, with validators that will accept either a valid date or certain special Strings (like "Not Available").

      Only applies to dateItems where useTextField is true. Non-Date values are never supported in items where useTextField is false.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Note : This is an advanced setting

      Parameters:
      enforceDate - New enforceDate value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
    • getEnforceDate

      public Boolean getEnforceDate()
      Can this field be set to a non-date value [other than null]?

      When set to true, FormItem.setValue() will return false without setting the item value and log a warning if passed something other than a valid date value. If the dateItem is showing a free-form text entry field, and a user enters a text value which cannot be parsed into a valid date, the item will automatically redraw and display the invalidDateStringMessage (though at this point calling FormItem.getValue() will return the string entered by the user).

      When set to false, a user may enter a value that is not a valid date (for example, "Not applicable") and the value will not immediately be flagged as an error. However note that for the value to actually pass validation you would need to declare the field as not of "date" type, for example:

            {name:"startDate", type:"dateOrOther", editorType:"DateItem", useTextField:true },
        
      The type "dateOrOther" could be declared as a SimpleType, with validators that will accept either a valid date or certain special Strings (like "Not Available").

      Only applies to dateItems where useTextField is true. Non-Date values are never supported in items where useTextField is false.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Returns:
      Current enforceDate value. Default value is false
    • setEnforceValueRange

      public DateItem setEnforceValueRange(Boolean enforceValueRange)
      Dictates whether values applied to this item via setValue() or form.values will be accepted if they fall outside the range specified by the item's start and end dates.

      When set to false, values outside the valid range will be accepted, which may result in additional entries being added to the various pickers, when useTextField is false.

      When set to true, FormItem.setValue() will return false for values that fall outside the range, the value will be rejected and the item defaulted to the start of its defined range. When this happens, change() will not fire, the item will not show the pending style, and valuesHaveChanged() will return false, even though calling saveData() will result in a changed record, if the parent form is data-bound and the current record came from the dataSource.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Note : This is an advanced setting

      Parameters:
      enforceValueRange - New enforceValueRange value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getEnforceValueRange

      public Boolean getEnforceValueRange()
      Dictates whether values applied to this item via setValue() or form.values will be accepted if they fall outside the range specified by the item's start and end dates.

      When set to false, values outside the valid range will be accepted, which may result in additional entries being added to the various pickers, when useTextField is false.

      When set to true, FormItem.setValue() will return false for values that fall outside the range, the value will be rejected and the item defaulted to the start of its defined range. When this happens, change() will not fire, the item will not show the pending style, and valuesHaveChanged() will return false, even though calling saveData() will result in a changed record, if the parent form is data-bound and the current record came from the dataSource.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Returns:
      Current enforceValueRange value. Default value is false
      See Also:
    • setGenerateValidator

      public DateItem setGenerateValidator(Boolean generateValidator)
      When this item has a startDate or endDate specified, should it automatically generate a client-side dateRange validator to enforce them?

      When true, the default, the item will generate a dateRange validator automatically if the developer hasn't installed one but has set either date-range value.

      If a dateRange validator already exists, this attribute is non-functional - no automatic validator is generated, and no checks are made that the values in the developer-provided validator match the item's current start or end dates.

      Note that the validator generated by this attribute exists only on the FormItem, so it doesn't do any server enforcement and does not cause validation to happen in any other circumstance (eg, an unrelated grid used for editing). For consistent and pervasive enforcement, the validator should be declared on the DataSourceField.

      Parameters:
      generateValidator - New generateValidator value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
    • getGenerateValidator

      public Boolean getGenerateValidator()
      When this item has a startDate or endDate specified, should it automatically generate a client-side dateRange validator to enforce them?

      When true, the default, the item will generate a dateRange validator automatically if the developer hasn't installed one but has set either date-range value.

      If a dateRange validator already exists, this attribute is non-functional - no automatic validator is generated, and no checks are made that the values in the developer-provided validator match the item's current start or end dates.

      Note that the validator generated by this attribute exists only on the FormItem, so it doesn't do any server enforcement and does not cause validation to happen in any other circumstance (eg, an unrelated grid used for editing). For consistent and pervasive enforcement, the validator should be declared on the DataSourceField.

      Returns:
      Current generateValidator value. Default value is true
    • setInputFormat

      public DateItem setInputFormat(String inputFormat)
      If useTextField is true this property can be used to specify the input format for date strings. If unset, the input format will be determined based on the specified dateFormatter if possible (see getInputFormat()), otherwise picked up from the Date class (see DateUtil.setInputFormat()).

      Should be set to a standard DateInputFormat

      Note that the DateInputFormat property is sufficient to parse date or datetime strings specified in most standard date formats. However should an entirely custom parsing function be required developers can apply a custom editorValueParser function.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Overrides:
      setInputFormat in class FormItem
      Parameters:
      inputFormat - New inputFormat value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getInputFormat

      public String getInputFormat()
      If useTextField is true this property can be used to specify the input format for date strings. If unset, the input format will be determined based on the specified dateFormatter if possible (see getInputFormat()), otherwise picked up from the Date class (see DateUtil.setInputFormat()).

      Should be set to a standard DateInputFormat

      Note that the DateInputFormat property is sufficient to parse date or datetime strings specified in most standard date formats. However should an entirely custom parsing function be required developers can apply a custom editorValueParser function.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Overrides:
      getInputFormat in class FormItem
      Returns:
      If useTextField is true this method returns a standard DateInputFormat, determining how values entered by the user are to be converted to Javascript Date objects.

      If an explicit inputFormat has been specified it will be returned, otherwise, if a custom dateFormatter or format are specified, the input format will be automatically derived from that property.

      Otherwise, the global inputFormat is used.

      Note that the inputFormat will ignore any separator characters and padding of values. However if necessary entirely custom date formatting and parsing may be achieved via the setEditorValueFormatter() and setEditorValueParser() APIs. Default value is null

      See Also:
    • setInvalidDateStringMessage

      public DateItem setInvalidDateStringMessage(String invalidDateStringMessage)
      Validation error message to display if the user enters an invalid date
      Parameters:
      invalidDateStringMessage - New invalidDateStringMessage value. Default value is "Invalid date"
      Returns:
      DateItem instance, for chaining setter calls
    • getInvalidDateStringMessage

      public String getInvalidDateStringMessage()
      Validation error message to display if the user enters an invalid date
      Returns:
      Current invalidDateStringMessage value. Default value is "Invalid date"
    • setItemTitleAlign

      public DateItem setItemTitleAlign(Alignment itemTitleAlign)
      When useTextField is false, the default alignment of titles for the day, month and year selectors, within their cells.
      Parameters:
      itemTitleAlign - New itemTitleAlign value. Default value is "center"
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getItemTitleAlign

      public Alignment getItemTitleAlign()
      When useTextField is false, the default alignment of titles for the day, month and year selectors, within their cells.
      Returns:
      Current itemTitleAlign value. Default value is "center"
      See Also:
    • setItemTitleOrientation

      public DateItem setItemTitleOrientation(TitleOrientation itemTitleOrientation)
      When useTextField is false, the default orientation of titles for the day, month and year selectors. TitleOrientation lists valid options.

      Note that titles on the left or right take up a cell in tabular form layouts, but titles on top do not.

      Parameters:
      itemTitleOrientation - New itemTitleOrientation value. Default value is "top"
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getItemTitleOrientation

      public TitleOrientation getItemTitleOrientation()
      When useTextField is false, the default orientation of titles for the day, month and year selectors. TitleOrientation lists valid options.

      Note that titles on the left or right take up a cell in tabular form layouts, but titles on top do not.

      Returns:
      Current itemTitleOrientation value. Default value is "top"
      See Also:
    • setMaskDateSeparator

      public DateItem setMaskDateSeparator(String maskDateSeparator)
      If useTextField and useMask are both true this value is the separator between date components. If unset DateUtil.getDefaultDateSeparator() will be used.

      Note : This is an advanced setting

      Parameters:
      maskDateSeparator - New maskDateSeparator value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getMonthSelector

      public SelectItem getMonthSelector()
      SelectItem for picking a month.

      To control which selectors are visible and in what order, use selectorFormat.

      This component is an AutoChild named "monthSelector". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current monthSelector value. Default value is null
      See Also:
    • setMonthSelectorProperties

      public DateItem setMonthSelectorProperties(SelectItem monthSelectorProperties)
      Custom properties to apply to this dateItem's generated monthSelector.

      Note : This is an advanced setting

      Parameters:
      monthSelectorProperties - New monthSelectorProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getMonthSelectorProperties

      public SelectItem getMonthSelectorProperties()
      Custom properties to apply to this dateItem's generated monthSelector.
      Returns:
      Current monthSelectorProperties value. Default value is null
    • setPickerDefaults

      public DateItem setPickerDefaults(DateChooser pickerDefaults)
      Defaults for the DateChooser created by this form item. The picker for a particular item may be further customized via pickerProperties.

      By default the following DateChooser properties are set:

      • border:"1px solid black"
      • showTodayButton:true
      • showCancelButton:true
      • autoHide:true
      • closeOnEscapeKeypress:true
      These may be modified or overridden by the loaded skin. Note that as with any defaults block, modifications should be made using the the Class.changeDefaults() to apply changes on top of existing settings.
      Parameters:
      pickerDefaults - New pickerDefaults value. Default value is {...}
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getPickerDefaults

      public DateChooser getPickerDefaults()
      Defaults for the DateChooser created by this form item. The picker for a particular item may be further customized via pickerProperties.

      By default the following DateChooser properties are set:

      • border:"1px solid black"
      • showTodayButton:true
      • showCancelButton:true
      • autoHide:true
      • closeOnEscapeKeypress:true
      These may be modified or overridden by the loaded skin. Note that as with any defaults block, modifications should be made using the the Class.changeDefaults() to apply changes on top of existing settings.
      Returns:
      Current pickerDefaults value. Default value is {...}
    • setPickerIconPrompt

      public DateItem setPickerIconPrompt(String pickerIconPrompt)
      Prompt to show when the user hovers the mouse over the picker icon for this DateItem. May be overridden for localization of your application.
      Overrides:
      setPickerIconPrompt in class FormItem
      Parameters:
      pickerIconPrompt - New pickerIconPrompt value. Default value is "Show Date Chooser"
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getPickerIconPrompt

      public String getPickerIconPrompt()
      Prompt to show when the user hovers the mouse over the picker icon for this DateItem. May be overridden for localization of your application.
      Overrides:
      getPickerIconPrompt in class FormItem
      Returns:
      Current pickerIconPrompt value. Default value is "Show Date Chooser"
      See Also:
    • setPickerProperties

      public DateItem setPickerProperties(DateChooser pickerProperties)
      Properties for the DateChooser created by this form item. If specified these will be applied on top of the pickerDefaults
      Parameters:
      pickerProperties - New pickerProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getPickerProperties

      public DateChooser getPickerProperties()
      Properties for the DateChooser created by this form item. If specified these will be applied on top of the pickerDefaults
      Returns:
      Current pickerProperties value. Default value is null
    • setPickerTimeItemProperties

      public DateItem setPickerTimeItemProperties(TimeItem pickerTimeItemProperties)
      A set of properties to apply to the TimeItem displayed in the picker when showPickerTimeItem is true.

      Has no effect for fields of type "date".

      Note : This is an advanced setting

      Parameters:
      pickerTimeItemProperties - New pickerTimeItemProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getPickerTimeItemProperties

      public TimeItem getPickerTimeItemProperties()
      A set of properties to apply to the TimeItem displayed in the picker when showPickerTimeItem is true.

      Has no effect for fields of type "date".

      Returns:
      Current pickerTimeItemProperties value. Default value is null
    • setSelectorFormat

      public DateItem setSelectorFormat(DateItemSelectorFormat selectorFormat)
      If showing date selectors rather than the date text field (so when this.useTextField is false), this property allows customization of the order of the day, month and year selector fields. If unset, these fields will match the specified inputFormat for this item, but note that the attribute default will likely be set by localization to a valid DateItemSelectorFormat.

      Note: selectors may be omitted entirely by setting selectorFormat to (for example) "MD". In this case the value for the omitted selector will match the defaultValue specified for the item. For example, if the selector format is "MD" (month and day only), the year comes from the Date specified as the defaultValue.

      Parameters:
      selectorFormat - New selectorFormat value. Default value is varies
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
      • com.smartgwt.client.widgets.form.fields.DateItem#setDaySelector
      • com.smartgwt.client.widgets.form.fields.DateItem#setMonthSelector
      • com.smartgwt.client.widgets.form.fields.DateItem#setYearSelector
    • getSelectorFormat

      public DateItemSelectorFormat getSelectorFormat()
      If showing date selectors rather than the date text field (so when this.useTextField is false), this property allows customization of the order of the day, month and year selector fields. If unset, these fields will match the specified inputFormat for this item, but note that the attribute default will likely be set by localization to a valid DateItemSelectorFormat.

      Note: selectors may be omitted entirely by setting selectorFormat to (for example) "MD". In this case the value for the omitted selector will match the defaultValue specified for the item. For example, if the selector format is "MD" (month and day only), the year comes from the Date specified as the defaultValue.

      Returns:
      Current selectorFormat value. Default value is varies
      See Also:
    • setShowChooserFiscalYearPicker

      public DateItem setShowChooserFiscalYearPicker(Boolean showChooserFiscalYearPicker)
      When set to true, show a button that allows the calendar to be navigated by fiscal year.
      Parameters:
      showChooserFiscalYearPicker - New showChooserFiscalYearPicker value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
    • getShowChooserFiscalYearPicker

      public Boolean getShowChooserFiscalYearPicker()
      When set to true, show a button that allows the calendar to be navigated by fiscal year.
      Returns:
      Current showChooserFiscalYearPicker value. Default value is false
    • setShowChooserWeekPicker

      public DateItem setShowChooserWeekPicker(Boolean showChooserWeekPicker)
      When set to true, show a button that allows the calendar to be navigated by week or fiscal week, depending on the value of showChooserFiscalYearPicker.
      Parameters:
      showChooserWeekPicker - New showChooserWeekPicker value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
    • getShowChooserWeekPicker

      public Boolean getShowChooserWeekPicker()
      When set to true, show a button that allows the calendar to be navigated by week or fiscal week, depending on the value of showChooserFiscalYearPicker.
      Returns:
      Current showChooserWeekPicker value. Default value is false
    • setShowHintInField

      public DateItem setShowHintInField(Boolean showHintInField)
      If useTextField is true and a hint is set, should the hint be shown within the field?

      Note that when using a native HTML5 date input (see browserInputType), in-field hints are currently supported, but future browser changes might not allow in-field hints to be supported. Therefore, it is safest to not use in-field hints in conjunction with a native HTML5 date input.

      To change this attribute after being drawn, it is necessary to call FormItem.redraw() or redraw the form.

      Parameters:
      showHintInField - New showHintInField value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getShowHintInField

      public Boolean getShowHintInField()
      If useTextField is true and a hint is set, should the hint be shown within the field?

      Note that when using a native HTML5 date input (see browserInputType), in-field hints are currently supported, but future browser changes might not allow in-field hints to be supported. Therefore, it is safest to not use in-field hints in conjunction with a native HTML5 date input.

      To change this attribute after being drawn, it is necessary to call FormItem.redraw() or redraw the form.

      Returns:
      Current showHintInField value. Default value is null
      See Also:
    • setShowItemTitles

      public DateItem setShowItemTitles(Boolean showItemTitles)
      When useTextField is false, whether titles should be shown for for child-items in this DateItem. By default, showItemTitles is false.
      Parameters:
      showItemTitles - New showItemTitles value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getShowItemTitles

      public Boolean getShowItemTitles()
      When useTextField is false, whether titles should be shown for for child-items in this DateItem. By default, showItemTitles is false.
      Returns:
      Current showItemTitles value. Default value is false
      See Also:
    • setShowPickerTimeItem

      public DateItem setShowPickerTimeItem(Boolean showPickerTimeItem)
      If this field is of type "datetime", when showing the DateChooser, should the time field be displayed?

      Has no effect for fields of type "date".

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Parameters:
      showPickerTimeItem - New showPickerTimeItem value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
    • getShowPickerTimeItem

      public Boolean getShowPickerTimeItem()
      If this field is of type "datetime", when showing the DateChooser, should the time field be displayed?

      Has no effect for fields of type "date".

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Returns:
      Current showPickerTimeItem value. Default value is true
    • setStartDate

      public DateItem setStartDate(Date startDate)
      The minimum date this item is intended to work with.

      The default value is January 1st, 10 years before the current year.

      The range specified by this setting and endDate must be enforced via a dateRange validator. By default, a client-only validator is automatically generated for you, unless you provide a customized one on this item or an associated DataSourceField. Note that changing this attribute after the item is drawn may result in item-validation.

      When useTextField is true, dates are typed in and will be validated as usual, according to settings such as validateOnChange and validateOnExit.

      When useTextField is false and the item is using separate selectors for date-parts, validation behavior for rejecting out-of-range dates remains the same. However, setting startDate and endDate will not always prevent the user from temporarily picking invalid values. In particular:

      • the set of available days will only be restricted if the start and end dates fall within the same month
      • the set of available months will only be restricted if the start and end dates fall within the same year

      This is by design as it allows the user to set the day, month and year in whatever order is convenient, rather than forcing them to pick in a specific order. As when useTextField is true, invalid dates are rejected as part of regular item validation, if a validator exists.

      If this method is called after the component has been drawn/initialized: Setter for startDate.

      Note: A LogicalDate is expected.

      Parameters:
      startDate - the new startDate. Default value is See below
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getStartDate

      public Date getStartDate()
      The minimum date this item is intended to work with.

      The default value is January 1st, 10 years before the current year.

      The range specified by this setting and endDate must be enforced via a dateRange validator. By default, a client-only validator is automatically generated for you, unless you provide a customized one on this item or an associated DataSourceField. Note that changing this attribute after the item is drawn may result in item-validation.

      When useTextField is true, dates are typed in and will be validated as usual, according to settings such as validateOnChange and validateOnExit.

      When useTextField is false and the item is using separate selectors for date-parts, validation behavior for rejecting out-of-range dates remains the same. However, setting startDate and endDate will not always prevent the user from temporarily picking invalid values. In particular:

      • the set of available days will only be restricted if the start and end dates fall within the same month
      • the set of available months will only be restricted if the start and end dates fall within the same year

      This is by design as it allows the user to set the day, month and year in whatever order is convenient, rather than forcing them to pick in a specific order. As when useTextField is true, invalid dates are rejected as part of regular item validation, if a validator exists.

      Returns:
      Current startDate value. Default value is See below
      See Also:
    • setTextAlign

      public DateItem setTextAlign(Alignment textAlign)
      If useTextField is true this property governs the alignment of text within the text field. Defaults to "right" by default or "left" if the page is in rtl mode.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Overrides:
      setTextAlign in class FormItem
      Parameters:
      textAlign - New textAlign value. Default value is varies
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getTextAlign

      public Alignment getTextAlign()
      If useTextField is true this property governs the alignment of text within the text field. Defaults to "right" by default or "left" if the page is in rtl mode.

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Overrides:
      getTextAlign in class FormItem
      Returns:
      Current textAlign value. Default value is varies
      See Also:
    • getTextField

      public TextItem getTextField()
      Text field to hold the entire date in "type in" format, if useTextField is true.

      This component is an AutoChild named "textField". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current textField value. Default value is null
    • setTextFieldProperties

      public DateItem setTextFieldProperties(TextItem textFieldProperties)
      Custom properties to apply to this dateItem's generated textField. Only applies if useTextField is true.

      Note : This is an advanced setting

      Parameters:
      textFieldProperties - New textFieldProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getTextFieldProperties

      public TextItem getTextFieldProperties()
      Custom properties to apply to this dateItem's generated textField. Only applies if useTextField is true.
      Returns:
      Current textFieldProperties value. Default value is null
    • setUse24HourTime

      public DateItem setUse24HourTime(Boolean use24HourTime)
      When showing the DateChooser and the field is of type "datetime", whether the time field should be set to use 24-hour time. The default is true.

      Has no effect if showPickerTimeItem is explicitly set to false.

      Parameters:
      use24HourTime - New use24HourTime value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
    • getUse24HourTime

      public Boolean getUse24HourTime()
      When showing the DateChooser and the field is of type "datetime", whether the time field should be set to use 24-hour time. The default is true.

      Has no effect if showPickerTimeItem is explicitly set to false.

      Returns:
      Current use24HourTime value. Default value is true
    • setUseMask

      public DateItem setUseMask(Boolean useMask)
      If useTextField is not false this property determines if an input mask should be used. The format of the mask is determined by the inputFormat or dateFormatter (in that order).

      This attribute does not have an effect if a native HTML5 date input is being used. See browserInputType.

      Note : This is an advanced setting

      Parameters:
      useMask - New useMask value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • setUsePlaceholderForHint

      public DateItem setUsePlaceholderForHint(boolean usePlaceholderForHint)
      If showing the hint in field and if supported by the browser, should the HTML5 placeholder attribute be used to display the hint within the field? If set to false, then use of the placeholder attribute is disabled and an alternative technique to display the hint in-field is used instead.

      The HTML5 placeholder attribute is supported in the following major browsers:

      • Chrome 4+
      • Firefox 4+
      • Internet Explorer 10+
      • Safari 5+
      • Opera 11.50+
      • Android 2.1+ WebView (used by the stock Browser app and when packaging with PhoneGap)
      • Mobile Safari for iOS 3.2+

      In browsers other than the above, in-field hints are implemented via a different technique.

      Note that placeholder behavior is known to differ in Internet Explorer and certain old versions of the above browsers due to a recent change in the HTML5 specification regarding the placeholder attribute. Under the old rules, the placeholder is cleared when the element is focused. In the latest HTML5 spec as published by WHATWG, the placeholder is still displayed when the element is focused as long as the value is an empty string.

      Styling the placeholder

      While there isn't a standard way to style the placeholder text, Chrome, Firefox, Internet Explorer, and Safari provide vendor-prefixed pseudo-classes and/or pseudo-elements that can be used in CSS selectors:
      Browser Pseudo-class or pseudo-element
      Chrome, Safari ::-webkit-input-placeholder
      Firefox 4 - 18 :-moz-placeholder
      Firefox 19+ ::-moz-placeholder
      Internet Explorer :-ms-input-placeholder

      Note that unlike other browsers, Firefox 19+ applies opacity:0.4 to the placeholder text. See Bug 556145 - Placeholder text default style should use opacity instead of GrayText

      Because browsers are required to ignore the entire rule if a selector is invalid, separate rules are needed for each browser. For example:

      ::-webkit-input-placeholder {
           color: blue;
           opacity: 1;
       }
       :-moz-placeholder {
           color: blue;
           opacity: 1;
       }
       ::-moz-placeholder {
           color: blue;
           opacity: 1;
       }
       :-ms-input-placeholder {
           color: blue;
           opacity: 1;
       }

      If using Sass, it may be useful to utilize Sass' parent selector feature. For example:

      .myCustomItem,
       .myCustomItemRTL,
       .myCustomItemDisabled,
       .myCustomItemDisabledRTL,
       .myCustomItemError,
       .myCustomItemErrorRTL,
       .myCustomItemFocused,
       .myCustomItemFocusedRTL,
       .myCustomItemHint,
       .myCustomItemHintRTL,
       .myCustomItemDisabledHint,
       .myCustomItemDisabledHintRTL {
           // ...
       
           &::-webkit-input-placeholder {
               color: blue;
               opacity: 1;
           }
           &:-moz-placeholder {
               color: blue;
               opacity: 1;
           }
           &::-moz-placeholder {
               color: blue;
               opacity: 1;
           }
           &:-ms-input-placeholder {
               color: blue;
               opacity: 1;
           }
       }

      If using Compass, the input-placeholder mixin that was added in version 1.0 can further simplify the code to style the placeholder text For example:

      .myCustomItem,
       .myCustomItemRTL,
       .myCustomItemDisabled,
       .myCustomItemDisabledRTL,
       .myCustomItemError,
       .myCustomItemErrorRTL,
       .myCustomItemFocused,
       .myCustomItemFocusedRTL,
       .myCustomItemHint,
       .myCustomItemHintRTL,
       .myCustomItemDisabledHint,
       .myCustomItemDisabledHintRTL {
           // ...
       
           @include input-placeholder {
               color: blue;
               opacity: 1;
           }
       }

      Accessibility concerns

      The HTML5 specification notes that a placeholder should not be used as a replacement for a title. The placeholder is intended to be a short hint that assists the user who is entering a value into the empty field. The placeholder can be mistaken by some users for a pre-filled value, particularly in Internet Explorer because the same color is used, and the placeholder text color may provide insufficient contrast, particularly in Firefox 19+ because of the default 0.4 opacity. Furthermore, not having a title reduces the hit area available for setting focus on the item.

      Note : This is an advanced setting

      Parameters:
      usePlaceholderForHint - New usePlaceholderForHint value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getUsePlaceholderForHint

      public boolean getUsePlaceholderForHint()
      If showing the hint in field and if supported by the browser, should the HTML5 placeholder attribute be used to display the hint within the field? If set to false, then use of the placeholder attribute is disabled and an alternative technique to display the hint in-field is used instead.

      The HTML5 placeholder attribute is supported in the following major browsers:

      • Chrome 4+
      • Firefox 4+
      • Internet Explorer 10+
      • Safari 5+
      • Opera 11.50+
      • Android 2.1+ WebView (used by the stock Browser app and when packaging with PhoneGap)
      • Mobile Safari for iOS 3.2+

      In browsers other than the above, in-field hints are implemented via a different technique.

      Note that placeholder behavior is known to differ in Internet Explorer and certain old versions of the above browsers due to a recent change in the HTML5 specification regarding the placeholder attribute. Under the old rules, the placeholder is cleared when the element is focused. In the latest HTML5 spec as published by WHATWG, the placeholder is still displayed when the element is focused as long as the value is an empty string.

      Styling the placeholder

      While there isn't a standard way to style the placeholder text, Chrome, Firefox, Internet Explorer, and Safari provide vendor-prefixed pseudo-classes and/or pseudo-elements that can be used in CSS selectors:
      Browser Pseudo-class or pseudo-element
      Chrome, Safari ::-webkit-input-placeholder
      Firefox 4 - 18 :-moz-placeholder
      Firefox 19+ ::-moz-placeholder
      Internet Explorer :-ms-input-placeholder

      Note that unlike other browsers, Firefox 19+ applies opacity:0.4 to the placeholder text. See Bug 556145 - Placeholder text default style should use opacity instead of GrayText

      Because browsers are required to ignore the entire rule if a selector is invalid, separate rules are needed for each browser. For example:

      ::-webkit-input-placeholder {
           color: blue;
           opacity: 1;
       }
       :-moz-placeholder {
           color: blue;
           opacity: 1;
       }
       ::-moz-placeholder {
           color: blue;
           opacity: 1;
       }
       :-ms-input-placeholder {
           color: blue;
           opacity: 1;
       }

      If using Sass, it may be useful to utilize Sass' parent selector feature. For example:

      .myCustomItem,
       .myCustomItemRTL,
       .myCustomItemDisabled,
       .myCustomItemDisabledRTL,
       .myCustomItemError,
       .myCustomItemErrorRTL,
       .myCustomItemFocused,
       .myCustomItemFocusedRTL,
       .myCustomItemHint,
       .myCustomItemHintRTL,
       .myCustomItemDisabledHint,
       .myCustomItemDisabledHintRTL {
           // ...
       
           &::-webkit-input-placeholder {
               color: blue;
               opacity: 1;
           }
           &:-moz-placeholder {
               color: blue;
               opacity: 1;
           }
           &::-moz-placeholder {
               color: blue;
               opacity: 1;
           }
           &:-ms-input-placeholder {
               color: blue;
               opacity: 1;
           }
       }

      If using Compass, the input-placeholder mixin that was added in version 1.0 can further simplify the code to style the placeholder text For example:

      .myCustomItem,
       .myCustomItemRTL,
       .myCustomItemDisabled,
       .myCustomItemDisabledRTL,
       .myCustomItemError,
       .myCustomItemErrorRTL,
       .myCustomItemFocused,
       .myCustomItemFocusedRTL,
       .myCustomItemHint,
       .myCustomItemHintRTL,
       .myCustomItemDisabledHint,
       .myCustomItemDisabledHintRTL {
           // ...
       
           @include input-placeholder {
               color: blue;
               opacity: 1;
           }
       }

      Accessibility concerns

      The HTML5 specification notes that a placeholder should not be used as a replacement for a title. The placeholder is intended to be a short hint that assists the user who is entering a value into the empty field. The placeholder can be mistaken by some users for a pre-filled value, particularly in Internet Explorer because the same color is used, and the placeholder text color may provide insufficient contrast, particularly in Firefox 19+ because of the default 0.4 opacity. Furthermore, not having a title reduces the hit area available for setting focus on the item.
      Returns:
      Current usePlaceholderForHint value. Default value is true
      See Also:
    • setUseSharedPicker

      public DateItem setUseSharedPicker(Boolean useSharedPicker)
      When set to true (the default), use a single shared date-picker across all widgets that use one. When false, create a new picker using the autoChild system. See picker and pickerProperties for details on setting up an unshared picker.
      Parameters:
      useSharedPicker - New useSharedPicker value. Default value is true
      Returns:
      DateItem instance, for chaining setter calls
    • getUseSharedPicker

      public Boolean getUseSharedPicker()
      When set to true (the default), use a single shared date-picker across all widgets that use one. When false, create a new picker using the autoChild system. See picker and pickerProperties for details on setting up an unshared picker.
      Returns:
      Current useSharedPicker value. Default value is true
    • setUseTextField

      public DateItem setUseTextField(Boolean useTextField)
      When set to true, the item uses a single text field for working with the item's value.

      When false or unset, the default, the item's value is represented by separate day, month, and/or year selectors. In this mode, null values are not supported, and a default value of Today will be enforced if no defaultValue is specified. This means that a DateItem with useTextField set to false is effectively a required field.

      If you want to change the appearance of a DateItem, you will need to configure some autoChildren such as textField via textFieldProperties, or in useTextField:false mode, the daySelector and other selectors, configured via daySelectorProperties et al.

      Parameters:
      useTextField - New useTextField value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getUseTextField

      public Boolean getUseTextField()
      When set to true, the item uses a single text field for working with the item's value.

      When false or unset, the default, the item's value is represented by separate day, month, and/or year selectors. In this mode, null values are not supported, and a default value of Today will be enforced if no defaultValue is specified. This means that a DateItem with useTextField set to false is effectively a required field.

      If you want to change the appearance of a DateItem, you will need to configure some autoChildren such as textField via textFieldProperties, or in useTextField:false mode, the daySelector and other selectors, configured via daySelectorProperties et al.

      Returns:
      Current useTextField value. Default value is null
      See Also:
    • setWrapHintText

      public DateItem setWrapHintText(Boolean wrapHintText)
      If this item is showing a FormItem.hint, should the hint text be allowed to wrap? Setting this property to false will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.

      If unset this property will be picked up from the DynamicForm.wrapHintText setting.

      This setting does not apply to hints that are shown in field.

      Overrides:
      setWrapHintText in class FormItem
      Parameters:
      wrapHintText - New wrapHintText value. Default value is false
      Returns:
      DateItem instance, for chaining setter calls
      See Also:
    • getWrapHintText

      public Boolean getWrapHintText()
      If this item is showing a FormItem.hint, should the hint text be allowed to wrap? Setting this property to false will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.

      If unset this property will be picked up from the DynamicForm.wrapHintText setting.

      This setting does not apply to hints that are shown in field.

      Overrides:
      getWrapHintText in class FormItem
      Returns:
      Current wrapHintText value. Default value is false
      See Also:
    • getYearSelector

      public SelectItem getYearSelector()
      SelectItem for picking a year.

      To control which selectors are visible and in what order, use selectorFormat.

      This component is an AutoChild named "yearSelector". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current yearSelector value. Default value is null
      See Also:
    • setYearSelectorProperties

      public DateItem setYearSelectorProperties(SelectItem yearSelectorProperties)
      Custom properties to apply to this dateItem's generated yearSelector.

      Note : This is an advanced setting

      Parameters:
      yearSelectorProperties - New yearSelectorProperties value. Default value is null
      Returns:
      DateItem instance, for chaining setter calls
    • getYearSelectorProperties

      public SelectItem getYearSelectorProperties()
      Custom properties to apply to this dateItem's generated yearSelector.
      Returns:
      Current yearSelectorProperties value. Default value is null
    • deselectValue

      public void deselectValue()
      If useTextField is true, falls through to standard deselectValue() implementation on this items freeform text entry field. Otherwise has no effect.
    • deselectValue

      public void deselectValue(Boolean start)
      If useTextField is true, falls through to standard deselectValue() implementation on this items freeform text entry field. Otherwise has no effect.
      Parameters:
      start - If this parameter is passed, new cursor insertion position will be moved to the start, rather than the end of this item's value.
    • getEnteredValue

      public String getEnteredValue()
      Returns the raw text value typed into this items text field if useTextField is true (otherwise returns the result of this.getValue()).
      Returns:
      value the user entered
    • getFiscalCalendar

      public FiscalCalendar getFiscalCalendar()
      Returns the FiscalCalendar object that will be used by this item's DateChooser.
      Returns:
      the fiscal calendar for this chooser, if set, or the global one otherwise
    • pendingStatusChanged

      public boolean pendingStatusChanged(DynamicForm form, FormItem item, boolean pendingStatus, Object newValue, Object value)
      Notification method called when showPending is enabled and this date item should either clear or show its pending visual state.

      The default behavior is that the titleStyle and cellStyle are updated to include/exclude the "Pending" suffix. In addition, when displayed in the pending state:

      Returning false will cancel this default behavior.
      Parameters:
      form - the managing DynamicForm instance.
      item - the form item itself (also available as "this").
      pendingStatus - true if the item should show its pending visual state; false otherwise.
      newValue - the current form item value.
      value - the value that would be restored by a call to DynamicForm.resetValues().
      Returns:
      false to cancel the default behavior.
    • selectValue

      public void selectValue()
      If useTextField is true, falls through to standard selectValue() implementation on this items freeform text entry field. Otherwise has no effect.
    • setFiscalCalendar

      public void setFiscalCalendar()
      Sets the FiscalCalendar object that will be used by this item's DateChooser. If unset, the global fiscal calendar is used.
    • setFiscalCalendar

      public void setFiscalCalendar(FiscalCalendar fiscalCalendar)
      Sets the FiscalCalendar object that will be used by this item's DateChooser. If unset, the global fiscal calendar is used.
      Parameters:
      fiscalCalendar - the fiscal calendar for this chooser, if set, or the global one otherwise
    • setSelectionRange

      public void setSelectionRange(int start, int end)
      If useTextField is true, falls through to standard setSelectionRange() implementation on this items freeform text entry field. Otherwise has no effect.
      Parameters:
      start - character index for start of new selection
      end - character index for end of new selection
    • setDefaultProperties

      public static void setDefaultProperties(DateItem dateItemProperties)
      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties of the class instance passed to this function. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
      dateItemProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • getValueAsDate

      public Date getValueAsDate()
      Return the value tracked by this form item.
      Returns:
      value of this element
    • getSelectionRange

      public int[] getSelectionRange()
      If useTextField is true, falls through to standard com.smartgwt.client.widgets.form.fields.FormItem#getSelectionRange implementation on this items freeform text entry field. Otherwise has no effect.
      Returns:
      2 element array indicating start/end character index of current selection within our text entry field. Returns null if this item is undrawn or doesn't have focus.
    • setEditorValueFormatter

      public void setEditorValueFormatter(FormItemValueFormatter formatter)
      An optional FormItemValueFormatter to map this item's current data value to a display value. Only applies if setUseTextField(java.lang.Boolean) is true.

      Notes

      • #setDateFormatter() already provides support for most standard "short date" formats, so a completely custom formatter method is often not required.
      • System-wide custom date formatting and parsing may be achieved via methods on the DateUtil class.
      • When a custom formatter is specified, you may also need to modify the #setInputFormat() or supply a custom #setEditorValueParser()

      When writing custom date formatting and parsing logic, developers may find the DateTimeFormat class helpful.

      Overrides:
      setEditorValueFormatter in class FormItem
      Parameters:
      formatter - the FormItemValueFormatter
    • setEditorValueParser

      public void setEditorValueParser(FormItemValueParser valueParser)
      An optional FormItemValueParser to map a user-entered display value to a data value for storage. Only applies if #setUseTextField() is set to true.

      A custom parser function will typically only be required if a custom formatter is specified via setEditorValueFormatter(FormItemValueFormatter). Even then, you may be able to simply specify an inputFormat that matches the custom display format for this item.

      System-wide custom date parsing and formatting may be achieved via methods on the DateUtil class.

      When writing custom date formatting and parsing logic, developers may find the DateTimeFormat class helpful.

      Overrides:
      setEditorValueParser in class FormItem
      Parameters:
      valueParser - the FormItemValueParser