package org.vorthmann.zome.ui;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JRootPane;
import javax.swing.KeyStroke;
public class EscapeDialog extends JDialog
{
public EscapeDialog()
{
this( (Frame) null, false );
}
public EscapeDialog( Frame owner )
{
this( owner, false );
}
public EscapeDialog( Frame owner, boolean modal )
{
this( owner, null, modal );
}
public EscapeDialog( Frame owner, String title )
{
this( owner, title, false );
}
public EscapeDialog( Frame owner, String title, boolean modal )
{
super( owner, title, modal );
}
public EscapeDialog( Dialog owner )
{
this( owner, false );
}
public EscapeDialog( Dialog owner, boolean modal )
{
this( owner, null, modal );
}
public EscapeDialog( Dialog owner, String title )
{
this( owner, title, false );
}
public EscapeDialog( Dialog owner, String title, boolean modal )
{
super( owner, title, modal );
}
@Override
protected JRootPane createRootPane()
{
ActionListener actionListener = new ActionListener()
{
@Override
public void actionPerformed( ActionEvent actionEvent )
{
setVisible( false );
}
};
JRootPane rootPane = new JRootPane();
KeyStroke stroke = KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0 );
rootPane.registerKeyboardAction( actionListener, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW );
return rootPane;
}
}