/* * $Id$ * * Copyright (c) 2000-2003 by Rodney Kinney * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License (LGPL) as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, copies are available * at http://www.opensource.org. */ package VASSAL.configure; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; /** * A Window for displaying a {@link Configurer}. The title of the window * changes with the name of the Configurer */ public class ConfigurerWindow extends JDialog { private static final long serialVersionUID = 1L; protected JButton okButton = new JButton("Ok"); protected JButton canButton = new JButton("Cancel"); protected boolean cancelled; public ConfigurerWindow(Configurer c) { this(c, true); } public ConfigurerWindow(final Configurer c, boolean modal) { super((JFrame) null, modal); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { dispose(); cancelled = true; } }); setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); add(c.getControls()); c.addPropertyChangeListener (new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (Configurer.NAME_PROPERTY .equals(evt.getPropertyName())) { setTitle((String) evt.getNewValue()); } } }); setTitle(c.getName()); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { c.getValue(); dispose(); cancelled = false; } }); canButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { dispose(); cancelled = true; } }); final JPanel buttonPanel = new JPanel(); buttonPanel.add(okButton); buttonPanel.add(canButton); add(buttonPanel); cancelled = false; pack(); } public boolean isCancelled() { return cancelled; } }