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); } }
댓글 없음:
댓글 쓰기