When entering text into a MessageBox.prompt the enter key should close the message box. I think this should be built into to the toolkit but I can't seem to get this to work even if I put in my own event listeners.
Test Code:
Code:
package test;
import com.extjs.gxt.ui.client.Events;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.KeyListener;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.KeyboardListener;
public class MessageBoxTestEntryPoint implements EntryPoint {
@Override
public void onModuleLoad() {
final MessageBox messageBox = MessageBox.prompt("Hello", "");
messageBox.getTextBox().setValue("FOO");
messageBox.getTextBox().addListener(Events.Activate, new Listener() {
@Override
public void handleEvent(BaseEvent be) {
messageBox.close();
}
});
messageBox.getTextBox().addKeyListener(new KeyListener() {
@Override
public void componentKeyPress(ComponentEvent event) {
if (event.getKeyCode() == KeyboardListener.KEY_ENTER) {
messageBox.close();
}
}
});
messageBox.addCallback(new Listener<MessageBoxEvent>() {
public void handleEvent(MessageBoxEvent mbe) {
if (mbe.buttonClicked.getItemId().equals(MessageBox.CANCEL)) {
return;
}
if (mbe.value == null) {
return;
}
System.out.println(mbe.value);
}
});
}
}