List of usage examples for com.intellij.openapi.ui.popup Balloon addListener
void addListener(@NotNull JBPopupListener listener);
From source file:com.intellij.notification.impl.NotificationsManagerImpl.java
License:Apache License
private static void showNotification(final Notification notification, @Nullable final Project project) { Application application = ApplicationManager.getApplication(); if (application instanceof ApplicationEx && !((ApplicationEx) application).isLoaded()) { application.invokeLater(new Runnable() { @Override/*from ww w . ja va 2 s . c om*/ public void run() { showNotification(notification, project); } }, ModalityState.current()); return; } String groupId = notification.getGroupId(); final NotificationSettings settings = NotificationsConfigurationImpl.getSettings(groupId); NotificationDisplayType type = settings.getDisplayType(); String toolWindowId = NotificationsConfigurationImpl.getInstanceImpl().getToolWindowId(groupId); if (type == NotificationDisplayType.TOOL_WINDOW && (toolWindowId == null || project == null || !ToolWindowManager.getInstance(project).canShowNotification(toolWindowId))) { type = NotificationDisplayType.BALLOON; } switch (type) { case NONE: return; //case EXTERNAL: // notifyByExternal(notification); // break; case STICKY_BALLOON: case BALLOON: default: Balloon balloon = notifyByBalloon(notification, type, project); if (!settings.isShouldLog() || type == NotificationDisplayType.STICKY_BALLOON) { if (balloon == null) { notification.expire(); } else { balloon.addListener(new JBPopupAdapter() { @Override public void onClosed(LightweightWindowEvent event) { if (!event.isOk()) { notification.expire(); } } }); } } break; case TOOL_WINDOW: MessageType messageType = notification.getType() == NotificationType.ERROR ? MessageType.ERROR : notification.getType() == NotificationType.WARNING ? MessageType.WARNING : MessageType.INFO; final NotificationListener notificationListener = notification.getListener(); HyperlinkListener listener = notificationListener == null ? null : new HyperlinkListener() { @Override public void hyperlinkUpdate(HyperlinkEvent e) { notificationListener.hyperlinkUpdate(notification, e); } }; assert toolWindowId != null; String msg = notification.getTitle(); if (StringUtil.isNotEmpty(notification.getContent())) { if (StringUtil.isNotEmpty(msg)) { msg += "<br>"; } msg += notification.getContent(); } //noinspection SSBasedInspection ToolWindowManager.getInstance(project).notifyByBalloon(toolWindowId, messageType, msg, notification.getIcon(), listener); } }
From source file:com.intellij.notification.Notification.java
License:Apache License
public void setBalloon(@NotNull final Balloon balloon) { hideBalloon();//ww w .j a va 2s . co m myBalloonRef = new WeakReference<Balloon>(balloon); balloon.addListener(new JBPopupAdapter() { @Override public void onClosed(LightweightWindowEvent event) { WeakReference<Balloon> ref = myBalloonRef; if (ref != null && ref.get() == balloon) { myBalloonRef = null; } } }); }
From source file:com.intellij.ui.popup.NotificationPopup.java
License:Apache License
public NotificationPopup(final JComponent owner, final JComponent content, Color backgroud, final boolean useDefaultPreferredSize, ActionListener clickHandler, boolean closeOnClick) { final IdeFrame frame = findFrame(owner); if (frame == null || !((Window) frame).isShowing() || frame.getBalloonLayout() == null) { final FramelessNotificationPopup popup = new FramelessNotificationPopup(owner, content, backgroud, useDefaultPreferredSize, clickHandler); myImpl = new Impl() { public void addListener(JBPopupListener listener) { popup.getPopup().addListener(listener); }/*from w w w. j av a2s. co m*/ public void hide() { popup.getPopup().cancel(); } }; } else { final Wrapper wrapper = new NonOpaquePanel(content) { @Override public Dimension getPreferredSize() { final Dimension size = super.getPreferredSize(); if (useDefaultPreferredSize) { if (size.width > 400 || size.height > 200) { size.width = 400; size.height = 200; } } return size; } }; final Balloon balloon = JBPopupFactory.getInstance().createBalloonBuilder(wrapper).setFadeoutTime(5000) .setHideOnClickOutside(false).setHideOnFrameResize(false).setHideOnKeyOutside(false) .setCloseButtonEnabled(true).setFillColor(backgroud).setShowCallout(false) .setClickHandler(clickHandler, closeOnClick).createBalloon(); BalloonLayout layout = frame.getBalloonLayout(); assert layout != null; layout.add(balloon); myImpl = new Impl() { public void addListener(JBPopupListener listener) { balloon.addListener(listener); } public void hide() { balloon.hide(); } }; } }
From source file:com.intellij.xdebugger.impl.ui.DebuggerUIUtil.java
License:Apache License
public static void showXBreakpointEditorBalloon(final Project project, @Nullable final Point point, final JComponent component, final boolean showAllOptions, final XBreakpoint breakpoint) { final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager(); final XLightBreakpointPropertiesPanel<XBreakpointBase<?, ?, ?>> propertiesPanel = new XLightBreakpointPropertiesPanel<XBreakpointBase<?, ?, ?>>( project, breakpointManager, (XBreakpointBase) breakpoint, showAllOptions); final Ref<Balloon> balloonRef = Ref.create(null); final Ref<Boolean> isLoading = Ref.create(Boolean.FALSE); final Ref<Boolean> moreOptionsRequested = Ref.create(Boolean.FALSE); propertiesPanel.setDelegate(new XLightBreakpointPropertiesPanel.Delegate() { @Override/*ww w . ja va2s. c o m*/ public void showMoreOptions() { if (!isLoading.get()) { propertiesPanel.saveProperties(); } if (!balloonRef.isNull()) { balloonRef.get().hide(); } showXBreakpointEditorBalloon(project, point, component, true, breakpoint); moreOptionsRequested.set(true); } }); isLoading.set(Boolean.TRUE); propertiesPanel.loadProperties(); isLoading.set(Boolean.FALSE); if (moreOptionsRequested.get()) { return; } Runnable showMoreOptions = new Runnable() { @Override public void run() { propertiesPanel.saveProperties(); propertiesPanel.dispose(); BreakpointsDialogFactory.getInstance(project).showDialog(breakpoint); } }; final JComponent mainPanel = propertiesPanel.getMainPanel(); final Balloon balloon = showBreakpointEditor(project, mainPanel, point, component, showMoreOptions, breakpoint); balloonRef.set(balloon); final XBreakpointListener<XBreakpoint<?>> breakpointListener = new XBreakpointAdapter<XBreakpoint<?>>() { @Override public void breakpointRemoved(@NotNull XBreakpoint<?> removedBreakpoint) { if (removedBreakpoint.equals(breakpoint)) { balloon.hide(); } } }; balloon.addListener(new JBPopupListener.Adapter() { @Override public void onClosed(LightweightWindowEvent event) { propertiesPanel.saveProperties(); propertiesPanel.dispose(); breakpointManager.removeBreakpointListener(breakpointListener); } }); breakpointManager.addBreakpointListener(breakpointListener); ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { IdeFocusManager.findInstance().requestFocus(mainPanel, true); } }); }
From source file:org.jetbrains.jet.plugin.codeInsight.ktSignature.EditSignatureBalloon.java
License:Apache License
private Balloon createBalloon() { Balloon balloon = JBPopupFactory.getInstance().createDialogBalloonBuilder(panel, "Kotlin signature") .setHideOnClickOutside(true).setHideOnKeyOutside(true).setBlockClicksThroughBalloon(true) .createBalloon();/*from w ww .j av a 2s . c o m*/ balloon.addListener(new JBPopupAdapter() { @Override public void onClosed(LightweightWindowEvent event) { Disposer.dispose(EditSignatureBalloon.this); } }); return balloon; }