package com.limegroup.gnutella.gui.statistics;
import java.awt.Component;
import java.awt.event.ComponentEvent;
import javax.swing.JComponent;
import com.limegroup.gnutella.gui.RefreshListener;
import com.limegroup.gnutella.gui.statistics.panes.PaneItem;
/**
* An object that defines the basic functionality of an <i>StatisticsPane</i>,
* or one panel specifying a set of statistics in the statistics window.<p>
*
* Each <tt>StatisticsPane</tt> has a unique identifying name that allows it
* to be displayed in the <tt>CardLayout</tt>.
*/
//2345678|012345678|012345678|012345678|012345678|012345678|012345678|012345678|
public interface StatisticsPane extends RefreshListener {
/**
* Returns the name of this <tt>StatisticsPane</tt>.
*
* @return the name of this <tt>StatisticsPane</tt>
*/
String getName();
/**
* Returns the <tt>Container</tt> instance that holds the different
* elements of this <tt>StatisticsPane</tt>.
*
* @return the <tt>Container</tt> associated with this
* <tt>StatisticsPane</tt>
*/
JComponent getComponent();
/**
* Adds a new option item to this pane.
*
* @param item the <tt>PaneItem</tt> instance to add to this
* <tt>StatisticsPane</tt>
*/
void add(PaneItem item);
/**
* Returns whether or not to display this pane.
*
* @return <tt>true</tt> if the pane should be displayed, otherwise
* <tt>false</tt>
*/
boolean display();
/**
* Returns the first <tt>PaneItem</tt> in this pane.
*
* @return the first <tt>PaneItem</tt> in this pane
*/
PaneItem getFirstPaneItem();
/**
* Notifies the <tt>StatisticsPane</tt> that the component has been
* resized.
*
* @param e the <tt>ComponentEvent</tt> that generated the resize
* @param comp the pane <tt>Component</tt>
*/
void componentResized(ComponentEvent e, Component comp);
}