package bibliothek.demonstration;
import java.lang.reflect.InvocationTargetException;
import bibliothek.gui.dock.support.lookandfeel.ComponentCollector;
import bibliothek.gui.dock.support.lookandfeel.LookAndFeelList;
/**
* A monitor for a Demonstration.
* @author Benjamin Sigg
*/
public interface Monitor {
/**
* Called by a demonstration when the demonstration is starting up
*/
public void startup( );
/**
* Publishes a set of components which are used to update the {@link javax.swing.LookAndFeel}
* of the application
* @param collector an object which can present a list of some components of
* the application
*/
public void publish( ComponentCollector collector );
/**
* Called by a demonstration when it is running
*/
public void running();
/**
* Executes a statement in the EventDispatcherThread.
* @param run the statement to run
* @throws InvocationTargetException if <code>run</code> throws an exception
*/
public void invokeSynchron( Runnable run ) throws InvocationTargetException;
/**
* Called by a Demonstration when it is no longer running
*/
public void shutdown();
/**
* Gets a list of the all look and feels.
* @return the list of look and feels
*/
public LookAndFeelList getGlobalLookAndFeel();
}