gxt button目前无法实现弹出确认视窗,将动态响应效果延迟到确认以后执行。
实现此功能关键代码:
1、
@Override
public void addListener(EventType eventType,
Listener<? extends BaseEvent> listener) {
listenerList.add(listener);
}
2、
if (isShowConfirm() == true) {
super.addListener(Events.Select, new SelectionListener() {
@Override
public void componentSelected(final ComponentEvent ce) {
MessageBox.confirm(getBtnText(), Msg.get.areuSure()
+ getBtnText() + "?",
new Listener<MessageBoxEvent>() {
public void handleEvent(MessageBoxEvent be) {
Button btn = be.getButtonClicked();
if (btn.getText().equals(
GXT.MESSAGES.messageBox_yes())) {
doSelectionEvent(ce);
}
}
});
}
}
});
} else {
super.addListener(Events.Select, new SelectionListener() {
@Override
public void componentSelected(final ComponentEvent ce) {
doSelectionEvent(ce);
}
}
});
3、
public void doSelectionEvent(final ComponentEvent ce) {
Iterator<Listener> it = listenerList.iterator();
while (it.hasNext()) {
it.next().handleEvent(ce);
}
}