[컴][웹] GWT 사용하기 - PopupPanel 사용


PopupPanel 과 autoHide /




GWT 에서 PopupPanel 을 다양하게 사용할 수 있는데, 버튼을 눌렀을 때 popup 이 뜨고, 다시 버튼을 누르면 사라지는 작업도 가능하다.

그런데 문제는 PopupPanel 이 PopupPanel 이외의 영역에서 click 을 하면 사라지는 autoHide 기능을 켰을 때이다. 이 때 버튼을 누르게 되면, autoHide 의 영향으로 PopupPanel 이외의 영역에  click 을 한 것이기 때문에 PopupPanel 을 PopupPanel 을 close 하게 된다. 그런데 이 click 이 다시 button 에 event 를 전달해서 button click event 에 대한 처리를 하게 된다.(보통 button 이 click 될 때 show() 를 하기 때문에 사라졌다가 바로 다시 PopupPanel 이 뜨게 된다.)

이 때 이 button 부위를 click 했을 때는 autoHide 가 발동하지 않도록 하면 된다. 이것은

  • addAutoHidePartner

를 이용해서 가능하다.

addAutoHidePartner 의 사용예제와 관련해서는 아래 링크를 참고하자.



PeriodPopup pp = new PeriodPopup();

private void init(){
    pp.addAutoHidePartner(buttonRange.getElement());
}


@UiHandler("buttonRange")
void onClickRange(ClickEvent evt) {

    pp.addCloseHandler(new CloseHandler() {
        @Override
        public void onClose(CloseEvent event) {
            boolean t = event.isAutoClosed();


        }
    });

    


    if(pp.isShowing()){
        pp.hide();
    }else{
        pp.showRelativeTo(buttonRange);
    }

}

댓글 없음:

댓글 쓰기