Class ListBox

    • Field Detail

      • DEFAULT_DIRECTION_ESTIMATOR

        public static final DirectionEstimator DEFAULT_DIRECTION_ESTIMATOR
    • Constructor Detail

      • ListBox

        public ListBox()
        Creates an empty list box in single selection mode.
      • ListBox

        @Deprecated
        public ListBox​(boolean isMultipleSelect)
        Deprecated.
        Creates an empty list box.
        Parameters:
        isMultipleSelect - specifies if multiple selection is enabled
      • ListBox

        protected ListBox​(Element element)
        This constructor may be used by subclasses to explicitly use an existing element. This element must be a <select> element.
        Parameters:
        element - the element to be used
    • Method Detail

      • wrap

        public static ListBox wrap​(Element element)
        Creates a ListBox widget that wraps an existing <select> element. This element must already be attached to the document. If the element is removed from the document, you must call RootPanel.detachNow(Widget).
        Parameters:
        element - the element to be wrapped
        Returns:
        list box
      • addItem

        public void addItem​(java.lang.String item)
        Adds an item to the list box. This method has the same effect as
         addItem(item, item)
         
        Parameters:
        item - the text of the item to be added
      • addItem

        public void addItem​(java.lang.String item,
                            HasDirection.Direction dir)
        Adds an item to the list box, specifying its direction. This method has the same effect as
         addItem(item, dir, item)
         
        Parameters:
        item - the text of the item to be added
        dir - the item's direction
      • addItem

        public void addItem​(java.lang.String item,
                            java.lang.String value)
        Adds an item to the list box, specifying an initial value for the item.
        Parameters:
        item - the text of the item to be added
        value - the item's value, to be submitted if it is part of a FormPanel; cannot be null
      • addItem

        public void addItem​(java.lang.String item,
                            HasDirection.Direction dir,
                            java.lang.String value)
        Adds an item to the list box, specifying its direction and an initial value for the item.
        Parameters:
        item - the text of the item to be added
        dir - the item's direction
        value - the item's value, to be submitted if it is part of a FormPanel; cannot be null
      • clear

        public void clear()
        Removes all items from the list box.
      • getItemCount

        public int getItemCount()
        Gets the number of items present in the list box.
        Returns:
        the number of items
      • getItemText

        public java.lang.String getItemText​(int index)
        Gets the text associated with the item at the specified index.
        Parameters:
        index - the index of the item whose text is to be retrieved
        Returns:
        the text associated with the item
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • getSelectedItemText

        public java.lang.String getSelectedItemText()
        Gets the text for currently selected item. If multiple items are selected, this method will return the text of the first selected item.
        Returns:
        the text for selected item, or null if none is selected
      • getName

        public java.lang.String getName()
        Description copied from interface: HasName
        Gets the widget's name.
        Specified by:
        getName in interface HasName
        Returns:
        the widget's name
      • getSelectedIndex

        public int getSelectedIndex()
        Gets the currently-selected item. If multiple items are selected, this method will return the first selected item (isItemSelected(int) can be used to query individual items).
        Returns:
        the selected index, or -1 if none is selected
      • getValue

        public java.lang.String getValue​(int index)
        Gets the value associated with the item at a given index.
        Parameters:
        index - the index of the item to be retrieved
        Returns:
        the item's associated value
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • getSelectedValue

        public java.lang.String getSelectedValue()
        Gets the value for currently selected item. If multiple items are selected, this method will return the value of the first selected item.
        Returns:
        the value for selected item, or null if none is selected
      • getVisibleItemCount

        public int getVisibleItemCount()
        Gets the number of items that are visible. If only one item is visible, then the box will be displayed as a drop-down list.
        Returns:
        the visible item count
      • insertItem

        public void insertItem​(java.lang.String item,
                               int index)
        Inserts an item into the list box. Has the same effect as
         insertItem(item, item, index)
         
        Parameters:
        item - the text of the item to be inserted
        index - the index at which to insert it
      • insertItem

        public void insertItem​(java.lang.String item,
                               HasDirection.Direction dir,
                               int index)
        Inserts an item into the list box, specifying its direction. Has the same effect as
         insertItem(item, dir, item, index)
         
        Parameters:
        item - the text of the item to be inserted
        dir - the item's direction
        index - the index at which to insert it
      • insertItem

        public void insertItem​(java.lang.String item,
                               java.lang.String value,
                               int index)
        Inserts an item into the list box, specifying an initial value for the item. Has the same effect as
         insertItem(item, null, value, index)
         
        Parameters:
        item - the text of the item to be inserted
        value - the item's value, to be submitted if it is part of a FormPanel.
        index - the index at which to insert it
      • insertItem

        public void insertItem​(java.lang.String item,
                               HasDirection.Direction dir,
                               java.lang.String value,
                               int index)
        Inserts an item into the list box, specifying its direction and an initial value for the item. If the index is less than zero, or greater than or equal to the length of the list, then the item will be appended to the end of the list.
        Parameters:
        item - the text of the item to be inserted
        dir - the item's direction. If null, the item is displayed in the widget's overall direction, or, if a direction estimator has been set, in the item's estimated direction.
        value - the item's value, to be submitted if it is part of a FormPanel.
        index - the index at which to insert it
      • isItemSelected

        public boolean isItemSelected​(int index)
        Determines whether an individual list item is selected.
        Parameters:
        index - the index of the item to be tested
        Returns:
        true if the item is selected
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • isMultipleSelect

        public boolean isMultipleSelect()
        Gets whether this list allows multiple selection.
        Returns:
        true if multiple selection is allowed
      • removeItem

        public void removeItem​(int index)
        Removes the item at the specified index.
        Parameters:
        index - the index of the item to be removed
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • setDirectionEstimator

        public void setDirectionEstimator​(DirectionEstimator directionEstimator)
        Sets the DirectionEstimator object. Note: this does not affect the direction of already-existing content.
        Specified by:
        setDirectionEstimator in interface HasDirectionEstimator
        Parameters:
        directionEstimator - The DirectionEstimator to be set. null means turning off direction estimation.
      • setItemSelected

        public void setItemSelected​(int index,
                                    boolean selected)
        Sets whether an individual list item is selected.

        Note that setting the selection programmatically does not cause the ChangeHandler.onChange(ChangeEvent) event to be fired.

        Parameters:
        index - the index of the item to be selected or unselected
        selected - true to select the item
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • setItemText

        public void setItemText​(int index,
                                java.lang.String text)
        Sets the text associated with the item at a given index.
        Parameters:
        index - the index of the item to be set
        text - the item's new text
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • setItemText

        public void setItemText​(int index,
                                java.lang.String text,
                                HasDirection.Direction dir)
        Sets the text associated with the item at a given index.
        Parameters:
        index - the index of the item to be set
        text - the item's new text
        dir - the item's direction.
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • setMultipleSelect

        public void setMultipleSelect​(boolean multiple)
        Sets whether this list allows multiple selections. NOTE: Using this method can spuriously fail on Internet Explorer 6.0.
        Parameters:
        multiple - true to allow multiple selections
      • setName

        public void setName​(java.lang.String name)
        Description copied from interface: HasName
        Sets the widget's name.
        Specified by:
        setName in interface HasName
        Parameters:
        name - the widget's new name
      • setSelectedIndex

        public void setSelectedIndex​(int index)
        Sets the currently selected index. After calling this method, only the specified item in the list will remain selected. For a ListBox with multiple selection enabled, see setItemSelected(int, boolean) to select multiple items at a time.

        Note that setting the selected index programmatically does not cause the ChangeHandler.onChange(ChangeEvent) event to be fired.

        Parameters:
        index - the index of the item to be selected
      • setValue

        public void setValue​(int index,
                             java.lang.String value)
        Sets the value associated with the item at a given index. This value can be used for any purpose, but is also what is passed to the server when the list box is submitted as part of a FormPanel.
        Parameters:
        index - the index of the item to be set
        value - the item's new value; cannot be null
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • setVisibleItemCount

        public void setVisibleItemCount​(int visibleItems)
        Sets the number of items that are visible. If only one item is visible, then the box will be displayed as a drop-down list.
        Parameters:
        visibleItems - the visible item count
      • onEnsureDebugId

        protected void onEnsureDebugId​(java.lang.String baseID)
        Affected Elements:
        • -item# = the option at the specified index.
        Overrides:
        onEnsureDebugId in class UIObject
        Parameters:
        baseID - the base ID used by the main element
        See Also:
        UIObject.onEnsureDebugId(String)
      • setOptionText

        protected void setOptionText​(OptionElement option,
                                     java.lang.String text,
                                     HasDirection.Direction dir)
        Sets the text of an option element. If the direction of the text is opposite to the page's direction, also wraps it with Unicode bidi formatting characters to prevent garbling, and indicates that this was done by setting the option's BIDI_ATTR_NAME custom attribute.
        Parameters:
        option - an option element
        text - text to be set to the element
        dir - the text's direction. If null and direction estimation is turned off, direction is ignored.