Example usage for com.intellij.openapi.ui.popup ComponentPopupBuilder createPopup

List of usage examples for com.intellij.openapi.ui.popup ComponentPopupBuilder createPopup

Introduction

In this page you can find the example usage for com.intellij.openapi.ui.popup ComponentPopupBuilder createPopup.

Prototype

@NotNull
    JBPopup createPopup();

Source Link

Usage

From source file:com.google.cloud.tools.intellij.login.ui.GoogleLoginAction.java

License:Apache License

/**
 * Opens up the Google Login panel as a popup.
 *//*from   ww w . j  av a  2  s . co  m*/
private static void showPopup(AnActionEvent event) {
    GoogleLoginUsersPanel usersPanel = new GoogleLoginUsersPanel();
    JComponent source = (JComponent) event.getInputEvent().getSource();
    ComponentPopupBuilder popupBuilder = JBPopupFactory.getInstance().createComponentPopupBuilder(usersPanel,
            usersPanel.getList());
    JBPopup popup = popupBuilder.createPopup();
    JComponent component = popup.getContent();
    int startingPoint = (int) (source.getWidth() - component.getPreferredSize().getWidth());
    popup.show(new RelativePoint(source, new Point(startingPoint, source.getHeight() - 1)));
}

From source file:com.google.cloud.tools.intellij.resources.ProjectSelector.java

License:Apache License

@Override
public void showPopup(RelativePoint showTarget) {
    if (popup == null || popup.isDisposed()) {
        popupPanel = new PopupPanel();

        popupPanel.initializeContent(getText());
        ComponentPopupBuilder popup = JBPopupFactory.getInstance().createComponentPopupBuilder(popupPanel,
                popupPanel.getInitialFocus());
        this.popup = popup.createPopup();
    }/*from w  w w  . ja  v  a 2s .c  om*/
    if (!popup.isVisible()) {
        popup.show(showTarget);
    }
}

From source file:com.google.cloud.tools.intellij.resources.RepositorySelector.java

License:Open Source License

@Override
public void showPopup(RelativePoint showTarget) {
    if (user != null) {
        if (popup == null || popup.isDisposed()) {
            panel = new RepositoryPanel();

            ComponentPopupBuilder popupBuilder = JBPopupFactory.getInstance().createComponentPopupBuilder(panel,
                    null);//from   w ww  . ja  v  a 2s .c o m
            popup = popupBuilder.createPopup();
        }
        if (!popup.isVisible()) {
            popup.show(showTarget);
        }
    } else {
        panel = new ProjectNotSelectedPanel();

        ComponentPopupBuilder popupBuilder = JBPopupFactory.getInstance().createComponentPopupBuilder(panel,
                null);
        popup = popupBuilder.createPopup();
        popup.show(showTarget);
    }
}

From source file:com.google.cloud.tools.intellij.resources.UserSelector.java

License:Apache License

@Override
public void showPopup(RelativePoint showTarget) {
    if (popup == null || popup.isDisposed()) {
        PopupPanel popupPanel = new PopupPanel();

        popupPanel.initializeContent(getText());
        ComponentPopupBuilder popup = JBPopupFactory.getInstance().createComponentPopupBuilder(popupPanel,
                popupPanel.getInitialFocus());
        this.popup = popup.createPopup();
    }/*from   w  w  w.  j  a v a2 s. c o  m*/
    if (!popup.isVisible()) {
        popup.show(showTarget);
    }
}

From source file:com.google.gct.idea.elysium.ProjectSelector.java

License:Apache License

@Override
public void showPopup(RelativePoint showTarget) {
    if (myJBPopup == null || myJBPopup.isDisposed()) {
        myPopupPanel = new PopupPanel();

        myPopupPanel.initializeContent(getText());
        ComponentPopupBuilder popup = JBPopupFactory.getInstance().createComponentPopupBuilder(myPopupPanel,
                myPopupPanel.getInitialFocus());
        myJBPopup = popup.createPopup();
    }/*from ww  w.  j a v a2  s  .  c o  m*/
    if (!myJBPopup.isVisible()) {
        myJBPopup.show(showTarget);
    }
}

From source file:com.google.gct.idea.elysium.UserSelector.java

License:Apache License

@Override
public void showPopup(RelativePoint showTarget) {
    if (myPopup == null || myPopup.isDisposed()) {
        PopupPanel popupPanel = new PopupPanel();

        popupPanel.initializeContent(getText());
        ComponentPopupBuilder popup = JBPopupFactory.getInstance().createComponentPopupBuilder(popupPanel,
                popupPanel.getInitialFocus());
        myPopup = popup.createPopup();
    }//from  w ww  .  ja  va 2s.co  m
    if (!myPopup.isVisible()) {
        myPopup.show(showTarget);
    }
}

From source file:com.google.gct.login.ui.GoogleLoginAction.java

License:Apache License

/**
 * Opens up the Google Login panel as a popup.
 *///from   ww w.  j a v  a  2 s . c  o m
private static void showPopup(AnActionEvent e) {
    GoogleLoginUsersPanel usersPanel = new GoogleLoginUsersPanel();
    JComponent source = (JComponent) e.getInputEvent().getSource();
    ComponentPopupBuilder popupBuilder = JBPopupFactory.getInstance().createComponentPopupBuilder(usersPanel,
            usersPanel.getList());
    JBPopup popup = popupBuilder.createPopup();
    JComponent component = popup.getContent();
    int startingPoint = (int) (source.getWidth() - component.getPreferredSize().getWidth());
    popup.show(new RelativePoint(source, new Point(startingPoint, source.getHeight() - 1)));
}

From source file:com.intellij.ide.favoritesTreeView.TaskDefaultFavoriteListProvider.java

License:Apache License

private void showNotePopup(Project project, final DnDAwareTree tree, final Consumer<String> after,
        final String initText) {
    final JTextArea textArea = new JTextArea(3, 50);
    textArea.setFont(UIUtil.getTreeFont());
    textArea.setText(initText);//from   w w  w .  jav  a 2 s  .  c o  m
    final JBScrollPane pane = new JBScrollPane(textArea);
    final ComponentPopupBuilder builder = JBPopupFactory.getInstance()
            .createComponentPopupBuilder(pane, textArea).setCancelOnClickOutside(true)
            .setAdText(KeymapUtil.getShortcutsText(CommonShortcuts.CTRL_ENTER.getShortcuts()) + " to finish")
            .setTitle("Comment").setMovable(true).setRequestFocus(true).setResizable(true).setMayBeParent(true);
    final JBPopup popup = builder.createPopup();
    final JComponent content = popup.getContent();
    final AnAction action = new AnAction() {
        @Override
        public void actionPerformed(AnActionEvent e) {
            popup.closeOk(e.getInputEvent());
            unregisterCustomShortcutSet(content);
            after.consume(textArea.getText());
        }
    };
    action.registerCustomShortcutSet(CommonShortcuts.CTRL_ENTER, content);
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            popup.showInCenterOf(tree);
        }
    }, ModalityState.NON_MODAL, project.getDisposed());
}

From source file:com.intellij.ide.util.gotoByName.ChooseByNameBase.java

License:Apache License

protected void showTextFieldPanel() {
    final JLayeredPane layeredPane = getLayeredPane();
    final Dimension preferredTextFieldPanelSize = myTextFieldPanel.getPreferredSize();
    final int x = (layeredPane.getWidth() - preferredTextFieldPanelSize.width) / 2;
    final int paneHeight = layeredPane.getHeight();
    final int y = paneHeight / 3 - preferredTextFieldPanelSize.height / 2;

    VISIBLE_LIST_SIZE_LIMIT = Math.max(10,
            (paneHeight - (y + preferredTextFieldPanelSize.height)) / (preferredTextFieldPanelSize.height / 2)
                    - 1);//from  www . j a  va2  s  . c o  m

    ComponentPopupBuilder builder = JBPopupFactory.getInstance().createComponentPopupBuilder(myTextFieldPanel,
            myTextField);
    builder.setCancelCallback(new Computable<Boolean>() {
        @Override
        public Boolean compute() {
            myTextPopup = null;
            close(false);
            return Boolean.TRUE;
        }
    }).setFocusable(true).setRequestFocus(true).setModalContext(false).setCancelOnClickOutside(false);

    Point point = new Point(x, y);
    SwingUtilities.convertPointToScreen(point, layeredPane);
    Rectangle bounds = new Rectangle(point,
            new Dimension(preferredTextFieldPanelSize.width + 20, preferredTextFieldPanelSize.height));
    myTextPopup = builder.createPopup();
    myTextPopup.setSize(bounds.getSize());
    myTextPopup.setLocation(bounds.getLocation());

    new MnemonicHelper().register(myTextFieldPanel);
    if (myProject != null && !myProject.isDefault()) {
        DaemonCodeAnalyzer.getInstance(myProject).disableUpdateByTimer(myTextPopup);
    }

    Disposer.register(myTextPopup, new Disposable() {
        @Override
        public void dispose() {
            cancelListUpdater();
        }
    });
    myTextPopup.show(layeredPane);
    if (myTextPopup instanceof AbstractPopup) {
        Window window = ((AbstractPopup) myTextPopup).getPopupWindow();
        if (window instanceof JDialog) {
            ((JDialog) window).getRootPane().putClientProperty(WindowAction.NO_WINDOW_ACTIONS, Boolean.TRUE);
        }
    }
}

From source file:com.intellij.ide.util.gotoByName.ChooseByNamePopup.java

License:Apache License

@Override
protected void showList() {
    final JLayeredPane layeredPane = myTextField.getRootPane().getLayeredPane();

    Rectangle bounds = new Rectangle(myTextFieldPanel.getLocationOnScreen(), myTextField.getSize());
    bounds.y += myTextFieldPanel.getHeight() + (SystemInfo.isMac ? 3 : 1);

    final Dimension preferredScrollPaneSize = myListScrollPane.getPreferredSize();
    if (myList.getModel().getSize() == 0) {
        preferredScrollPaneSize.height = UIManager.getFont("Label.font").getSize();
    }/*from  ww w.  j av  a  2s  . c o  m*/

    preferredScrollPaneSize.width = Math.max(myTextFieldPanel.getWidth(), preferredScrollPaneSize.width);

    Rectangle preferredBounds = new Rectangle(bounds.x, bounds.y, preferredScrollPaneSize.width,
            preferredScrollPaneSize.height);
    Rectangle original = new Rectangle(preferredBounds);

    ScreenUtil.fitToScreen(preferredBounds);
    if (original.width > preferredBounds.width) {
        int height = myListScrollPane.getHorizontalScrollBar().getPreferredSize().height;
        preferredBounds.height += height;
    }

    myListScrollPane.setVisible(true);
    myListScrollPane.setBorder(null);
    String adText = getAdText();
    if (myDropdownPopup == null) {
        ComponentPopupBuilder builder = JBPopupFactory.getInstance()
                .createComponentPopupBuilder(myListScrollPane, myListScrollPane);
        builder.setFocusable(false).setRequestFocus(false).setCancelKeyEnabled(false)
                .setFocusOwners(new JComponent[] { myTextField }).setBelongsToGlobalPopupStack(false)
                .setModalContext(false).setAdText(adText).setMayBeParent(true);
        builder.setCancelCallback(new Computable<Boolean>() {
            @Override
            public Boolean compute() {
                return Boolean.TRUE;
            }
        });
        myDropdownPopup = builder.createPopup();
        myDropdownPopup.setLocation(preferredBounds.getLocation());
        myDropdownPopup.setSize(preferredBounds.getSize());
        myDropdownPopup.show(layeredPane);
    } else {
        myDropdownPopup.setLocation(preferredBounds.getLocation());

        // in 'focus follows mouse' mode, to avoid focus escaping to editor, don't reduce popup size when list size is reduced
        final Dimension currentSize = myDropdownPopup.getSize();
        if (UISettings.getInstance().HIDE_NAVIGATION_ON_FOCUS_LOSS || preferredBounds.width > currentSize.width
                || preferredBounds.height > currentSize.height) {
            myDropdownPopup.setSize(preferredBounds.getSize());
        }
    }
}