private void scheduleHide() { if (showTimer != null) { showTimer.cancel(); showTimer = null; } if (popup == null || !popup.isShowing() || !popup.isVisible() || hideTimer != null) { return; } hideTimer = new Timer() { @Override public void run() { popup.hide(); } }; hideTimer.schedule(50); }
private UserPopupPanel createPopupPanel(AccountInfo account) { UserPopupPanel popup = new UserPopupPanel(account, false, false); popup.addDomHandler( new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { scheduleShow(); } }, MouseOverEvent.getType()); popup.addDomHandler( new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { scheduleHide(); } }, MouseOutEvent.getType()); return popup; }
private void scheduleShow() { if (hideTimer != null) { hideTimer.cancel(); hideTimer = null; } if ((popup != null && popup.isShowing() && popup.isVisible()) || showTimer != null) { return; } showTimer = new Timer() { @Override public void run() { if (popup == null) { popup = createPopupPanel(account); } if (!popup.isShowing() || !popup.isVisible()) { popup.showRelativeTo(target); } } }; showTimer.schedule(600); }