Hi Eugene,
To catch Enter and Escape keys on the Alert you can do the following to
extend UIAlert class:
protected void prepareAlertDialog(final JDialog arg0) {
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
0);
arg0.getRootPane().registerKeyboardAction(new ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
System.out.println("Enter pressed");
}}, enter, JComponent.WHEN_IN_FOCUSED_WINDOW);
KeyStroke esc = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
arg0.getRootPane().registerKeyboardAction(new ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
System.out.println("Esc pressed");
}}, esc, JComponent.WHEN_IN_FOCUSED_WINDOW);
}
What action do you want to take on Enter key? If you would like to mean
the Enter key press == click of Ok button then then you can do something
like this:
protected void prepareAlertDialog(final JDialog arg0) {
JOptionPane optionPane =
(JOptionPane)arg0.getContentPane().getComponent(0);
JPanel panel = (JPanel)optionPane.getComponent(1);
JButton button = (JButton)panel.getComponent(0);
if (button.getText().equals("Ok")) {
arg0.getRootPane().setDefaultButton(button);
}
}
BTW, for faster and guaranteed response to your posts please consider
subscribing to ULC Premium Support.
Thanks and regards,
Janak
-----------------------------------------
Janak Mulani
email: [email protected]
url: http://www.canoo.com
Beyond AJAX - Java Rich Internet Applications
http://www.canoo.com/ulc
-----------------------------------------
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
Eugene Coelho
Sent: Friday, February 06, 2009 1:32 PM
To: [email protected]
Subject: [ULC-developer] Adding a key listener to ULCAlert
Hi,
I have a scenario where i need to handle user pressing enter
key when a
ULCAlert alert is shown.
I tried the following .... but it didnt work .. any
suggestions to make
it work ?
----
Client Part
package com.xxxx.xxx.extension.client;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import com.ulcjava.base.client.UIAlert;
public class UICustomAlert extends UIAlert {
public void performAction() {
this.fireWindowClosingULC();
}
protected void postInitializeState() {
super.postInitializeState();
}
private class HandleEnterKeyListener implements KeyListener {
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(code == KeyEvent.VK_ESCAPE){
// Key pressed is the ESCAPE key. Hide this Dialog.
}
else if(code == KeyEvent.VK_ENTER){
// Key pressed is the ENTER key.
// Redefine performEnterAction() in subclasses
to respond
to depressing the ENTER key.
performAction();
}
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
}
protected void prepareAlertDialog(JDialog arg0) {
JOptionPane optionPane =
(JOptionPane)arg0.getContentPane().getComponent(0);
KeyListener[] keyListener = optionPane.getKeyListeners();
for (int i=0;i<keyListener.length;i++) {
optionPane.removeKeyListener(keyListener[i]);
}
optionPane.addKeyListener(new HandleEnterKeyListener());
}
}
----
Server Part
package com.xxxx.xxx.extension.server;
import com.ulcjava.base.application.ULCAlert;
import com.ulcjava.base.application.ULCRootPane;
public class ULCCustomAlert extends ULCAlert {
private static final long serialVersionUID = 1L;
public ULCCustomAlert(ULCRootPane rootPane, String
loginfailed_title, String login_failed_message, String button_retry,
String button_quit) {
super(rootPane, loginfailed_title, login_failed_message,
button_retry, button_quit);
}
protected String typeString() {
return "com.isfsdc.wwm.extension.client.UICustomAlert";
}
}
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer