2014-02-19 3 views
0

가 나는 대화 상자 클래스가 작동하지 않았다 destorying :는 GXT : 대화 상자가

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(); 

    } 

나는 합성을하려고 할 때 :

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: 

내 in-Box Composite는 위젯입니다.

Canvas canvas = new Canvas(); 
    canvas.addChild(btnNewButton); 
    initWidget(canvas); 

왜 내 Dialogbox를 파괴 할 수 없습니까? 먼저 위젯을 제거해야합니까?

답변

0

대화 상자를 숨기려면 dialogbox.hide()을 사용하십시오. 그냥 원하는 대화 상자를 숨기는 경우

+0

thx, 명확한 베버로 테스트했습니다. 새 항목을 추가하면 'dialogbox.removeFromParent'와 같이 제거하면 – user3110458

1

예, 은 당신이 사용할 수있는 dialogbox.hide() 어디 대화 상자를 삭제하려면, 다음 당신이 그것을에서 삭제/분리 수있는 것은 부모 요소는

를 사용하여의로
dialogbox.removeFromParent() 

그러나 예상대로 대화 상자를 숨기려고합니다.

여기 두 가지 방법을 제시 했으므로 요구 사항에 따라 사용할 수 있습니다.

+0

이 작동합니다. 다시 사용할 수 있습니까? – Cataclysm

+0

분명히 아니요. 다시 사용하려면 부모에 추가해야합니다. – Azeez