package de.unisiegen.tpml.graphics; import javax.swing.JComponent; import de.unisiegen.tpml.core.ProofGuessException; /** * Base interface to the proof views that operate on the {@link de.unisiegen.tpml.core.ProofModel}s * and display them to the user. * * New proof views are allocated from the {@link de.unisiegen.tpml.graphics.ProofViewFactory} class. * * @author Marcell Fischbach * @author Benedikt Meurer * @version $Rev$ * * @see de.unisiegen.tpml.core.ProofModel * @see de.unisiegen.tpml.graphics.ProofViewFactory */ public interface ProofView { // // Accessors // /** * Returns <code>true</code> if the proof view is in advanced mode. This affects certains * parts of the view behavior. For example, for the small step proof view, the rule menu * displays only axiom rules. * * @return <code>true</code> if advanced mode is being used. * * @see #setAdvanced(boolean) */ public boolean isAdvanced(); /** * If <code>advanced</code> is <code>true</code>, the proof view will operate in advanced * mode, otherwise in beginner mode. * * @param advanced <code>true</code> to operate in advanced mode, <code>false</code> to * operate in beginner mode. * * @see #isAdvanced() */ public void setAdvanced(boolean advanced); // // Primitives // /** * Determines the first unproven node and tries to guess a proof rule to apply * to that node. * * @throws ProofGuessException if the proof model failes to guess the next rule. */ public void guess() throws IllegalStateException, ProofGuessException; /** * Returns the part of the ProofView that shall be printed * @return the JComponent to be printed */ public JComponent getPrintPart(); }