/*
* Created on 2004-7-27
*
*/
package mvc143;
/**
* This is the visual aspect of the game of Boggle. The view
* will have a reference to the game Controller, but not to the Model.
* Use the controller's methods to access and manipulate data stored in IBoggleModel.
* A shallow View might just print information on the console. A deep
* View can be as fancy as you can imagine (within the the limits imposed by
* the interface structure).
*
* In the constructor, you have to take one and only one parameter, an IBoggleController.
* through this reference, you can get communicate with the controller.
*
* If the View is a GUI, then the constructor of the View should create the
* JFrame and all other GUI components, keeping references to them if needed
* for later use.
*
* IMPORTANT NOTE #2 :
* You must define these two public static fields to specify the author and a brief description.
* as follows:
* public static final String author = " ... ";
* public static final String description = " ... ";
*
"authors" should identify the authors in some fashion, but pseudonyms or
nicknames are acceptable. "description" should give a brief description
of the module, especially if there are any unexpected or unique features
about it. The information in both fields may be visible to the general
public, indefinitely into the future, so do not place any information here
which you do not wish to be publicly available.
* @author xm
*
*/
public interface IBoggleView {
/**
* shows the information, at least the author and description of different modules
*/
public void showInfo();
/**
* This method will redisplay everything. This should only
* be called from the Controller. The typical way redraw() should be implemented
* (for a GUI) is for redraw to call repaint() on each of the main GUI components
* which it has created.
*/
public void redraw();
/**
* Perform cleanup when the application is about to end. Should only
* be called by the Controller.
* (You don't neccessarily need to do anything, but it's an opportunity.)
*
*/
public void terminateView();
}