/**
 * The basic interface for a generic view
 * of a PuzzleModel. Adding other methods here
 * will force views to implement the methods
 *
 * @author Owen Astrachan
 */
public interface PuzzleView
{
    /**
     * Shows text in some view-specific way, e.g.,
     * in a textfield for information.
     * @param text is the text to display
     */
    
    public void showText(String text);

    /**
     * Enable/disable the undo move command. 
     * The controller should enable undo when undos
     * are possible and disable undo when no moves have
     * been made that are undoable
     * @param value determines whether undo is enabled(true) or
     * disabled (false)
     */
    
    public void setEnabledUndo(boolean value);

    /**
     * Show a grid/board, where list is the values
     * between 0 and size*size-1 representing locations
     * of square-elements. If list[3] = 7 then square 7 is
     * in location 3 (zero/first row, column 3 if there are more than 3
     * elements per side.
     * @param list is the elements to be shown
     */
    public void showGrid(int[] list);    
}
