001: /**
002: * Wizard Framework
003: * Copyright 2004 - 2005 Andrew Pietsch
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * $Id: WizardPaneStep.java,v 1.4 2005/05/16 23:07:01 pietschy Exp $
020: */package org.pietschy.wizard.pane;
021:
022: import org.pietschy.wizard.AbstractWizardStep;
023: import org.pietschy.wizard.InvalidStateException;
024: import org.pietschy.wizard.WizardModel;
025:
026: import javax.swing.*;
027: import java.awt.*;
028:
029: /**
030: * A simple step that can be used to decouple the step from its user interface
031: * so that the user interface can be created in a standalone class implementing
032: * {@link WizardPane}.<br/>
033: * Particularly useful if the user interface is built using a GUI tool.
034: *
035: * For example:
036: *
037: * <pre>
038: * StaticModel model = new StaticModel();
039: * model.add(new (new WizardPaneStep(new FirstPane(), "Start", "Description"));
040: * model.add(...);
041: * ...
042: *
043: * Wizard wizard = new Wizard(model);
044: * wizard.showInFrame("My Wizard");
045: * </pre>
046: *
047: * @author Andrea Aime
048: * @deprecated since 0.1.10. WizardStep is now an interface allowing implementation by any swing
049: * componenent. See {@link org.pietschy.wizard.PanelWizardStep}.
050: */
051: public class WizardPaneStep extends AbstractWizardStep {
052: WizardPane pane;
053:
054: /**
055: * Creates a new WizardPaneStep
056: *
057: * @param pane -
058: * the graphical component. Should be a subclass of Component
059: * @param name
060: * @param summary
061: */
062: public WizardPaneStep(WizardPane pane, String name, String summary) {
063: super (name, summary);
064:
065: if (!(pane instanceof Component))
066: throw new IllegalArgumentException(
067: "The pane should also be a Component subclass");
068: this .pane = pane;
069: }
070:
071: /**
072: * Creates a new WizardPaneStep
073: *
074: * @param pane -
075: * the graphical component. Should be a subclass of Component
076: * @param name
077: * @param summary
078: * @param icon
079: */
080: public WizardPaneStep(WizardPane pane, String name, String summary,
081: Icon icon) {
082: super (name, summary, icon);
083: this .pane = pane;
084: }
085:
086: /**
087: * @see org.pietschy.wizard.WizardStep#init(org.pietschy.wizard.WizardModel)
088: */
089: public void init(WizardModel model) {
090: pane.init(this , model);
091: }
092:
093: /**
094: * @see org.pietschy.wizard.WizardStep#prepare()
095: */
096: public void prepare() {
097: setView((Component) pane);
098: pane.prepare();
099: }
100:
101: /**
102: * @see org.pietschy.wizard.WizardStep#applyState()
103: */
104: public void applyState() throws InvalidStateException {
105: pane.applyState();
106: }
107:
108: /**
109: * @see org.pietschy.wizard.WizardStep#getPreferredSize()
110: */
111: public Dimension getPreferredSize() {
112: return ((Component) pane).getPreferredSize();
113: }
114: }
|