Class DateRangeItem

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

public class DateRangeItem extends CanvasItem
Allows a user to select an absolute or relative range of dates via two RelativeDateItems (if allowRelativeDates is true) or two DateItems.

The item's data type is expected to be one of "date" or "datetime" and dictates whether the dates in the range include a time portion. If unset and the item's form is databound, the data type is detected from the associated dataSource field. If there is no such field, or the form is not databound, the default data type value is "date".

DateRangeItem is just a convenience relative to using two RelativeDateItem or DateItem controls in a form, then using FormItem.operator and FormItem.criteriaField to cause them to produce a date range. If you need more control over layout, validation, event handling or any other aspect of appearance or behavior, stop using DateRangeItem and use two DateItem/RelativeDateItem controls directly instead.

  • Constructor Details

    • DateRangeItem

      public DateRangeItem()
    • DateRangeItem

      public DateRangeItem(JavaScriptObject jsObj)
    • DateRangeItem

      public DateRangeItem(String name)
    • DateRangeItem

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

    • getOrCreateRef

      public static DateRangeItem 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)
    • getAbsoluteDateTimeItemConstructor

      public String getAbsoluteDateTimeItemConstructor()
      The FormItem class to create when allowRelativeDates is false, and the DateRangeItem's type is "datetime".
      Returns:
      Current absoluteDateTimeItemConstructor value. Default value is "DateTimeItem"
      See Also:
    • getAbsoluteItemConstructor

      public String getAbsoluteItemConstructor()
      The FormItem class to create when allowRelativeDates is false, but the DateRangeItem does not have type "datetime".
      Returns:
      Current absoluteItemConstructor value. Default value is "DateItem"
      See Also:
    • setAllowRelativeDates

      public DateRangeItem setAllowRelativeDates(Boolean allowRelativeDates)
      Whether to allow the user to specify relative dates (via RelativeDateItems) or whether dates are absolute (via DateItems).
      Parameters:
      allowRelativeDates - New allowRelativeDates value. Default value is false
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getAllowRelativeDates

      public Boolean getAllowRelativeDates()
      Whether to allow the user to specify relative dates (via RelativeDateItems) or whether dates are absolute (via DateItems).
      Returns:
      Current allowRelativeDates value. Default value is false
    • getDateRangeForm

      public DynamicForm getDateRangeForm()
      DynamicForm com.smartgwt.client.types.AutoChild automatically created by the dateRangeItem and applied to the item as this.canvas.

      This DynamicForm contains the "from" and "to" fields the user will interact with to actually select a date-range. Note that as a standard autoChild, developers may customize this form by modifying dateRangeProperties.

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

      Returns:
      Current dateRangeForm value. Default value is null
    • setFieldLayout

      public DateRangeItem setFieldLayout(DateFieldLayout fieldLayout)
      Controls the placement of the toField and fromField in the dateRangeForm.

      Note that we don't recommend "horizontal" placement for mobile, and we also don't recommend it for allowRelativeDates mode, since RelativeDateItem changes width drastically during editing, which causes a lot of unpleasant side-to-side shifting of controls.

      Parameters:
      fieldLayout - New fieldLayout value. Default value is "vertical"
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getFieldLayout

      public DateFieldLayout getFieldLayout()
      Controls the placement of the toField and fromField in the dateRangeForm.

      Note that we don't recommend "horizontal" placement for mobile, and we also don't recommend it for allowRelativeDates mode, since RelativeDateItem changes width drastically during editing, which causes a lot of unpleasant side-to-side shifting of controls.

      Returns:
      Current fieldLayout value. Default value is "vertical"
    • setFormula

      public DateRangeItem setFormula(UserFormula formula)
      Not applicable to a DateRangeItem.
      Overrides:
      setFormula in class FormItem
      Parameters:
      formula - New formula value. Default value is null
      Returns:
      DateRangeItem instance, for chaining setter calls
      See Also:
    • getFormula

      public UserFormula getFormula()
      Not applicable to a DateRangeItem.
      Overrides:
      getFormula in class FormItem
      Returns:
      Current formula value. Default value is null
      See Also:
    • getFromField

      public FormItem getFromField()
      The field for the "from" date - a RelativeDateItem or DateItem according to allowRelativeDates.

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

      Returns:
      Current fromField value. Default value is null
    • setFromTitle

      public DateRangeItem setFromTitle(String fromTitle)
      The title for the from part of the range.
      Parameters:
      fromTitle - New fromTitle value. Default value is "From"
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getFromTitle

      public String getFromTitle()
      The title for the from part of the range.
      Returns:
      Current fromTitle value. Default value is "From"
    • setInnerTitleOrientation

      public DateRangeItem setInnerTitleOrientation(TitleOrientation innerTitleOrientation)
      The title orientation for the to / from sub-items. If unset this will be derived from this.titleOrientation or this.form.titleOrientation.
      Parameters:
      innerTitleOrientation - New innerTitleOrientation value. Default value is null
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getInnerTitleOrientation

      public TitleOrientation getInnerTitleOrientation()
      The title orientation for the to / from sub-items. If unset this will be derived from this.titleOrientation or this.form.titleOrientation.
      Returns:
      Current innerTitleOrientation value. Default value is null
    • setInputFormat

      public DateRangeItem setInputFormat(String inputFormat)
      For fields of type "date", if this is an editable field such as a TextItem, this property allows you to specify the inputFormat applied to the item.
      Overrides:
      setInputFormat in class FormItem
      Parameters:
      inputFormat - New inputFormat value. Default value is null
      Returns:
      DateRangeItem instance, for chaining setter calls
      See Also:
    • getInputFormat

      public String getInputFormat()
      For fields of type "date", if this is an editable field such as a TextItem, this property allows you to specify the inputFormat applied to the item.
      Overrides:
      getInputFormat in class FormItem
      Returns:
      Current inputFormat value. Default value is null
      See Also:
    • setInvalidRangeErrorMessage

      public DateRangeItem setInvalidRangeErrorMessage(String invalidRangeErrorMessage)
      Error message to display if the user enters a date range where the "To" field value is earlier than the "From" field value.
      Parameters:
      invalidRangeErrorMessage - New invalidRangeErrorMessage value. Default value is "'To' field value cannot be earlier than 'From' field value."
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getInvalidRangeErrorMessage

      public String getInvalidRangeErrorMessage()
      Error message to display if the user enters a date range where the "To" field value is earlier than the "From" field value.
      Returns:
      Current invalidRangeErrorMessage value. Default value is "'To' field value cannot be earlier than 'From' field value."
    • getRelativeItemConstructor

      public String getRelativeItemConstructor()
      The FormItem class to create when allowRelativeDates is true.
      Returns:
      Current relativeItemConstructor value. Default value is "RelativeDateItem"
    • setShouldSaveValue

      public DateRangeItem setShouldSaveValue(Boolean shouldSaveValue)
      Allow dateRangeItems' values to show up in the form's values array, or if DynamicForm.getValuesAsCriteria() is called, for the criterion to be included in the returned AdvancedCriteria object
      Overrides:
      setShouldSaveValue in class CanvasItem
      Parameters:
      shouldSaveValue - New shouldSaveValue value. Default value is true
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getShouldSaveValue

      public Boolean getShouldSaveValue()
      Allow dateRangeItems' values to show up in the form's values array, or if DynamicForm.getValuesAsCriteria() is called, for the criterion to be included in the returned AdvancedCriteria object
      Overrides:
      getShouldSaveValue in class CanvasItem
      Returns:
      Current shouldSaveValue value. Default value is true
    • setTextFormula

      public DateRangeItem setTextFormula(UserSummary textFormula)
      Not applicable to a DateRangeItem.
      Overrides:
      setTextFormula in class FormItem
      Parameters:
      textFormula - New textFormula value. Default value is null
      Returns:
      DateRangeItem instance, for chaining setter calls
      See Also:
    • getTextFormula

      public UserSummary getTextFormula()
      Not applicable to a DateRangeItem.
      Overrides:
      getTextFormula in class FormItem
      Returns:
      Current textFormula value. Default value is null
      See Also:
    • setToDate

      public DateRangeItem setToDate(Date toDate)
      Initial value for the "to" date.

      If this method is called after the component has been drawn/initialized: Sets the toDate for this DateRangeItem.
      Parameters:
      toDate - the date at which this item should end it's range. Default value is today
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getToDate

      public Date getToDate()
      Initial value for the "to" date.
      Returns:
      Current toDate value. Default value is today
    • setToDate

      public DateRangeItem setToDate(String toDate)
      Initial value for the "to" date.

      If this method is called after the component has been drawn/initialized: Sets the toDate for this DateRangeItem.
      Parameters:
      toDate - the date at which this item should end it's range. Default value is today
      Returns:
      DateRangeItem instance, for chaining setter calls
      See Also:
    • getToDateAsString

      public String getToDateAsString()
      Initial value for the "to" date.
      Returns:
      Current toDate value. Default value is today
      See Also:
    • setToDate

      public DateRangeItem setToDate(TimeUnit toDate)
      Initial value for the "to" date.

      If this method is called after the component has been drawn/initialized: Sets the toDate for this DateRangeItem.
      Parameters:
      toDate - the date at which this item should end it's range. Default value is today
      Returns:
      DateRangeItem instance, for chaining setter calls
      See Also:
    • getToDateAsTimeUnit

      public TimeUnit getToDateAsTimeUnit()
      Initial value for the "to" date.
      Returns:
      Current toDate value. Default value is today
      See Also:
    • getToField

      public FormItem getToField()
      The field for the "to" date - a RelativeDateItem or DateItem according to allowRelativeDates.

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

      Returns:
      Current toField value. Default value is null
    • setToTitle

      public DateRangeItem setToTitle(String toTitle)
      The title for the to part of the range.
      Parameters:
      toTitle - New toTitle value. Default value is "To"
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getToTitle

      public String getToTitle()
      The title for the to part of the range.
      Returns:
      Current toTitle value. Default value is "To"
    • setValidateCriteria

      public DateRangeItem setValidateCriteria(Boolean validateCriteria)
      If this attribute is set to true when getCriterion() is called, the item will validate the "to" and "from" fields and return null if either field fails validation. See validateRange()
      Parameters:
      validateCriteria - New validateCriteria value. Default value is false
      Returns:
      DateRangeItem instance, for chaining setter calls
    • getValidateCriteria

      public Boolean getValidateCriteria()
      If this attribute is set to true when getCriterion() is called, the item will validate the "to" and "from" fields and return null if either field fails validation. See validateRange()
      Returns:
      Current validateCriteria value. Default value is false
    • hasAdvancedCriteria

      public Boolean hasAdvancedCriteria()
      Overridden to return true: dateRangeItems always generate AdvancedCriteria.
      Overrides:
      hasAdvancedCriteria in class CanvasItem
      Returns:
      true
      See Also:
    • validateRange

      public Boolean validateRange()
      Validate both "to" and "from" date-fields.
      Returns:
      false if either to or from field contains an invalid date value.
    • setDefaultProperties

      public static void setDefaultProperties(DateRangeItem dateRangeItemProperties)
      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:
      dateRangeItemProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • setFromDate

      public void setFromDate(Date fromDate)
      Initial value for the "from" date. Sets the fromDate for this DateRangeItem.
      Parameters:
      fromDate - the date from which this item should start it's range. Default value is today
    • getFromDate

      public Date getFromDate()
      Initial value for the "from" date.
      Returns:
      java.util.Date
    • getValue

      public DateRange getValue()
      Retrieves the current value of this dateRangeItem. The return value is a DateRange object that excludes start and end values if they aren't set.
      Overrides:
      getValue in class FormItem
      Returns:
      the current value of this item
    • setValue

      public void setValue(DateRange value)
      Sets the value for this dateRangeItem. The value parameter is a DateRange object that optionally includes both start and end values.
      Parameters:
      value - the new value for this item
    • setCanEditCriterionPredicate

      public void setCanEditCriterionPredicate(FormItemCanEditCriterionPredicate predicate)
      The default canEditCriterion() predicate returns true if the specified criterion contains:
      • A single "lessOrEqual" or "greaterOrEqual" criterion on this field
      • An "and" type criterion containing a "lessOrEqual" and a "greaterOrEqual" criterion on this field
      • A single "equals" criterion. Internally, this will be converted into a range by constructing an "and" type criterion containing both a "lessOrEqual" and a "greaterOrEqual" criterion on this field. Note that subsequent calls to the FormItemCriterionGetter's getCriterion() method will return this more complex criterion.
      Overrides:
      setCanEditCriterionPredicate in class CanvasItem
      Parameters:
      predicate - the predicate to determine the form items that can edit the criterion in question
      See Also:
    • setCriterionSetter

      public void setCriterionSetter(FormItemCriterionSetter setter)
      The default setCriterion() implementation applies the specified criterion to this item for editing. Applies any specified "greaterOrEqual" operator criterion or sub-criterion to our fromField and any specified "lessOrEqual" operator criterion or sub-criterion to our toField.

      Note that a single "equals" criterion can also be passed. See setCanEditCriterionPredicate() for more detail.

      Overrides:
      setCriterionSetter in class CanvasItem
      Parameters:
      setter - provides a method to update this field with the edited criterion