Package com.explodingpixels.macwidgets

## Class SourceListItem

- java.lang.Object
- - com.explodingpixels.macwidgets.SourceListItem

All Implemented Interfaces:
  `MacBadgeContentProvider`, `SourceListBadgeContentProvider`, `IconProvider`, `TextProvider`

    public class SourceListItem
    extends java.lang.Object
    implements TextProvider, IconProvider, SourceListBadgeContentProvider

An item in a `SourceList` which is contained within a `SourceListCategory`.

### Field Summary

Fields
`static java.lang.String` `COUNTER_VALUE`
`static java.lang.String` `ICON`
`static java.lang.String` `TEXT`

### Constructor Summary

Constructors
`SourceListItem​(java.lang.String text)` Creates a `SourceListItem` with the given text.
`SourceListItem​(java.lang.String text, javax.swing.Icon icon)` Creates a `SourceListItem` with the given text and icon.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addPropertyChangeListener​(java.beans.PropertyChangeListener listener)` Adds a `PropertyChangeListener` on this `SourceListItem`.
`boolean` `containsItem​(SourceListItem item)` Returns `true` if the given `SourceListItem` is contained by this item, to include being a sub-element of another child `SourceListItem`.
`java.lang.String` `getBadgeValue()` Returns the string value of what should be displayed in the badge area
`java.util.List<SourceListItem>` `getChildItems()` Gets a list of this `SourceListItem`'s child `SourceListItem`s.
`int` `getCounterValue()` Gets the counter value to use for this item.
`javax.swing.Icon` `getIcon()` Gets the icon to use for this item.
`java.lang.String` `getText()` Gets the text to use for this item.
`void` `removePropertyChangeListener​(java.beans.PropertyChangeListener listener)` Removes a `PropertyChangeListener` from this `SourceListItem`.
`void` `setCounterValue​(int counterValue)` Sets the counter value to use for this item.
`void` `setIcon​(javax.swing.Icon icon)` Sets the icon to use for this item.
`void` `setText​(java.lang.String text)` Sets the text to use for this item.
`java.lang.String` `toString()` Returns a `String` representation of this `SourceListItem`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### TEXT

    public static final java.lang.String TEXT

See Also:
  Constant Field Values

#### ICON

    public static final java.lang.String ICON

See Also:
  Constant Field Values

#### COUNTER_VALUE

    public static final java.lang.String COUNTER_VALUE

See Also:
  Constant Field Values

### Constructor Detail

#### SourceListItem

    public SourceListItem​(java.lang.String text)

Creates a `SourceListItem` with the given text.

Parameters:
  `text` - the item text. Cannot be null.
Throws:
  `java.lang.IllegalArgumentException` - if the text is null.

#### SourceListItem

    public SourceListItem​(java.lang.String text,
                          javax.swing.Icon icon)

Creates a `SourceListItem` with the given text and icon.

Parameters:
  `text` - the item text. Cannot be null.
  `icon` - the item icon. Can be null.
Throws:
  `java.lang.IllegalArgumentException` - if the text is null.

### Method Detail

#### getText

    public java.lang.String getText()

Gets the text to use for this item.

Specified by:
  `getText` in interface `TextProvider`
Returns:
  the text to use for this item.

#### setText

    public void setText​(java.lang.String text)

Sets the text to use for this item.

Parameters:
  `text` - the text to use for this item. Cannot be null.
Throws:
  `java.lang.IllegalArgumentException` - if the text is null.

#### getIcon

    public javax.swing.Icon getIcon()

Gets the icon to use for this item.

Specified by:
  `getIcon` in interface `IconProvider`
Returns:
  the icon to use for this item.

#### setIcon

    public void setIcon​(javax.swing.Icon icon)

Sets the icon to use for this item.

Parameters:
  `icon` - the icon to use for this item. Can be null.

#### getCounterValue

    public int getCounterValue()

Gets the counter value to use for this item. The counter value will be displayed to the right of the item.

Specified by:
  `getCounterValue` in interface `SourceListBadgeContentProvider`
Returns:
  the counter value to use for this item.

#### getBadgeValue

    public java.lang.String getBadgeValue()

Returns the string value of what should be displayed in the badge area

Specified by:
  `getBadgeValue` in interface `MacBadgeContentProvider`
Returns:
  text to display

#### setCounterValue

    public void setCounterValue​(int counterValue)

Sets the counter value to use for this item. The counter value will be displayed to the right of the item.

Parameters:
  `counterValue` - the counter value to use for this item. Must be >= 0.
Throws:
  `java.lang.IllegalArgumentException` - if the counter value is not >= 0.

#### containsItem

    public boolean containsItem​(SourceListItem item)

Returns `true` if the given `SourceListItem` is contained by this item, to include being a sub-element of another child `SourceListItem`.

Parameters:
  `item` - the `SourceListItem` to determine whether or not is contained by this item.
Returns:
  `true` if the given `SourceListItem` is contained within this item or within on of this items child `SourceListItem`s.

#### toString

    public java.lang.String toString()

Returns a `String` representation of this `SourceListItem`.

Overrides:
  `toString` in class `java.lang.Object`
Returns:
  a `String` representation of this `SourceListItem`.

#### getChildItems

    public java.util.List<SourceListItem> getChildItems()

Gets a list of this `SourceListItem`'s child `SourceListItem`s.

Returns:
  a list of this `SourceListItem`'s child `SourceListItem`s.

#### addPropertyChangeListener

    public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)

Adds a `PropertyChangeListener` on this `SourceListItem`.

Parameters:
  `listener` - the listener to add.

#### removePropertyChangeListener

    public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)

Removes a `PropertyChangeListener` from this `SourceListItem`.

Parameters:
  `listener` - the listener to remove.