01: /**
02: * Wizard Framework
03: * Copyright 2004 - 2005 Andrew Pietsch
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: *
19: * $Id: WizardFrameCloser.java,v 1.1 2005/05/16 23:06:59 pietschy Exp $
20: */package org.pietschy.wizard;
21:
22: import java.awt.*;
23:
24: /**
25: * This class implements {@link WizardListener} and is used to hide and dispose frames
26: * when a wizard has been completed or canceled.
27: */
28: public class WizardFrameCloser implements WizardListener {
29: private Window window;
30: private Wizard wizard;
31:
32: /**
33: * Creates a new closer that monitors the specified wizard and closes the parent frame.
34: *
35: * @param wizard
36: * @param window
37: */
38: public static void bind(Wizard wizard, Window window) {
39: new WizardFrameCloser(wizard, window);
40: }
41:
42: /**
43: * Constructs a new closer for the specified wizard in the specified window.
44: */
45: private WizardFrameCloser(Wizard wizard, Window window) {
46: this .window = window;
47: this .wizard = wizard;
48: this .wizard.addWizardListener(this );
49: }
50:
51: public void wizardClosed(WizardEvent e) {
52: closeWindow();
53: }
54:
55: public void wizardCancelled(WizardEvent e) {
56: closeWindow();
57: }
58:
59: public void closeWindow() {
60: window.setVisible(false);
61: window.dispose();
62: wizard.removeWizardListener(WizardFrameCloser.this);
63: }
64: }
|