Frames | No Frames |
1: /* ======================================================================== 2: * JCommon : a free general purpose class library for the Java(tm) platform 3: * ======================================================================== 4: * 5: * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jcommon/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * ---------------- 28: * WizardPanel.java 29: * ---------------- 30: * (C) Copyright 2000-2004, by Object Refinery Limited. 31: * 32: * Original Author: David Gilbert (for Object Refinery Limited); 33: * Contributor(s): -; 34: * 35: * $Id: WizardPanel.java,v 1.4 2005/11/16 15:58:41 taqua Exp $ 36: * 37: * Changes (from 26-Oct-2001) 38: * -------------------------- 39: * 26-Oct-2001 : Changed package to com.jrefinery.ui.*; 40: * 14-Oct-2002 : Fixed errors reported by Checkstyle (DG); 41: * 42: */ 43: 44: package org.jfree.ui; 45: 46: import java.awt.LayoutManager; 47: 48: import javax.swing.JPanel; 49: 50: /** 51: * A panel that provides the user interface for a single step in a WizardDialog. 52: * 53: * @author David Gilbert 54: */ 55: public abstract class WizardPanel extends JPanel { 56: 57: /** The owner. */ 58: private WizardDialog owner; 59: 60: /** 61: * Creates a new panel. 62: * 63: * @param layout the layout manager. 64: */ 65: protected WizardPanel(final LayoutManager layout) { 66: super(layout); 67: } 68: 69: /** 70: * Returns a reference to the dialog that owns the panel. 71: * 72: * @return the owner. 73: */ 74: public WizardDialog getOwner() { 75: return this.owner; 76: } 77: 78: /** 79: * Sets the reference to the dialog that owns the panel (this is called automatically by 80: * the dialog when the panel is added to the dialog). 81: * 82: * @param owner the owner. 83: */ 84: public void setOwner(final WizardDialog owner) { 85: this.owner = owner; 86: } 87: 88: /** 89: * Returns the result. 90: * 91: * @return the result. 92: */ 93: public Object getResult() { 94: return null; 95: } 96: 97: /** 98: * This method is called when the dialog redisplays this panel as a result of the user clicking 99: * the "Previous" button. Inside this method, subclasses should make a note of their current 100: * state, so that they can decide what to do when the user hits "Next". 101: */ 102: public abstract void returnFromLaterStep(); 103: 104: /** 105: * Returns true if it is OK to redisplay the last version of the next panel, or false if a new 106: * version is required. 107: * 108: * @return boolean. 109: */ 110: public abstract boolean canRedisplayNextPanel(); 111: 112: /** 113: * Returns true if there is a next panel. 114: * 115: * @return boolean. 116: */ 117: public abstract boolean hasNextPanel(); 118: 119: /** 120: * Returns true if it is possible to finish from this panel. 121: * 122: * @return boolean. 123: */ 124: public abstract boolean canFinish(); 125: 126: /** 127: * Returns the next panel in the sequence, given the current user input. Returns null if this 128: * panel is the last one in the sequence. 129: * 130: * @return the next panel in the sequence. 131: */ 132: public abstract WizardPanel getNextPanel(); 133: 134: }