List of usage examples for com.intellij.openapi.wm IdeFocusManager getInstance
public static IdeFocusManager getInstance(@Nullable Project project)
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 }