Example usage for com.intellij.openapi.wm IdeFocusManager getInstance

List of usage examples for com.intellij.openapi.wm IdeFocusManager getInstance

Introduction

In this page you can find the example usage for com.intellij.openapi.wm IdeFocusManager getInstance.

Prototype

public static IdeFocusManager getInstance(@Nullable Project project) 

Source Link

Usage

From source file:com.intellij.ui.popup.AbstractPopup.java

License:Apache License

@Override
public void dispose() {
    if (myState == State.SHOWN) {
        LOG.debug("shown popup must be cancelled");
        cancel();/*from ww w.  j a v  a2s . c om*/
    }
    if (myState == State.DISPOSE) {
        return;
    }
    debugState("dispose popup", State.INIT, State.CANCEL);
    myState = State.DISPOSE;

    if (myDisposed) {
        return;
    }
    myDisposed = true;

    if (LOG.isDebugEnabled()) {
        LOG.debug("start disposing " + myContent);
    }

    Disposer.dispose(this, false);

    ApplicationManager.getApplication().assertIsDispatchThread();

    if (myPopup != null) {
        cancel(myDisposeEvent);
    }

    if (myContent != null) {
        myContent.removeAll();
        myContent.removeKeyListener(mySearchKeyListener);
    }
    myContent = null;
    myPreferredFocusedComponent = null;
    myComponent = null;
    myFocusTrackback = null;
    myCallBack = null;
    myListeners = null;

    if (myMouseOutCanceller != null) {
        final Toolkit toolkit = Toolkit.getDefaultToolkit();
        // it may happen, but have no idea how
        // http://www.jetbrains.net/jira/browse/IDEADEV-21265
        if (toolkit != null) {
            toolkit.removeAWTEventListener(myMouseOutCanceller);
        }
    }
    myMouseOutCanceller = null;

    resetWindow();

    if (myFinalRunnable != null) {
        final ActionCallback typeAheadDone = new ActionCallback();
        Runnable runFinal = new Runnable() {
            @Override
            public void run() {
                //noinspection SSBasedInspection
                SwingUtilities.invokeLater(myFinalRunnable);
                //noinspection SSBasedInspection
                SwingUtilities.invokeLater(typeAheadDone.createSetDoneRunnable());
                myFinalRunnable = null;
            }
        };

        IdeFocusManager.getInstance(myProject).typeAheadUntil(typeAheadDone);
        getFocusManager().doWhenFocusSettlesDown(runFinal);
    }

    if (LOG.isDebugEnabled()) {
        LOG.debug("stop disposing content");
    }
}

From source file:com.intellij.ui.popup.util.MasterDetailPopupBuilder.java

License:Apache License

public JBPopup createMasterDetailPopup() {

    setupRenderer();/*  ww  w  . j a va  2  s  .co  m*/

    myPathLabel = new JLabel(" ");
    myPathLabel.setHorizontalAlignment(SwingConstants.RIGHT);

    final Font font = myPathLabel.getFont();
    myPathLabel.setFont(font.deriveFont((float) 10));

    if (myDetailView == null) {
        myDetailView = new DetailViewImpl(myProject);
    }

    JPanel footerPanel = new JPanel(new BorderLayout()) {
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(BORDER_COLOR);
            g.drawLine(0, 0, getWidth(), 0);
        }
    };

    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            IdeFocusManager.getInstance(myProject).doWhenFocusSettlesDown(new Runnable() {
                @Override
                public void run() {
                    Object[] values = getSelectedItems();
                    if (values.length == 1) {
                        myDelegate.itemChosen((ItemWrapper) values[0], myProject, myPopup, false);
                    } else {
                        for (Object value : values) {
                            if (value instanceof ItemWrapper) {
                                myDelegate.itemChosen((ItemWrapper) value, myProject, myPopup, false);
                            }
                        }
                    }
                }
            });
        }
    };

    footerPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
    footerPanel.add(myPathLabel);

    JComponent toolBar = null;
    if (myActions != null) {
        myActionToolbar = ActionManager.getInstance().createActionToolbar("", myActions, true);
        myActionToolbar.setReservePlaceAutoPopupIcon(false);
        myActionToolbar.setMinimumButtonSize(new Dimension(20, 20));
        toolBar = myActionToolbar.getComponent();
        toolBar.setOpaque(false);
    }

    final PopupChooserBuilder builder = createInnerBuilder().setMovable(true).setResizable(true)
            .setAutoselectOnMouseMove(false).setSettingButton(toolBar).setSouthComponent(footerPanel)
            .setCancelOnWindowDeactivation(myCancelOnWindowDeactivation)
            .setCancelOnClickOutside(myCancelOnClickOutside)
            .setUseDimensionServiceForXYLocation(myUseDimensionServiceForXYLocation);

    if (myDoneRunnable != null) {

        ActionListener actionListener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                myDoneRunnable.run();
            }
        };
        //native button is pretty enough
        if ((SystemInfo.isMacOSLion || SystemInfo.isMacOSMountainLion) && !UIUtil.isUnderDarcula()) {
            final JButton done = new JButton("Done");
            done.setMnemonic('o');
            done.addActionListener(actionListener);

            builder.setCommandButton(new ActiveComponent() {
                @Override
                public void setActive(boolean active) {
                }

                @Override
                public JComponent getComponent() {
                    return done;
                }
            });
        } else {
            builder.setCommandButton(new InplaceButton(
                    new IconButton("Close", AllIcons.Actions.CloseNew, AllIcons.Actions.CloseNewHovered),
                    actionListener));
        }
    }

    String title = myDelegate.getTitle();
    if (title != null) {
        builder.setTitle(title);
    }

    builder.setItemChoosenCallback(runnable).setCloseOnEnter(myCloseOnEnter).setMayBeParent(true)
            .setDimensionServiceKey(myDimensionServiceKey).setFilteringEnabled(new Function<Object, String>() {
                @Override
                public String fun(Object o) {
                    return ((ItemWrapper) o).speedSearchText();
                }
            });

    if (myMinSize != null) {
        builder.setMinSize(myMinSize);
    }

    myPopup = builder.createPopup();
    builder.getScrollPane().setBorder(IdeBorderFactory.createBorder(SideBorder.RIGHT));
    myPopup.addListener(new JBPopupListener() {
        @Override
        public void beforeShown(LightweightWindowEvent event) {
        }

        @Override
        public void onClosed(LightweightWindowEvent event) {
            myDetailView.clearEditor();
        }
    });

    if (myDoneRunnable != null) {
        new AnAction("Done") {
            @Override
            public void actionPerformed(AnActionEvent e) {
                myDoneRunnable.run();
            }
        }.registerCustomShortcutSet(KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK, myPopup.getContent());
    }

    return myPopup;
}

From source file:com.intellij.ui.switcher.SwitchManager.java

License:Apache License

public boolean dispatchKeyEvent(KeyEvent e) {
    if (!myQa.isEnabled())
        return false;

    if (mySession != null && !mySession.isFinished())
        return false;

    Component c = e.getComponent();
    Component frame = UIUtil.findUltimateParent(c);
    if (frame instanceof IdeFrame) {
        if (((IdeFrame) frame).getProject() != myProject)
            return false;
    }/*from  www.  j  a  v  a  2  s .  co m*/

    if (e.getID() != KeyEvent.KEY_PRESSED) {
        if (myWaitingForAutoInitSession) {
            cancelWaitingForAutoInit();
        }
        return false;
    }

    if (myQa.getModiferCodes().contains(e.getKeyCode())) {
        if (areAllModifiersPressed(e.getModifiers(), myQa.getModiferCodes())) {
            myWaitingForAutoInitSession = true;
            myAutoInitSessionEvent = e;
            Runnable initRunnable = new Runnable() {
                public void run() {
                    IdeFocusManager.getInstance(myProject).doWhenFocusSettlesDown(new Runnable() {
                        public void run() {
                            if (myWaitingForAutoInitSession) {
                                tryToInitSessionFromFocus(null, false);
                            }
                        }
                    });
                }
            };
            if (myFadingAway.isEmpty()) {
                myInitSessionAlarm.addRequest(initRunnable,
                        Registry.intValue("actionSystem.keyGestureHoldTime"));
            } else {
                initRunnable.run();
            }
        }
    } else {
        if (myWaitingForAutoInitSession) {
            cancelWaitingForAutoInit();
        }
    }

    return false;
}

From source file:com.intellij.util.ui.tree.TreeUtil.java

License:Apache License

@NotNull
public static ActionCallback selectInTree(Project project, @Nullable DefaultMutableTreeNode node,
        boolean requestFocus, @NotNull JTree tree, boolean center) {
    if (node == null)
        return new ActionCallback.Done();

    final TreePath treePath = new TreePath(node.getPath());
    tree.expandPath(treePath);/* w  w  w  .  j  a v  a2  s.  c  o m*/
    if (requestFocus) {
        ActionCallback result = new ActionCallback(2);
        IdeFocusManager.getInstance(project).requestFocus(tree, true).notifyWhenDone(result);
        selectPath(tree, treePath, center).notifyWhenDone(result);
        return result;
    }
    return selectPath(tree, treePath, center);
}

From source file:com.intellij.vcs.log.impl.VcsLogManager.java

License:Apache License

@NotNull
public JComponent initContent(@NotNull Collection<VcsRoot> roots, @Nullable String contentTabName) {
    Disposer.register(myProject, this);

    final Map<VirtualFile, VcsLogProvider> logProviders = findLogProviders(roots, myProject);

    Consumer<VisiblePack> visiblePackConsumer = new Consumer<VisiblePack>() {
        @Override//from w  ww .  j  a v  a 2  s .c  o  m
        public void consume(final VisiblePack pack) {
            UIUtil.invokeLaterIfNeeded(new Runnable() {
                @Override
                public void run() {
                    if (!Disposer.isDisposed(myUi)) {
                        myUi.setVisiblePack(pack);
                    }
                }
            });
        }
    };
    final VcsLogDataHolder logDataHolder = new VcsLogDataHolder(myProject, this, logProviders, mySettings,
            myUiProperties, visiblePackConsumer);
    myUi = new VcsLogUiImpl(logDataHolder, myProject, mySettings,
            new VcsLogColorManagerImpl(logProviders.keySet()), myUiProperties, logDataHolder.getFilterer());
    myUi.addLogListener(logDataHolder.getContainingBranchesGetter()); // TODO: remove this after VcsLogDataHolder vs VcsLoUi dependency cycle is solved
    if (contentTabName != null) {
        myLogRefresher = new PostponeableLogRefresher(myProject, logDataHolder, contentTabName);
    } else {
        myLogRefresher = new VcsLogRefresher() {
            @Override
            public void refresh(@NotNull VirtualFile root) {
                logDataHolder.refresh(Collections.singletonList(root));
            }
        };
    }
    refreshLogOnVcsEvents(logProviders);
    logDataHolder.initialize();

    // todo fix selection
    final VcsLogGraphTable graphTable = myUi.getTable();
    if (graphTable.getRowCount() > 0) {
        IdeFocusManager.getInstance(myProject).requestFocus(graphTable, true).doWhenProcessed(new Runnable() {
            @Override
            public void run() {
                graphTable.setRowSelectionInterval(0, 0);
            }
        });
    }
    return myUi.getMainFrame().getMainComponent();
}

From source file:com.intellij.xdebugger.impl.evaluate.XDebuggerEvaluationDialog.java

License:Apache License

public XDebuggerEvaluationDialog(@NotNull XDebugSession session,
        @NotNull XDebuggerEditorsProvider editorsProvider, @NotNull XDebuggerEvaluator evaluator,
        @NotNull XExpression text, @Nullable XSourcePosition sourcePosition) {
    super(session.getProject(), true);
    mySession = session;/*from w  ww .  j a v a2s.  c  o m*/
    myEditorsProvider = editorsProvider;
    mySourcePosition = sourcePosition;
    setModal(false);
    setOKButtonText(XDebuggerBundle.message("xdebugger.button.evaluate"));
    setCancelButtonText(XDebuggerBundle.message("xdebugger.evaluate.dialog.close"));

    mySession.addSessionListener(new XDebugSessionAdapter() {
        @Override
        public void sessionStopped() {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    close(CANCEL_EXIT_CODE);
                }
            });
        }
    }, myDisposable);

    myTreePanel = new XDebuggerTreePanel(session.getProject(), editorsProvider, myDisposable, sourcePosition,
            XDebuggerActions.EVALUATE_DIALOG_TREE_POPUP_GROUP, ((XDebugSessionImpl) session).getValueMarkers());
    myResultPanel = new JPanel(new BorderLayout());
    myResultPanel.add(new JLabel(XDebuggerBundle.message("xdebugger.evaluate.label.result")),
            BorderLayout.NORTH);
    myResultPanel.add(myTreePanel.getMainPanel(), BorderLayout.CENTER);
    myMainPanel = new JPanel(new BorderLayout());

    mySwitchModeAction = new SwitchModeAction();

    new AnAction() {
        @Override
        public void actionPerformed(AnActionEvent e) {
            IdeFocusManager.getInstance(mySession.getProject()).requestFocus(myTreePanel.getTree(), true);
        }
    }.registerCustomShortcutSet(
            new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.ALT_DOWN_MASK)),
            getRootPane(), myDisposable);

    myTreePanel.getTree().expandNodesOnLoad(new Condition<TreeNode>() {
        @Override
        public boolean value(TreeNode node) {
            return node.getParent() instanceof EvaluatingExpressionRootNode;
        }
    });

    EvaluationMode mode = XDebuggerSettingsManager.getInstanceImpl().getGeneralSettings()
            .getEvaluationDialogMode();
    myIsCodeFragmentEvaluationSupported = evaluator.isCodeFragmentEvaluationSupported();
    if (mode == EvaluationMode.CODE_FRAGMENT && !myIsCodeFragmentEvaluationSupported) {
        mode = EvaluationMode.EXPRESSION;
    }
    if (mode == EvaluationMode.EXPRESSION) {
        text = new XExpressionImpl(StringUtil.replace(text.getExpression(), "\n", " "), text.getLanguage(),
                text.getCustomInfo());
    }
    switchToMode(mode, text);
    init();
}

From source file:com.intellij.xdebugger.impl.evaluate.XDebuggerEvaluationDialog.java

License:Apache License

private void switchToMode(EvaluationMode mode, XExpression text) {
    if (myMode == mode)
        return;/*from  w  w w  .  j a  v a 2  s  .  c om*/

    XDebuggerSettingsManager.getInstanceImpl().getGeneralSettings().setEvaluationDialogMode(mode);

    myMode = mode;

    myInputComponent = createInputComponent(mode, text);
    myMainPanel.removeAll();
    myInputComponent.addComponent(myMainPanel, myResultPanel);

    setTitle(myInputComponent.getTitle());
    mySwitchModeAction.putValue(Action.NAME, getSwitchButtonText(mode));
    final JComponent preferredFocusedComponent = myInputComponent.getInputEditor()
            .getPreferredFocusedComponent();
    if (preferredFocusedComponent != null) {
        IdeFocusManager.getInstance(mySession.getProject()).requestFocus(preferredFocusedComponent, true);
    }
}

From source file:com.intellij.xdebugger.impl.ui.XDebuggerEditorBase.java

License:Apache License

private ListPopup createLanguagePopup() {
    DefaultActionGroup actions = new DefaultActionGroup();
    for (final Language language : getEditorsProvider().getSupportedLanguages(myProject, mySourcePosition)) {
        actions.add(new AnAction(language.getDisplayName(), null, language.getAssociatedFileType().getIcon()) {
            @Override//from  www. jav a 2 s. c  o  m
            public void actionPerformed(AnActionEvent e) {
                XExpression currentExpression = getExpression();
                setExpression(new XExpressionImpl(currentExpression.getExpression(), language,
                        currentExpression.getCustomInfo()));
                IdeFocusManager.getInstance(getProject()).requestFocus(getComponent(), true);
            }
        });
    }

    DataContext dataContext = DataManager.getInstance().getDataContext(getComponent());
    return JBPopupFactory.getInstance().createActionGroupPopup("Choose language", actions, dataContext,
            JBPopupFactory.ActionSelectionAid.SPEEDSEARCH, false);
}

From source file:com.sylvanaar.idea.Lua.console.AbstractConsoleRunnerWithHistory.java

License:Apache License

protected void showConsole(Executor defaultExecutor, RunContentDescriptor myDescriptor) {
    // Show in run toolwindow
    ExecutionManager.getInstance(myProject).getContentManager().showRunContent(defaultExecutor, myDescriptor);

    // Request focus
    final ToolWindow window = ToolWindowManager.getInstance(myProject).getToolWindow(defaultExecutor.getId());
    window.activate(new Runnable() {
        public void run() {
            IdeFocusManager.getInstance(myProject)
                    .requestFocus(getLanguageConsole().getCurrentEditor().getContentComponent(), true);
        }/*from ww w.  j a v  a  2s.c o  m*/
    });
}

From source file:org.codinjutsu.tools.mongo.view.QueryPanel.java

License:Apache License

public void requestFocusOnEditor() {// Code from requestFocus of EditorImpl
    final IdeFocusManager focusManager = IdeFocusManager.getInstance(this.project);
    JComponent editorContentComponent = getCurrentOperatorPanel().getRequestFocusComponent();
    if (focusManager.getFocusOwner() != editorContentComponent) {
        focusManager.requestFocus(editorContentComponent, true);
    }//from w w w  . j av a  2 s.co m
}