package org.limewire.ui.swing.advanced;
import java.util.ArrayList;
import java.util.List;
import org.limewire.ui.swing.options.TabItemListener;
/**
* Base implementation of a TabItem.
*/
public abstract class AbstractTabItem implements TabItem {
/** List of listeners that are notified when the selected state changes. */
private final List<TabItemListener> listeners = new ArrayList<TabItemListener>();
/**
* Adds a listener that is notified when the selected state changes.
*/
@Override
public void addTabItemListener(TabItemListener listener) {
this.listeners.add(listener);
}
/**
* Removes a listener that is notified when the selected state changes.
*/
@Override
public void removeTabItemListener(TabItemListener listener) {
this.listeners.remove(listener);
}
/**
* Returns the identifier of the tab item.
*/
@Override
public abstract String getId();
/**
* Returns true if this tab item is currently selected.
*/
@Override
public boolean isSelected() {
return false;
}
/**
* Selects this tab item.
*/
@Override
public abstract void select();
/**
* Notifies all registered listeners about the specified selected state.
*/
public void fireSelected(boolean selected) {
for (TabItemListener listener : this.listeners) {
listener.itemSelected(selected);
}
}
}