/*FreeMind - A Program for creating and viewing Mindmaps *Copyright (C) 2000-2001 Joerg Mueller <joergmueller@bigfoot.com> *See COPYING for Details * *This program is free software; you can redistribute it and/or *modify it under the terms of the GNU General Public License *as published by the Free Software Foundation; either version 2 *of the License, or (at your option) any later version. * *This program 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 General Public License for more details. * *You should have received a copy of the GNU General Public License *along with this program; if not, write to the Free Software *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package accessories.plugins.dialogs; import java.awt.Component; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import freemind.common.TextTranslator; import freemind.controller.actions.generated.instance.Pattern; import freemind.controller.actions.generated.instance.WindowConfigurationStorage; import freemind.main.Tools; import freemind.modes.mindmapmode.MindMapController; import freemind.modes.mindmapmode.dialogs.StylePatternFrame; import freemind.modes.mindmapmode.dialogs.StylePatternFrame.StylePatternFrameType; /** */ public class ChooseFormatPopupDialog extends JDialog implements TextTranslator, KeyListener { public static final int CANCEL = -1; public static final int OK = 1; private static final String WINDOW_PREFERENCE_STORAGE_PROPERTY = "accessories.plugins.dialogs.ChooseFormatPopupDialog.window_storage"; private int result = CANCEL; private javax.swing.JPanel jContentPane = null; private MindMapController mController; private JButton jCancelButton; private JButton jOKButton; private StylePatternFrame mStylePatternFrame; /** * This constructor is used, if you need the user to enter a pattern * generally. * */ public ChooseFormatPopupDialog(JFrame caller, MindMapController controller, String dialogTitle, Pattern pattern) { super(caller); this.mController = controller; initialize(dialogTitle); mStylePatternFrame.setPattern(pattern); mStylePatternFrame.addListeners(); } /** * This method initializes this * * @return void */ private void initialize(String dialogTitle) { this.setTitle(mController.getText(dialogTitle)); JPanel contentPane = getJContentPane(); this.setContentPane(contentPane); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { cancelPressed(); } }); addKeyListener(this); Action action = new AbstractAction() { public void actionPerformed(ActionEvent arg0) { cancelPressed(); } }; Tools.addEscapeActionToDialog(this, action); pack(); mController.decorateDialog(this, WINDOW_PREFERENCE_STORAGE_PROPERTY); } private void close() { WindowConfigurationStorage storage = new WindowConfigurationStorage(); mController.storeDialogPositions(this, storage, WINDOW_PREFERENCE_STORAGE_PROPERTY); setVisible(false); this.dispose(); } private void okPressed() { result = OK; close(); } private void cancelPressed() { result = CANCEL; close(); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private javax.swing.JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new javax.swing.JPanel(); jContentPane.setLayout(new GridBagLayout()); /* * public GridBagConstraints(int gridx, int gridy, int gridwidth, * int gridheight, double weightx, double weighty, int anchor, int * fill, Insets insets, int ipadx, int ipady) */ jContentPane.add(new JScrollPane(getStylePatternFrame()), new GridBagConstraints(0, 0, 2, 1, 2.0, 8.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); jContentPane.add(getJOKButton(), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); jContentPane.add(getJCancelButton(), new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); getRootPane().setDefaultButton(getJOKButton()); } return jContentPane; } private Component getStylePatternFrame() { if (mStylePatternFrame == null) { mStylePatternFrame = new StylePatternFrame(this, mController, StylePatternFrameType.WITHOUT_NAME_AND_CHILDS); mStylePatternFrame.init(); } return mStylePatternFrame; } /** * This method initializes jButton * * @return javax.swing.JButton */ private JButton getJOKButton() { if (jOKButton == null) { jOKButton = new JButton(); jOKButton.setAction(new AbstractAction() { public void actionPerformed(ActionEvent e) { okPressed(); } }); Tools.setLabelAndMnemonic(jOKButton, mController.getText("ok")); } return jOKButton; } /** * This method initializes jButton1 * * @return javax.swing.JButton */ private JButton getJCancelButton() { if (jCancelButton == null) { jCancelButton = new JButton(); jCancelButton.setAction(new AbstractAction() { public void actionPerformed(ActionEvent e) { cancelPressed(); } }); Tools.setLabelAndMnemonic(jCancelButton, mController.getText(("cancel"))); } return jCancelButton; } /** * @return Returns the result. */ public int getResult() { return result; } public String getText(String pKey) { return mController.getText(pKey); } public Pattern getPattern() { return mStylePatternFrame.getResultPattern(); } public Pattern getPattern(Pattern copyIntoPattern) { return mStylePatternFrame.getResultPattern(copyIntoPattern); } /* * (non-Javadoc) * * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent) */ public void keyPressed(KeyEvent keyEvent) { System.out.println("key pressed: " + keyEvent); switch (keyEvent.getKeyCode()) { case KeyEvent.VK_ESCAPE: cancelPressed(); keyEvent.consume(); break; } } /* * (non-Javadoc) * * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent) */ public void keyReleased(KeyEvent keyEvent) { System.out.println("keyReleased: " + keyEvent); } /* * (non-Javadoc) * * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent) */ public void keyTyped(KeyEvent keyEvent) { System.out.println("keyTyped: " + keyEvent); } }