layoutPanel.setLayout(new BoxLayout(Orientation.HORIZONTAL));
layoutPanel.setPadding(0);
layoutPanel.setWidgetSpacing(0);
input = new TextBox();
layoutPanel.add(input, new BoxLayoutData(FillStyle.BOTH));
input.addKeyboardListener(new KeyboardListener() {
public void onKeyDown(Widget sender, char keyCode, int modifiers) {
switch (keyCode) {
case KEY_ENTER:
case KEY_TAB:
case KEY_ESCAPE:
hidePopup();
break;
case KEY_DOWN:
if (!popup.isAttached()) {
new DelayedRunnable(1) {
@Override
public void run() {
showPopup();
}
};
}
break;
default:
}
}
public void onKeyPress(Widget sender, char keyCode, int modifiers) {
// Nothing to do here!
}
public void onKeyUp(Widget sender, char keyCode, int modifiers) {
// Nothing to do here!
}
});
button = new Button();
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
if (cancelNextClick) {
cancelNextClick = false;
} else {
showPopup();
}
}
});
layoutPanel.add(button, new BoxLayoutData(FillStyle.VERTICAL));
popup = new DropDownPanel(this);
popup.addPopupListener(new PopupListener() {
public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
if (!autoClosed) {