package org.limewire.ui.swing.advanced;
import javax.swing.JPanel;
import org.limewire.ui.swing.components.Disposable;
import org.limewire.ui.swing.util.EnabledType;
import org.limewire.listener.EventListener;
import org.limewire.listener.EventListenerList;
/**
* A base panel for tab content in the Advanced Tools window.
*/
public abstract class TabPanel extends JPanel implements Disposable {
/** List of listeners notified when the tabEnabled state changes. */
private final EventListenerList<EnabledType> enabledListenerList =
new EventListenerList<EnabledType>();
/**
* Constructs a TabPanel.
*/
public TabPanel() {
super();
}
/**
* Adds the specified listener to the list that is notified when the
* tabEnabled state changes.
*/
public void addEnabledListener(EventListener<EnabledType> listener) {
enabledListenerList.addListener(listener);
}
/**
* Removes the specified listener from the list that is notified when the
* tabEnabled state changes.
*/
public void removeEnabledListener(EventListener<EnabledType> listener) {
enabledListenerList.removeListener(listener);
}
/**
* Returns true if the tab content is enabled.
*/
public abstract boolean isTabEnabled();
/**
* Performs startup tasks for the tab. This method is called when the
* parent window is opened.
*/
public abstract void initData();
/**
* Notifies all registered listeners that the enabled state has changed to
* the specified value.
*/
public void fireEnabledChanged(boolean enabled) {
enabledListenerList.broadcast(EnabledType.valueOf(enabled));
}
}