List of usage examples for com.intellij.openapi.wm IdeFocusManager getInstance
public static IdeFocusManager getInstance(@Nullable Project project)
From source file:com.intellij.ide.navigationToolbar.NavBarPanel.java
License:Apache License
public NavBarPanel(@NotNull Project project, boolean docked) { super(new FlowLayout(FlowLayout.LEFT, 0, 0)); myProject = project;/* ww w . j a va 2 s. c om*/ myModel = createModel(); myIdeView = new NavBarIdeView(this); myPresentation = new NavBarPresentation(myProject); myUpdateQueue = new NavBarUpdateQueue(this); CustomizationUtil.installPopupHandler(this, IdeActions.GROUP_NAVBAR_POPUP, ActionPlaces.NAVIGATION_BAR_POPUP); setOpaque(false); if (!docked && UIUtil.isUnderDarcula()) { setBorder(new LineBorder(Gray._120, 1)); } myCopyPasteDelegator = new CopyPasteDelegator(myProject, NavBarPanel.this) { @Override @NotNull protected PsiElement[] getSelectedElements() { final PsiElement element = getSelectedElement(PsiElement.class); return element == null ? PsiElement.EMPTY_ARRAY : new PsiElement[] { element }; } }; myUpdateQueue.queueModelUpdateFromFocus(); myUpdateQueue.queueRebuildUi(); if (!docked) { final ActionCallback typeAheadDone = new ActionCallback(); IdeFocusManager.getInstance(project).typeAheadUntil(typeAheadDone); myUpdateQueue.queueTypeAheadDone(typeAheadDone); } Disposer.register(project, this); }
From source file:com.intellij.ide.navigationToolbar.NavBarPanel.java
License:Apache License
public void rebuildAndSelectTail(final boolean requestFocus) { myUpdateQueue.queueModelUpdateFromFocus(); myUpdateQueue.queueRebuildUi();//from w w w. j a v a 2 s . c o m myUpdateQueue.queueSelect(new Runnable() { @Override public void run() { if (!myList.isEmpty()) { myModel.setSelectedIndex(myList.size() - 1); if (requestFocus) { IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); } } } }); myUpdateQueue.flush(); }
From source file:com.intellij.ide.navigationToolbar.NavBarPanel.java
License:Apache License
public void installActions(final int index, final NavBarItem component) { //suppress it for a while //installDnD(index, component); ListenerUtil.addMouseListener(component, new MouseAdapter() { @Override//w ww . jav a 2 s .co m public void mouseReleased(final MouseEvent e) { if (SystemInfo.isWindows) { click(e); } } @Override public void mousePressed(final MouseEvent e) { if (!SystemInfo.isWindows) { click(e); } } private void click(final MouseEvent e) { if (e.isConsumed()) return; if (e.isPopupTrigger()) { myModel.setSelectedIndex(index); IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); rightClick(index); e.consume(); } else if (!e.isPopupTrigger()) { if (e.getClickCount() == 1) { ctrlClick(index); myModel.setSelectedIndex(index); e.consume(); } else if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) { myModel.setSelectedIndex(index); IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); doubleClick(index); e.consume(); } } } }); }
From source file:com.intellij.ide.navigationToolbar.NavBarPopup.java
License:Apache License
public NavBarPopup(final NavBarPanel panel, Object[] siblings, final int selectedIndex) { super(createPopupContent(panel, siblings)); myPanel = panel;/*from w ww . ja va 2s . c om*/ myIndex = selectedIndex; setFocusRequestor(getComponent()); setForceShowAsPopup(true); ListenerUtil.addMouseListener(getComponent(), new MouseAdapter() { @Override public void mouseReleased(final MouseEvent e) { if (SystemInfo.isWindows) { click(e); } } @Override public void mousePressed(final MouseEvent e) { if (!SystemInfo.isWindows) { click(e); } } private void click(final MouseEvent e) { if (e.getComponent() != getList()) return; if (!e.isConsumed() && e.isPopupTrigger()) { myPanel.getModel().setSelectedIndex(selectedIndex); IdeFocusManager.getInstance(myPanel.getProject()).requestFocus(myPanel, true); myPanel.rightClick(selectedIndex); e.consume(); } else { final Object value = getList().getSelectedValue(); if (value != null) { myPanel.navigateInsideBar(value); } } } }); }
From source file:com.intellij.ide.navigationToolbar.NavBarUpdateQueue.java
License:Apache License
private void processUserActivity() { if (myPanel == null || !myPanel.isShowing()) { return;//from w ww.j a v a 2s .c om } final Project project = myPanel.getProject(); IdeFocusManager.getInstance(project).doWhenFocusSettlesDown(new Runnable() { @Override public void run() { Window wnd = SwingUtilities.windowForComponent(myPanel); if (wnd == null) return; Component focus = null; if (!wnd.isActive()) { IdeFrame frame = UIUtil.getParentOfType(IdeFrame.class, myPanel); if (frame != null) { focus = IdeFocusManager.getInstance(project).getLastFocusedFor(frame); } } else { final Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow(); if (window instanceof Dialog) { final Dialog dialog = (Dialog) window; if (dialog.isModal() && !SwingUtilities.isDescendingFrom(myPanel, dialog)) { return; } } } if (focus != null && focus.isShowing()) { if (!myPanel.hasFocus() && !myPanel.isNodePopupShowing()) { requestModelUpdate(DataManager.getInstance().getDataContext(focus), null, false); } } else if (wnd.isActive()) { requestModelUpdate(null, myPanel.getContextObject(), false); } } }); }
From source file:com.intellij.ide.projectView.BaseProjectTreeBuilder.java
License:Apache License
@NotNull @Override/*from www .j a v a2 s .c o m*/ public AsyncResult<Object> revalidateElement(Object element) { final AsyncResult<Object> result = new AsyncResult<Object>(); if (element instanceof AbstractTreeNode) { AbstractTreeNode node = (AbstractTreeNode) element; final Object value = node.getValue(); VirtualFile vFile = null; if (value instanceof PsiFileSystemItem) { vFile = ((PsiFileSystemItem) value).getVirtualFile(); } else if (value instanceof PsiElement) { PsiFile psiFile = ((PsiElement) value).getContainingFile(); if (psiFile != null) { vFile = psiFile.getVirtualFile(); } } final ActionCallback cb = new ActionCallback(); final VirtualFile finalVFile = vFile; final FocusRequestor focusRequestor = IdeFocusManager.getInstance(myProject).getFurtherRequestor(); batch(new Progressive() { @Override public void run(@NotNull ProgressIndicator indicator) { final Ref<Object> target = new Ref<Object>(); _select(value, finalVFile, false, Conditions.<AbstractTreeNode>alwaysTrue(), cb, indicator, target, focusRequestor, false); cb.doWhenDone(new Runnable() { @Override public void run() { result.setDone(target.get()); } }).doWhenRejected(new Runnable() { @Override public void run() { result.setRejected(); } }); } }); } else { result.setRejected(); } return result; }
From source file:com.intellij.ide.projectView.BaseProjectTreeBuilder.java
License:Apache License
@NotNull private ActionCallback _select(final Object element, final VirtualFile file, final boolean requestFocus, final Condition<AbstractTreeNode> nonStopCondition) { final ActionCallback result = new ActionCallback(); final FocusRequestor requestor = IdeFocusManager.getInstance(myProject).getFurtherRequestor(); UiActivityMonitor.getInstance().addActivity(myProject, new UiActivity.AsyncBgOperation("projectViewSelect"), getUpdater().getModalityState()); cancelUpdate().doWhenDone(new Runnable() { @Override//from ww w . ja v a 2 s. c om public void run() { batch(new Progressive() { @Override public void run(@NotNull ProgressIndicator indicator) { _select(element, file, requestFocus, nonStopCondition, result, indicator, null, requestor, false); UiActivityMonitor.getInstance().removeActivity(myProject, new UiActivity.AsyncBgOperation("projectViewSelect")); } }); } }); return result; }
From source file:com.intellij.ide.projectView.impl.ProjectViewImpl.java
License:Apache License
private void showPane(AbstractProjectViewPane newPane) { AbstractProjectViewPane currentPane = getCurrentProjectViewPane(); PsiElement selectedPsiElement = null; if (currentPane != null) { if (currentPane != newPane) { currentPane.saveExpandedPaths(); }//from w w w.ja v a 2s . co m final PsiElement[] elements = currentPane.getSelectedPSIElements(); if (elements.length > 0) { selectedPsiElement = elements[0]; } } myViewContentPanel.removeAll(); JComponent component = newPane.createComponent(); UIUtil.removeScrollBorder(component); myViewContentPanel.setLayout(new BorderLayout()); myViewContentPanel.add(component, BorderLayout.CENTER); myCurrentViewId = newPane.getId(); String newSubId = myCurrentViewSubId = newPane.getSubId(); myViewContentPanel.revalidate(); myViewContentPanel.repaint(); createToolbarActions(); myAutoScrollToSourceHandler.install(newPane.myTree); IdeFocusManager.getInstance(myProject).requestFocus(newPane.getComponentToFocus(), false); newPane.restoreExpandedPaths(); if (selectedPsiElement != null) { final VirtualFile virtualFile = PsiUtilCore.getVirtualFile(selectedPsiElement); if (virtualFile != null && ((ProjectViewSelectInTarget) newPane.createSelectInTarget()) .isSubIdSelectable(newSubId, new SelectInContext() { @Override @NotNull public Project getProject() { return myProject; } @Override @NotNull public VirtualFile getVirtualFile() { return virtualFile; } @Override public Object getSelectorInFile() { return null; } @Override public FileEditorProvider getFileEditorProvider() { return null; } })) { newPane.select(selectedPsiElement, virtualFile, true); } } myAutoScrollToSourceHandler.onMouseClicked(newPane.myTree); }
From source file:com.intellij.ide.structureView.newStructureView.StructureViewComponent.java
License:Apache License
public boolean select(final Object element, final boolean requestFocus) { myAbstractTreeBuilder.getReady(this).doWhenDone(new Runnable() { @Override/*from w ww . j a v a2 s.c om*/ public void run() { expandPathToElement(element).doWhenDone(new Consumer<AbstractTreeNode>() { @Override public void consume(AbstractTreeNode abstractTreeNode) { myAbstractTreeBuilder.select(abstractTreeNode, new Runnable() { @Override public void run() { if (requestFocus) { IdeFocusManager.getInstance(myProject) .requestFocus(myAbstractTreeBuilder.getTree(), false); } } }); } }); } }); return true; }
From source file:com.intellij.ide.util.FileStructurePopup.java
License:Apache License
public FileStructurePopup(@NotNull Project project, @NotNull FileEditor fileEditor, @NotNull StructureView structureView, final boolean applySortAndFilter) { myProject = project;/*from w w w . ja v a 2s. c o m*/ myFileEditor = fileEditor; myStructureViewDelegate = structureView; //Stop code analyzer to speedup EDT DaemonCodeAnalyzer.getInstance(myProject).disableUpdateByTimer(this); IdeFocusManager.getInstance(myProject).typeAheadUntil(myTreeHasBuilt); Disposer.register(this, myStructureViewDelegate); //long l = System.currentTimeMillis(); if (myFileEditor instanceof TextEditor) { Editor e = ((TextEditor) myFileEditor).getEditor(); myPsiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(e.getDocument()); } //System.out.println(System.currentTimeMillis() - l); if (myStructureViewDelegate instanceof StructureViewComposite) { StructureViewComposite.StructureViewDescriptor[] views = ((StructureViewComposite) myStructureViewDelegate) .getStructureViews(); myBaseTreeModel = new StructureViewCompositeModel(myPsiFile, views); Disposer.register(this, (Disposable) myBaseTreeModel); } else { myBaseTreeModel = myStructureViewDelegate.getTreeModel(); } if (applySortAndFilter) { myTreeActionsOwner = new TreeStructureActionsOwner(myBaseTreeModel); myTreeModel = new TreeModelWrapper(myBaseTreeModel, myTreeActionsOwner); } else { myTreeActionsOwner = null; myTreeModel = myStructureViewDelegate.getTreeModel(); } myTreeStructure = new SmartTreeStructure(project, myTreeModel) { @Override public void rebuildTree() { if (ApplicationManager.getApplication().isUnitTestMode() || !myPopup.isDisposed()) { super.rebuildTree(); } } @Override public boolean isToBuildChildrenInBackground(final Object element) { return getRootElement() == element; } @Override protected TreeElementWrapper createTree() { return new StructureViewComponent.StructureViewTreeElementWrapper(myProject, myModel.getRoot(), myModel); } @NonNls @Override public String toString() { return "structure view tree structure(model=" + myTreeModel + ")"; } }; myTree = new FileStructureTree(myTreeStructure.getRootElement(), Registry.is("fast.tree.expand.in.structure.view")); myTree.setCellRenderer(new NodeRenderer()); mySpeedSearch = new MyTreeSpeedSearch(); mySpeedSearch.setComparator(new SpeedSearchComparator(false, true)); final FileStructurePopupFilter filter = new FileStructurePopupFilter(); myFilteringStructure = new FilteringTreeStructure(filter, myTreeStructure, ApplicationManager.getApplication().isUnitTestMode()); myAbstractTreeBuilder = new FilteringTreeBuilder(myTree, filter, myFilteringStructure, null) { @Override public void initRootNode() { } @Override protected boolean validateNode(Object child) { return StructureViewComponent.isValid(child); } @Override public void revalidateTree() { //myTree.revalidate(); //myTree.repaint(); } @Override public boolean isToEnsureSelectionOnFocusGained() { return false; } }; myTreeExpander = new DefaultTreeExpander(myTree); final ModelListener modelListener = new ModelListener() { @Override public void onModelChanged() { myAbstractTreeBuilder.queueUpdate(); } }; myTreeModel.addModelListener(modelListener); Disposer.register(this, new Disposable() { @Override public void dispose() { myTreeModel.removeModelListener(modelListener); } }); //myAbstractTreeBuilder.getUi().setPassthroughMode(true); myAbstractTreeBuilder.getUi().getUpdater().setDelay(1); myInitialPsiElement = getCurrentElement(myPsiFile); //myAbstractTreeBuilder.setCanYieldUpdate(true); Disposer.register(this, myAbstractTreeBuilder); TreeUtil.installActions(myTree); }