void (@Nullable Object initialBreakpoint) { if (selectInDialogShowing(initialBreakpoint)) return; final BreakpointsDialog dialog = new BreakpointsDialog(myProject, initialBreakpoint != null ? initialBreakpoint : myBreakpoint, XBreakpointUtil.collectPanelProviders()) { @Override protected void dispose() { myBreakpoint = null; for (BreakpointPanelProvider provider : XBreakpointUtil.collectPanelProviders()) { provider.onDialogClosed(myProject); } myDialogShowing = null; super.dispose(); } }; if (myBalloonToHide != null) { if (!myBalloonToHide.isDisposed()) { myBalloonToHide.hide(); } myBalloonToHide = null; } myDialogShowing = dialog; dialog.show(); }