2012-06-06 4 views
2

com.smartgwt.client.widgets.Window에서 close 이벤트를 취소하는 방법은 무엇입니까? 창을 닫으려면 사용자 확인이 필요합니다. com.smartgwt.client.widgets.tab.events.TabCloseClickEvent 클래스가 작업을 중지하는 취소 메서드를 가지고있는 것을 보았습니다. com.smartgwt.client.widgets에 대해 동일한 작업이 필요합니다. .events.CloseClickHandler. 이 기능을 어떻게 구현합니까?SmartGWT 창에서 닫기 이벤트를 취소하려면 어떻게해야합니까?

+1

CloseClickEvent의 kill() 메서드가 작동합니까? – ModeEngage

+0

Nops, 작동하지 않는다. CloseClickEvent 클래스에는 kill() 메서드가 없다./ –

답변

1
public HandlerRegistration addCloseClickHandler(CloseClickHandler handler) 

이 창 닫기 버튼을 클릭합니다. 디폴트의 ​​구현에서는, 윈도우를 숨겨, 버블 링을 취소하기 위해서 false를 돌려줍니다. 다른 작업을 수행하려면이 메서드를 재정의하십시오.

myWindowObject.addCloseClickHandler(new CloseClickHandler() { 
      public void onCloseClick(CloseClickEvent event) { 

        //Do whatever 

        if(IHaveTOCancel){ 
          event.cancel(); 
        } 
       } 
      }); 
+0

필자는 이미 Docs에서 이것을 보았지만, 그게 문제가 아니다 ...'handler' 매개 변수에는' 취소()'메서드를 사용하여 닫는 동작을 중지하십시오. 이해 하시겠습니까? 내가 잘못? –

+0

@JulioSampaio * 다른 작업을 수행하려는 경우이 메서드를 재정의하십시오. * 어떤 작업을 수행하고 재정의하고 무엇을 하시겠습니까? –

+0

ok,하지만 닫는 동작을 취소하는 방법은 보이지 않습니다. 어떤 Window 클래스입니까? 메서드를 사용해야합니까? SmartGwt로 이와 같은 작업을 해본 적이 있습니까? '@Override \t 공공 HandlerRegistration addCloseClickHandler (CloseClickHandler 핸들러) { \t \t \t \t SC.confirm ("창 닫기?", 새로운 BooleanCallback() {\t \t \t \t \t \t \t \t @Override \t \t \t public void execute (부울 값) { \t \t \t \t if (value) { \t \t \t \t \t // 닫는 작업을 취소하려면 어떻게해야합니까? \t \t \t \t \t} \t \t \t \t }}); \t \t // 무엇이 반환되어야합니까? \t \t return super.addCloseClickHandler (handler); \t} ' –

0

나는 (이 사용자의 입력을 기다리고 있기 때문에) 즉시 이벤트를 취소하지 않으면 다음 창 어쨌든 닫 것을 발견했다. 여기에 사용자 입력을 기다릴 필요가있을 때 작동하는 것으로 나타났습니다.

window.addCloseClickHandler(new CloseClickHandler() { 
     @Override 
     public void onCloseClick(CloseClickEvent event) { 
      event.cancel(); 
      StringBuilder b = new StringBuilder(); 
      b.append("<BR>"); 
      b.append("Are you sure you want to close?"); 
      SC.ask("Close", b.toString(), new BooleanCallback() { 
       @Override 
       public void execute(Boolean value) { 
        if (value) { 
         window.close(); 
        } 
       } 
      }); 
     } 
    }); 
0

당신의 윈도우 객체에서

관련 문제