psmith 2003/12/23 14:22:53 Modified: src/java/org/apache/log4j/chainsaw/helper SwingHelper.java Log: added a helper method to create a standard Cancel dialog action. Revision Changes Path 1.2 +34 -0 jakarta-log4j/src/java/org/apache/log4j/chainsaw/helper/SwingHelper.java Index: SwingHelper.java =================================================================== RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/helper/SwingHelper.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SwingHelper.java 22 Dec 2003 10:59:23 -0000 1.1 +++ SwingHelper.java 23 Dec 2003 22:22:53 -0000 1.2 @@ -52,6 +52,16 @@ import java.awt.Component; import java.awt.Dimension; import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.InputMap; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.KeyStroke; /** * A collection of standard utility methods for use within Swing. @@ -70,5 +80,29 @@ component.setLocation( (screenSize.width / 2) - (component.getWidth() / 2), (screenSize.height / 2) - (component.getHeight() / 2)); + } + + /** + * This method configures a standard Cancel action, bound to the ESC key, to dispose of the dialog, + * and sets the buttons action to be this action, and adds the action to the dialog's rootPane + * action map + * @param dialog + * @param cancelButton + */ + public static void configureCancelForDialog(final JDialog dialog, JButton cancelButton) { + String CANCEL_ACTION_KEY = "CANCEL_ACTION_KEY"; + int noModifiers = 0; + KeyStroke escapeKey = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, noModifiers, false); + InputMap inputMap = dialog.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + inputMap.put(escapeKey, CANCEL_ACTION_KEY); + + Action closeAction = new AbstractAction("Cancel") { + + public void actionPerformed(ActionEvent arg0) { + dialog.dispose(); + }}; + cancelButton.setAction(closeAction); + dialog.getRootPane().getActionMap().put(CANCEL_ACTION_KEY, closeAction); + } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]