Class SingleSelectBoxDisplay<T>

java.lang.Object
name.matthewgreet.strutscommons.view.SingleSelectBoxDisplay<T>
Direct Known Subclasses:
IntegerListSelectBoxDisplay

public abstract class SingleSelectBoxDisplay<T> extends Object
Template that aids creation of OPTION tags in JSPs for single selection SELECT elements by formatting list for display. Concrete subclasses override getValue(T) and getText(T) to extract item values and display text from a raw list. See also SelectBoxItemDisplay.

Example JSP code:
<SELECT SIZE="1" NAME="category" />
  <s:iterator value="categoryDisplay.list" var="categoryItemDisplay">
    <OPTION VALUE="<s:property value="#categoryItemDisplay.value"/>" <s:property value="#categoryItemDisplay.selectedAttribute"/>><s:property value="#categoryItemDisplay.text"/></OPTION>
  </s:iterator>
</SELECT>

  • Constructor Details

    • SingleSelectBoxDisplay

      public SingleSelectBoxDisplay()
  • Method Details

    • addItems

      protected void addItems(List<SelectBoxItemDisplay<T>> formattedModel)
      May be overridden by subclasses to add additional, formatted items to the display list. This is typically used to add a blank item to represent no value or text that demands a real value is selected. This is called after sorting.
      Parameters:
      formattedModel - List of SelectBoxItemDisplay
    • getBlankText

      protected String getBlankText()
      If hasBlankValue() returns true or addBlankValue() is called, returns text to display for blank value. Defaults to blank.
    • getInitialList

      protected List<SelectBoxItemDisplay<T>> getInitialList()
      May be overridden by subclasses to return initial selection, especially if the list is hardcoded and setModel will not be used. Can return null for no initial list.
    • getLogger

      protected org.apache.logging.log4j.Logger getLogger()
      May be overridden by subclasses to return logger of subclass.
    • getSortComparator

      protected Comparator<SelectBoxItemDisplay<T>> getSortComparator()
      May be overridden by subclasses to return a comparator for defining display order of formatted items. Comparator compares instances of SelectBoxItemDisplay that are allowed by subclass. Defaults to comparator that sorts by ascending display text.
    • getText

      protected abstract String getText(T item)
      Overridden by subclasses to return formatted text to be displayed to user as part of OPTION element.
      Parameters:
      item - Member of raw data list to be displayed.
    • getValue

      protected abstract String getValue(T item)
      Overridden by subclasses to return string to be used in VALUE attribute of OPTION element. This is the value return in form data.
      Parameters:
      item - Member of raw data list to be displayed.
    • hasBlankValue

      protected boolean hasBlankValue()
      May be overridden by subclasses to return true, inserting a blank value at the beginning of the SELECT list. Defaults to false.
    • isAllowed

      protected boolean isAllowed(T item)
      May be overridden by subclasses to filter items in lookup list from display. Defaults to allow all items.
      Parameters:
      item - Member of raw data list to be displayed.
    • addBlankValue

      public void addBlankValue()
      If called after setModel(java.util.Collection<T>), inserts blank value to beginning of list. This is useful for search fields where a blank value means no search.
    • getList

      public List<SelectBoxItemDisplay<T>> getList()
      Returns formatted version of account list for human display.
    • getSelectedItem

      public SelectBoxItemDisplay<T> getSelectedItem()
      Returns selected, formatted item or null if none selected.
    • setList

      public void setList(List<SelectBoxItemDisplay<T>> value)
      Directly sets formatted version of account list for human display. The value must already be sorted.
    • setModel

      public void setModel(Collection<T> model)
      Formats lookup list for use in single selection HTML SELECT element. This replaces any initial list.
    • setSelectedValue

      public void setSelectedValue(String value)
      Sets selected item of list identified by its value.
      Parameters:
      value - id of selected item or null or empty string to select none.