List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor
public OpenFileDescriptor(@NotNull Project project, @NotNull VirtualFile file)
From source file:com.intellij.ide.actions.SearchEverywhereAction.java
License:Apache License
private void doNavigate(final int index) { final Project project = CommonDataKeys.PROJECT .getData(DataManager.getInstance().getDataContext(getField().getTextEditor())); final Executor executor = ourShiftIsPressed.get() ? DefaultRunExecutor.getRunExecutorInstance() : ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG); assert project != null; final SearchListModel model = getModel(); if (isMoreItem(index)) { final String pattern = myPopupField.getText(); WidgetID wid = null;// w w w. j a v a 2 s .co m if (index == model.moreIndex.classes) wid = WidgetID.CLASSES; else if (index == model.moreIndex.files) wid = WidgetID.FILES; else if (index == model.moreIndex.settings) wid = WidgetID.SETTINGS; else if (index == model.moreIndex.actions) wid = WidgetID.ACTIONS; else if (index == model.moreIndex.symbols) wid = WidgetID.SYMBOLS; else if (index == model.moreIndex.runConfigurations) wid = WidgetID.RUN_CONFIGURATIONS; if (wid != null) { final WidgetID widgetID = wid; myCurrentWorker.doWhenProcessed(new Runnable() { @Override public void run() { myCalcThread = new CalcThread(project, pattern, true); myPopupActualWidth = 0; myCurrentWorker = myCalcThread.insert(index, widgetID); } }); return; } } final String pattern = getField().getText(); final Object value = myList.getSelectedValue(); saveHistory(project, pattern, value); IdeFocusManager focusManager = IdeFocusManager.findInstanceByComponent(getField().getTextEditor()); if (myPopup != null && myPopup.isVisible()) { myPopup.cancel(); } if (value instanceof BooleanOptionDescription) { final BooleanOptionDescription option = (BooleanOptionDescription) value; option.setOptionState(!option.isOptionEnabled()); myList.revalidate(); myList.repaint(); getField().requestFocus(); return; } if (value instanceof OptionsTopHitProvider) { //noinspection SSBasedInspection SwingUtilities.invokeLater(new Runnable() { @Override public void run() { getField().setText("#" + ((OptionsTopHitProvider) value).getId() + " "); } }); return; } Runnable onDone = null; AccessToken token = ApplicationManager.getApplication().acquireReadActionLock(); try { if (value instanceof PsiElement) { onDone = new Runnable() { @Override public void run() { NavigationUtil.activateFileWithPsiElement((PsiElement) value, true); } }; return; } else if (isVirtualFile(value)) { onDone = new Runnable() { @Override public void run() { OpenSourceUtil.navigate(true, new OpenFileDescriptor(project, (VirtualFile) value)); } }; return; } else if (isActionValue(value) || isSetting(value) || isRunConfiguration(value)) { focusManager.requestDefaultFocus(true); final Component comp = myContextComponent; final AnActionEvent event = myActionEvent; IdeFocusManager.getInstance(project).doWhenFocusSettlesDown(new Runnable() { @Override public void run() { Component c = comp; if (c == null) { c = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); } if (isRunConfiguration(value)) { ((ChooseRunConfigurationPopup.ItemWrapper) value).perform(project, executor, DataManager.getInstance().getDataContext(c)); } else { GotoActionAction.openOptionOrPerformAction(value, pattern, project, c, event); if (isToolWindowAction(value)) return; } } }); return; } else if (value instanceof Navigatable) { onDone = new Runnable() { @Override public void run() { OpenSourceUtil.navigate(true, (Navigatable) value); } }; return; } } finally { token.finish(); final ActionCallback callback = onFocusLost(); if (onDone != null) { callback.doWhenDone(onDone); } } focusManager.requestDefaultFocus(true); }
From source file:com.intellij.ide.CommandLineProcessor.java
License:Apache License
@Nullable private static Project doOpenFile(VirtualFile virtualFile, int line) { final Project[] projects = ProjectManager.getInstance().getOpenProjects(); if (projects.length == 0) { return PlatformProjectOpenProcessor.doOpenProject(virtualFile, null, false, line, null); } else {/*from ww w .ja v a2s. co m*/ Project project = findBestProject(virtualFile, projects); if (line == -1) { new OpenFileDescriptor(project, virtualFile).navigate(true); } else { new OpenFileDescriptor(project, virtualFile, line - 1, 0).navigate(true); } return project; } }
From source file:com.intellij.ide.diff.VirtualFileDiffElement.java
License:Apache License
@Override @Nullable// w w w. ja v a 2 s . c om public OpenFileDescriptor getOpenFileDescriptor(@Nullable Project project) { if (project == null || project.isDefault()) return null; return new OpenFileDescriptor(project, myFile); }
From source file:com.intellij.ide.favoritesTreeView.FileGroupingProjectNode.java
License:Apache License
@Override public void navigate(boolean requestFocus) { if (myVirtualFile != null) { new OpenFileDescriptor(myProject, myVirtualFile).navigate(requestFocus); }/*from w ww .j a va 2 s. c om*/ }
From source file:com.intellij.ide.JavaFilePasteProvider.java
License:Apache License
public void performPaste(@NotNull final DataContext dataContext) { final Project project = CommonDataKeys.PROJECT.getData(dataContext); final IdeView ideView = DataKeys.IDE_VIEW.getData(dataContext); if (project == null || ideView == null) return;/*from w w w. j a v a 2 s .c om*/ final PsiJavaFile javaFile = createJavaFileFromClipboardContent(project); if (javaFile == null) return; final PsiClass[] classes = javaFile.getClasses(); if (classes.length < 1) return; final PsiDirectory targetDir = ideView.getOrChooseDirectory(); if (targetDir == null) return; PsiClass publicClass = classes[0]; for (PsiClass aClass : classes) { if (aClass.hasModifierProperty(PsiModifier.PUBLIC)) { publicClass = aClass; break; } } final PsiClass mainClass = publicClass; new WriteCommandAction(project, "Paste class '" + mainClass.getName() + "'") { @Override protected void run(Result result) throws Throwable { PsiFile file; try { file = targetDir.createFile(mainClass.getName() + ".java"); } catch (IncorrectOperationException e) { return; } final Document document = PsiDocumentManager.getInstance(project).getDocument(file); document.setText(javaFile.getText()); PsiDocumentManager.getInstance(project).commitDocument(document); if (file instanceof PsiJavaFile) { updatePackageStatement((PsiJavaFile) file, targetDir); } new OpenFileDescriptor(project, file.getVirtualFile()).navigate(true); } }.execute(); }
From source file:com.intellij.lang.ant.config.explorer.AntExplorer.java
License:Apache License
@Nullable public Object getData(@NonNls Key<?> dataId) { if (PlatformDataKeys.NAVIGATABLE == dataId) { final AntBuildFile buildFile = getCurrentBuildFile(); if (buildFile == null) { return null; }//w w w .j av a2 s.co m final VirtualFile file = buildFile.getVirtualFile(); if (file == null) { return null; } final TreePath treePath = myTree.getLeadSelectionPath(); if (treePath == null) { return null; } final DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent(); if (node == null) { return null; } if (node.getUserObject() instanceof AntTargetNodeDescriptor) { final AntTargetNodeDescriptor targetNodeDescriptor = (AntTargetNodeDescriptor) node.getUserObject(); final AntBuildTargetBase buildTarget = targetNodeDescriptor.getTarget(); final OpenFileDescriptor descriptor = buildTarget.getOpenFileDescriptor(); if (descriptor != null) { final VirtualFile descriptorFile = descriptor.getFile(); if (descriptorFile.isValid()) { return descriptor; } } } if (file.isValid()) { return new OpenFileDescriptor(myProject, file); } } else if (PlatformDataKeys.TREE_EXPANDER == dataId) { return myProject != null ? myTreeExpander : null; } else if (PlatformDataKeys.VIRTUAL_FILE_ARRAY == dataId) { final TreePath[] paths = myTree.getSelectionPaths(); if (paths == null) { return null; } final ArrayList<VirtualFile> result = new ArrayList<VirtualFile>(); for (final TreePath path : paths) { for (DefaultMutableTreeNode node = (DefaultMutableTreeNode) path .getLastPathComponent(); node != null; node = (DefaultMutableTreeNode) node.getParent()) { final Object userObject = node.getUserObject(); if (!(userObject instanceof AntBuildFileNodeDescriptor)) { continue; } final AntBuildFile buildFile = ((AntBuildFileNodeDescriptor) userObject).getBuildFile(); if (buildFile != null) { final VirtualFile virtualFile = buildFile.getVirtualFile(); if (virtualFile != null && virtualFile.isValid()) { result.add(virtualFile); } } break; } } if (result.size() == 0) { return null; } return VfsUtil.toVirtualFileArray(result); } return super.getData(dataId); }
From source file:com.intellij.lang.properties.projectView.ResourceBundleNode.java
License:Apache License
public void navigate(final boolean requestFocus) { OpenFileDescriptor descriptor = new OpenFileDescriptor(getProject(), new ResourceBundleAsVirtualFile(getValue())); FileEditorManager.getInstance(getProject()).openTextEditor(descriptor, requestFocus); }
From source file:com.intellij.project.LoadProjectTest.java
License:Apache License
public void testLoadProject() throws Exception { VirtualFile src = ProjectRootManager.getInstance(getProject()).getContentSourceRoots()[0]; VirtualFile a = src.findFileByRelativePath("/x/AClass.java"); assertNotNull(a);/*www.j a v a 2 s . com*/ PsiFile fileA = getPsiManager().findFile(a); assertNotNull(fileA); fileA.navigate(true); Editor editorA = FileEditorManager.getInstance(getProject()) .openTextEditor(new OpenFileDescriptor(getProject(), a), true); assertNotNull(editorA); CodeInsightTestFixtureImpl.instantiateAndRun(fileA, editorA, new int[0], false); VirtualFile b = src.findFileByRelativePath("/x/BClass.java"); assertNotNull(b); PsiFile fileB = getPsiManager().findFile(b); assertNotNull(fileB); fileB.navigate(true); Editor editorB = FileEditorManager.getInstance(getProject()) .openTextEditor(new OpenFileDescriptor(getProject(), b), true); assertNotNull(editorB); CodeInsightTestFixtureImpl.instantiateAndRun(fileB, editorB, new int[0], false); FileEditor[] allEditors = FileEditorManager.getInstance(getProject()).getAllEditors(); assertEquals(2, allEditors.length); FileEditorManager.getInstance(getProject()).closeFile(a); FileEditorManager.getInstance(getProject()).closeFile(b); ProjectManagerEx.getInstanceEx().closeAndDispose(getProject()); LeakHunter.checkLeak(ApplicationManager.getApplication(), PsiFileImpl.class, new Processor<PsiFileImpl>() { @Override public boolean process(PsiFileImpl psiFile) { return psiFile.getViewProvider().getVirtualFile().getFileSystem() instanceof LocalFileSystem; } }); }
From source file:com.intellij.refactoring.extractMethod.ExtractMethodHandler.java
License:Apache License
@Nullable private static Editor openEditor(final Project project, final PsiFile file) { final VirtualFile virtualFile = file.getVirtualFile(); LOG.assertTrue(virtualFile != null); final OpenFileDescriptor fileDescriptor = new OpenFileDescriptor(project, virtualFile); return FileEditorManager.getInstance(project).openTextEditor(fileDescriptor, false); }
From source file:com.intellij.refactoring.util.duplicates.DuplicatesImpl.java
License:Apache License
public static void invoke(final Project project, final MatchProvider provider) { final List<Match> duplicates = provider.getDuplicates(); int idx = 0;// w w w . ja v a 2 s. com final Ref<Boolean> showAll = new Ref<Boolean>(); final String confirmDuplicatePrompt = getConfirmationPrompt(provider, duplicates); for (final Match match : duplicates) { final PsiFile file = match.getFile(); final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null || !virtualFile.isValid()) return; if (!CommonRefactoringUtil.checkReadOnlyStatus(project, file)) return; final Editor editor = FileEditorManager.getInstance(project) .openTextEditor(new OpenFileDescriptor(project, virtualFile), false); LOG.assertTrue(editor != null); if (!match.getMatchStart().isValid() || !match.getMatchEnd().isValid()) continue; if (replaceMatch(project, provider, match, editor, ++idx, duplicates.size(), showAll, confirmDuplicatePrompt, false)) return; } }