/**
 * 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);
}
