@Override public void show( final Component owner, final int aScreenX, final int aScreenY, final boolean considerForcedXY) { LOG.assertTrue(!isDisposed()); Rectangle targetBounds = new Rectangle(new Point(aScreenX, aScreenY), getContent().getPreferredSize()); ScreenUtil.moveRectangleToFitTheScreen(targetBounds); if (getParent() != null) { final Rectangle parentBounds = getParent().getBounds(); parentBounds.x += STEP_X_PADDING; parentBounds.width -= STEP_X_PADDING * 2; if (parentBounds.intersects(targetBounds)) { targetBounds.x = getParent().getBounds().x - targetBounds.width - STEP_X_PADDING; } } if (getParent() == null) { PopupDispatcher.setActiveRoot(this); } else { PopupDispatcher.setShowing(this); } LOG.assertTrue(!isDisposed(), "Disposed popup, parent=" + getParent()); super.show(owner, targetBounds.x, targetBounds.y, true); }
@Override public void dispose() { super.dispose(); myAutoSelectionTimer.stop(); PopupDispatcher.unsetShowing(this); PopupDispatcher.clearRootIfNeeded(this); if (myOwnerWindow != null && myOwnerListener != null) { myOwnerWindow.removeComponentListener(myOwnerListener); } }
private void disposeAll() { WizardPopup root = PopupDispatcher.getActiveRoot(); disposeAllParents(null); root.getStep().canceled(); }