GXT: уничтожение диалогового окна не работает
У меня есть класс Dialogbox:
public class Dialogbox {
public static final Window dialogbox = new Window();
public Dialogbox() {
dialogbox.setAnimateMinimize(true);
dialogbox.setWidth(469);
dialogbox.setHeight(487);
dialogbox.setShowMinimizeButton(true);
dialogbox.setAutoSize(true);
dialogbox.setCanDragReposition(true);
dialogbox.setCanDragResize(true);
dialogbox.setIsModal(true);
// dialogbox.setShowModalMask(true);
dialogbox.addCloseClickHandler(new CloseClickHandler() {
@Override
public void onCloseClick(CloseClientEvent event) {
// TODO Auto-generated method stub
dialogbox.destroy();
}
});
}
public void show(Widget name, String txt) {
dialogbox.setTitle(txt);
dialogbox.addItem(name);
dialogbox.setPadding(10);
AnimationCallback callback = null;
dialogbox.animateMove(400, 100, callback, 1000);
dialogbox.show();
}
Когда я пробую Composite:
f list = new f();
dia.show(f, "price");
Я получаю ошибку:
[ERROR] 15:34:20.020:WARN:Canvas:isc_WidgetCanvas_1:Attempt to access destroyed widget in the DOM - destroy() called at invalid time (eg: mid-draw) or invalid method called on destroy()d widget. Stack Trace:
My In-Box Composite - это виджет:
Canvas canvas = new Canvas();
canvas.addChild(btnNewButton);
initWidget(canvas);
Почему я не могу уничтожить свое диалоговое окно? Должен ли я сначала удалить виджет?
2 ответа
Да, если вы хотите просто скрыть диалоговое окно, то вы можете использовать dialogbox.hide()
Если, если вы хотите удалить диалоговое окно, вы можете отсоединить / удалить его из родительского элемента, используя
dialogbox.removeFromParent()
Но, как я и ожидал, вы просто хотите скрыть диалоговое окно.
Здесь я дал два способа, вы можете использовать его в зависимости от ваших требований.
Использование dialogbox.hide()
если вы хотите скрыть диалоговое окно.