List of usage examples for com.intellij.openapi.actionSystem PlatformDataKeys PROJECT_CONTEXT
DataKey PROJECT_CONTEXT
To view the source code for com.intellij.openapi.actionSystem PlatformDataKeys PROJECT_CONTEXT.
Click Source Link
From source file:com.imaginea.kodebeagle.action.EditSettingsAction.java
License:Apache License
@Override public final void actionPerformed(final AnActionEvent anActionEvent) { ShowSettingsUtil.getInstance().showSettingsDialog(anActionEvent.getData(PlatformDataKeys.PROJECT_CONTEXT), SettingsConfigurable.KODE_BEAGLE_SETTINGS); }
From source file:com.intellij.analysis.BaseAnalysisAction.java
License:Apache License
@Nullable private AnalysisScope getInspectionScopeImpl(@NotNull DataContext dataContext) { //Possible scopes: file, directory, package, project, module. Project projectContext = PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext); if (projectContext != null) { return new AnalysisScope(projectContext); }//ww w . j a va2 s.co m final AnalysisScope analysisScope = AnalysisScopeUtil.KEY.getData(dataContext); if (analysisScope != null) { return analysisScope; } final PsiFile psiFile = CommonDataKeys.PSI_FILE.getData(dataContext); if (psiFile != null && psiFile.getManager().isInProject(psiFile)) { final VirtualFile file = psiFile.getVirtualFile(); if (file != null && file.isValid() && file.getFileType() instanceof ArchiveFileType && acceptNonProjectDirectories()) { final VirtualFile jarRoot = ArchiveVfsUtil.getArchiveRootForLocalFile(file); if (jarRoot != null) { PsiDirectory psiDirectory = psiFile.getManager().findDirectory(jarRoot); if (psiDirectory != null) { return new AnalysisScope(psiDirectory); } } } return new AnalysisScope(psiFile); } VirtualFile[] virtualFiles = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); Project project = CommonDataKeys.PROJECT.getData(dataContext); if (virtualFiles != null && project != null) { //analyze on selection ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); if (virtualFiles.length == 1) { PsiDirectory psiDirectory = PsiManager.getInstance(project).findDirectory(virtualFiles[0]); if (psiDirectory != null && (acceptNonProjectDirectories() || psiDirectory.getManager().isInProject(psiDirectory))) { return new AnalysisScope(psiDirectory); } } Set<VirtualFile> files = new HashSet<VirtualFile>(); for (VirtualFile vFile : virtualFiles) { if (fileIndex.isInContent(vFile)) { files.add(vFile); } } return new AnalysisScope(project, files); } Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); if (moduleContext != null) { return new AnalysisScope(moduleContext); } Module[] modulesArray = LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataContext); if (modulesArray != null) { return new AnalysisScope(modulesArray); } return project == null ? null : new AnalysisScope(project); }
From source file:com.intellij.codeInsight.actions.OptimizeImportsAction.java
License:Apache License
public static void actionPerformedImpl(final DataContext dataContext) { final Project project = CommonDataKeys.PROJECT.getData(dataContext); if (project == null) { return;//from w w w . ja v a2 s . c om } PsiDocumentManager.getInstance(project).commitAllDocuments(); final Editor editor = BaseCodeInsightAction.getInjectedEditor(project, CommonDataKeys.EDITOR.getData(dataContext)); final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); PsiFile file = null; PsiDirectory dir; if (editor != null) { file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) return; dir = file.getContainingDirectory(); } else if (files != null && ReformatCodeAction.areFiles(files)) { final ReadonlyStatusHandler.OperationStatus operationStatus = ReadonlyStatusHandler.getInstance(project) .ensureFilesWritable(files); if (!operationStatus.hasReadonlyFiles()) { new OptimizeImportsProcessor(project, ReformatCodeAction.convertToPsiFiles(files, project), null) .run(); } return; } else { Project projectContext = PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext); Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); if (projectContext != null || moduleContext != null) { final String text; if (moduleContext != null) { text = CodeInsightBundle.message("process.scope.module", moduleContext.getName()); } else { text = CodeInsightBundle.message("process.scope.project", projectContext.getPresentableUrl()); } LayoutProjectCodeDialog dialog = new LayoutProjectCodeDialog(project, null, CodeInsightBundle.message("process.optimize.imports"), text, false); dialog.show(); if (!dialog.isOK()) return; if (moduleContext != null) { new OptimizeImportsProcessor(project, moduleContext).run(); } else { new OptimizeImportsProcessor(projectContext).run(); } return; } PsiElement element = CommonDataKeys.PSI_ELEMENT.getData(dataContext); if (element == null) return; if (element instanceof PsiDirectoryContainer) { dir = ((PsiDirectoryContainer) element).getDirectories()[0]; } else if (element instanceof PsiDirectory) { dir = (PsiDirectory) element; } else { file = element.getContainingFile(); if (file == null) return; dir = file.getContainingDirectory(); } } boolean processDirectory; boolean includeSubdirectories; if (ApplicationManager.getApplication().isUnitTestMode()) { includeSubdirectories = processDirectory = false; } else if (!EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG && file != null) { includeSubdirectories = processDirectory = false; } else { final LayoutCodeDialog dialog = new LayoutCodeDialog(project, CodeInsightBundle.message("process.optimize.imports"), file, dir, null, HELP_ID); dialog.show(); if (!dialog.isOK()) return; EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG = !dialog .isDoNotAskMe(); ReformatCodeAction.updateShowDialogSetting(dialog, "\"Optimize Imports\" dialog disabled"); processDirectory = dialog.isProcessDirectory(); includeSubdirectories = dialog.isIncludeSubdirectories(); } if (processDirectory) { new OptimizeImportsProcessor(project, dir, includeSubdirectories).run(); } else { new OptimizeImportsProcessor(project, file).run(); } }
From source file:com.intellij.codeInsight.actions.OptimizeImportsAction.java
License:Apache License
@Override public void update(AnActionEvent event) { if (!LanguageImportStatements.INSTANCE.hasAnyExtensions()) { event.getPresentation().setVisible(false); return;/*w w w . j av a 2s .co m*/ } Presentation presentation = event.getPresentation(); DataContext dataContext = event.getDataContext(); Project project = CommonDataKeys.PROJECT.getData(dataContext); if (project == null) { presentation.setEnabled(false); return; } final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); final Editor editor = BaseCodeInsightAction.getInjectedEditor(project, CommonDataKeys.EDITOR.getData(dataContext), false); if (editor != null) { PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null || !isOptimizeImportsAvailable(file)) { presentation.setEnabled(false); return; } } else if (files != null && ReformatCodeAction.areFiles(files)) { boolean anyHasOptimizeImports = false; for (VirtualFile virtualFile : files) { PsiFile file = PsiManager.getInstance(project).findFile(virtualFile); if (file == null) { presentation.setEnabled(false); return; } if (isOptimizeImportsAvailable(file)) { anyHasOptimizeImports = true; } } if (!anyHasOptimizeImports) { presentation.setEnabled(false); return; } } else if (files != null && files.length == 1) { // skip. Both directories and single files are supported. } else if (LangDataKeys.MODULE_CONTEXT.getData(dataContext) == null && PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext) == null) { PsiElement element = CommonDataKeys.PSI_ELEMENT.getData(dataContext); if (element == null) { presentation.setEnabled(false); return; } if (!(element instanceof PsiDirectory)) { PsiFile file = element.getContainingFile(); if (file == null || !isOptimizeImportsAvailable(file)) { presentation.setEnabled(false); return; } } } presentation.setEnabled(true); }
From source file:com.intellij.codeInsight.actions.ReformatCodeAction.java
License:Apache License
@Override public void actionPerformed(AnActionEvent event) { DataContext dataContext = event.getDataContext(); final Project project = CommonDataKeys.PROJECT.getData(dataContext); if (project == null) { return;//from w w w .j a v a2s. c o m } PsiDocumentManager.getInstance(project).commitAllDocuments(); final Editor editor = CommonDataKeys.EDITOR.getData(dataContext); final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); if (files == null) { return; } PsiFile file = null; final PsiDirectory dir; boolean hasSelection = false; if (editor != null) { file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) return; dir = file.getContainingDirectory(); hasSelection = editor.getSelectionModel().hasSelection(); } else if (areFiles(files)) { final ReadonlyStatusHandler.OperationStatus operationStatus = ReadonlyStatusHandler.getInstance(project) .ensureFilesWritable(files); if (!operationStatus.hasReadonlyFiles()) { ReformatFilesOptions selectedFlags = getReformatFilesOptions(project, files); if (selectedFlags == null) return; final boolean processOnlyChangedText = selectedFlags.isProcessOnlyChangedText(); final boolean shouldOptimizeImports = selectedFlags.isOptimizeImports() && !DumbService.getInstance(project).isDumb(); AbstractLayoutCodeProcessor processor = new ReformatCodeProcessor(project, convertToPsiFiles(files, project), null, processOnlyChangedText); if (shouldOptimizeImports) { processor = new OptimizeImportsProcessor(processor); } if (selectedFlags.isRearrangeEntries()) { processor = new RearrangeCodeProcessor(processor, null); } processor.run(); } return; } else { Project projectContext = PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext); Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); if (projectContext != null || moduleContext != null) { ReformatFilesOptions selectedFlags = getLayoutProjectOptions(project, moduleContext); // module menu - only 2 options available if (selectedFlags != null) { reformatModule(project, moduleContext, selectedFlags); } return; } PsiElement element = CommonDataKeys.PSI_ELEMENT.getData(dataContext); if (element == null) return; if (element instanceof PsiDirectoryContainer) { dir = ((PsiDirectoryContainer) element).getDirectories()[0]; } else if (element instanceof PsiDirectory) { dir = (PsiDirectory) element; } else { file = element.getContainingFile(); if (file == null) return; dir = file.getContainingDirectory(); } } boolean optimizeImports = ReformatFilesDialog.isOptmizeImportsOptionOn(); boolean processWholeFile = false; boolean processChangedTextOnly = PropertiesComponent.getInstance() .getBoolean(LayoutCodeConstants.PROCESS_CHANGED_TEXT_KEY, false); boolean rearrangeEntries = getLastSavedRearrangeCbState(project, file); final boolean showDialog = EditorSettingsExternalizable.getInstance().getOptions().SHOW_REFORMAT_DIALOG; if (showDialog || (file == null && dir != null)) { LayoutCodeOptions selectedFlags = getLayoutCodeOptions(project, file, dir, hasSelection); if (selectedFlags == null) return; optimizeImports = selectedFlags.isOptimizeImports(); rearrangeEntries = selectedFlags.isRearrangeEntries(); processWholeFile = selectedFlags.isProcessWholeFile(); processChangedTextOnly = selectedFlags.isProcessOnlyChangedText(); if (selectedFlags.isProcessDirectory()) { AbstractLayoutCodeProcessor processor = new ReformatCodeProcessor(project, dir, selectedFlags.isIncludeSubdirectories(), processChangedTextOnly); if (optimizeImports) { processor = new OptimizeImportsProcessor(processor); } if (selectedFlags.isRearrangeEntries()) { processor = new RearrangeCodeProcessor(processor, null); } processor.run(); return; } } final TextRange range; if (!processWholeFile && editor != null && editor.getSelectionModel().hasSelection()) { range = TextRange.create(editor.getSelectionModel().getSelectionStart(), editor.getSelectionModel().getSelectionEnd()); } else { range = null; } if (optimizeImports && range == null) { if (file != null || dir == null) { new OptimizeImportsProcessor(new ReformatCodeProcessor(project, file, null, processChangedTextOnly)) .run(); } else { new OptimizeImportsProcessor(new ReformatCodeProcessor(project, dir, true, processChangedTextOnly)) .run(); } } else { new ReformatCodeProcessor(project, file, range, processChangedTextOnly).run(); } if (rearrangeEntries && file != null && editor != null) { final ArrangementEngine engine = ServiceManager.getService(project, ArrangementEngine.class); try { final PsiFile finalFile = file; SelectionModel selectionModel = editor.getSelectionModel(); final TextRange rangeToUse = selectionModel.hasSelection() ? TextRange.create(selectionModel.getSelectionStart(), selectionModel.getSelectionEnd()) : TextRange.create(0, editor.getDocument().getTextLength()); CommandProcessor.getInstance().executeCommand(project, new Runnable() { @Override public void run() { engine.arrange(finalFile, Collections.singleton(rangeToUse)); } }, getTemplatePresentation().getText(), null); } finally { PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); } } }
From source file:com.intellij.codeInsight.actions.ReformatCodeAction.java
License:Apache License
@Override public void update(AnActionEvent event) { Presentation presentation = event.getPresentation(); DataContext dataContext = event.getDataContext(); Project project = CommonDataKeys.PROJECT.getData(dataContext); if (project == null) { presentation.setEnabled(false);// www . j av a 2s . c o m return; } Editor editor = CommonDataKeys.EDITOR.getData(dataContext); final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); if (editor != null) { PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null || file.getVirtualFile() == null) { presentation.setEnabled(false); return; } if (LanguageFormatting.INSTANCE.forContext(file) != null) { presentation.setEnabled(true); return; } } else if (files != null && areFiles(files)) { boolean anyFormatters = false; for (VirtualFile virtualFile : files) { if (virtualFile.isDirectory()) { presentation.setEnabled(false); return; } final PsiFile psiFile = PsiManager.getInstance(project).findFile(virtualFile); if (psiFile == null) { presentation.setEnabled(false); return; } final FormattingModelBuilder builder = LanguageFormatting.INSTANCE.forContext(psiFile); if (builder != null) { anyFormatters = true; } } if (!anyFormatters) { presentation.setEnabled(false); return; } } else if (files != null && files.length == 1) { // skip. Both directories and single files are supported. } else if (LangDataKeys.MODULE_CONTEXT.getData(dataContext) == null && PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext) == null) { PsiElement element = CommonDataKeys.PSI_ELEMENT.getData(dataContext); if (element == null) { presentation.setEnabled(false); return; } if (!(element instanceof PsiDirectory)) { PsiFile file = element.getContainingFile(); if (file == null || LanguageFormatting.INSTANCE.forContext(file) == null) { presentation.setEnabled(false); return; } } } presentation.setEnabled(true); }
From source file:com.intellij.cyclicDependencies.actions.CyclicDependenciesAction.java
License:Apache License
@Nullable private static AnalysisScope getInspectionScopeImpl(DataContext dataContext) { //Possible scopes: package, project, module. Project projectContext = PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext); if (projectContext != null) { return null; }/*from w w w . ja v a 2 s. co m*/ Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); if (moduleContext != null) { return null; } Module[] modulesArray = LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataContext); if (modulesArray != null) { return new AnalysisScope(modulesArray); } PsiElement psiTarget = LangDataKeys.PSI_ELEMENT.getData(dataContext); if (psiTarget instanceof PsiDirectory) { PsiDirectory psiDirectory = (PsiDirectory) psiTarget; if (!psiDirectory.getManager().isInProject(psiDirectory)) return null; return new AnalysisScope(psiDirectory); } else if (psiTarget instanceof PsiJavaPackage) { PsiJavaPackage pack = (PsiJavaPackage) psiTarget; PsiDirectory[] dirs = pack.getDirectories(GlobalSearchScope.projectScope(pack.getProject())); if (dirs.length == 0) return null; return new JavaAnalysisScope(pack, LangDataKeys.MODULE.getData(dataContext)); } return null; }
From source file:com.intellij.ide.impl.dataRules.VirtualFileArrayRule.java
License:Apache License
@Override public Object getData(final DataProvider dataProvider) { // Try to detect multiselection. Project project = PlatformDataKeys.PROJECT_CONTEXT.getData(dataProvider); if (project != null && !project.isDisposed()) { return ProjectRootManager.getInstance(project).getContentRoots(); }/*from w ww . j a va 2 s . c o m*/ Module[] selectedModules = LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataProvider); if (selectedModules != null && selectedModules.length > 0) { return getFilesFromModules(selectedModules); } Module selectedModule = LangDataKeys.MODULE_CONTEXT.getData(dataProvider); if (selectedModule != null && !selectedModule.isDisposed()) { return ModuleRootManager.getInstance(selectedModule).getContentRoots(); } PsiElement[] psiElements = LangDataKeys.PSI_ELEMENT_ARRAY.getData(dataProvider); if (psiElements != null && psiElements.length != 0) { return getFilesFromPsiElements(psiElements); } // VirtualFile -> VirtualFile[] VirtualFile vFile = PlatformDataKeys.VIRTUAL_FILE.getData(dataProvider); if (vFile != null) { return new VirtualFile[] { vFile }; } // PsiFile psiFile = LangDataKeys.PSI_FILE.getData(dataProvider); if (psiFile != null && psiFile.getVirtualFile() != null) { return new VirtualFile[] { psiFile.getVirtualFile() }; } PsiElement elem = LangDataKeys.PSI_ELEMENT.getData(dataProvider); if (elem != null) { return getFilesFromPsiElement(elem); } Usage[] usages = UsageView.USAGES_KEY.getData(dataProvider); UsageTarget[] usageTargets = UsageView.USAGE_TARGETS_KEY.getData(dataProvider); if (usages != null || usageTargets != null) { return UsageDataUtil.provideVirtualFileArray(usages, usageTargets); } return null; }
From source file:com.maddyhome.idea.copyright.actions.UpdateCopyrightAction.java
License:Apache License
private static boolean isEnabled(AnActionEvent event) { final DataContext context = event.getDataContext(); final Project project = CommonDataKeys.PROJECT.getData(context); if (project == null) { return false; }//from w ww . ja v a 2 s .com if (!CopyrightManager.getInstance(project).hasAnyCopyrights()) { return false; } final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(context); final Editor editor = CommonDataKeys.EDITOR.getData(context); if (editor != null) { final PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null || !CopyrightUpdaters.hasExtension(file)) { return false; } } else if (files != null && FileUtil.areFiles(files)) { boolean copyrightEnabled = false; for (VirtualFile vfile : files) { if (CopyrightUpdaters.hasExtension(vfile)) { copyrightEnabled = true; break; } } if (!copyrightEnabled) { return false; } } else if ((files == null || files.length != 1) && LangDataKeys.MODULE_CONTEXT.getData(context) == null && LangDataKeys.MODULE_CONTEXT_ARRAY.getData(context) == null && PlatformDataKeys.PROJECT_CONTEXT.getData(context) == null) { final PsiElement[] elems = LangDataKeys.PSI_ELEMENT_ARRAY.getData(context); if (elems != null) { boolean copyrightEnabled = false; for (PsiElement elem : elems) { if (!(elem instanceof PsiDirectory)) { final PsiFile file = elem.getContainingFile(); if (file == null || !CopyrightUpdaters.hasExtension(file.getVirtualFile())) { copyrightEnabled = true; break; } } } if (!copyrightEnabled) { return false; } } } return true; }
From source file:krasa.formatter.action.OptimizeImportsAction.java
License:Apache License
public static void actionPerformedImpl(final DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); if (project == null) { return;/*from w w w . java 2 s .c om*/ } PsiDocumentManager.getInstance(project).commitAllDocuments(); final Editor editor = BaseCodeInsightAction.getInjectedEditor(project, PlatformDataKeys.EDITOR.getData(dataContext)); final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); PsiFile file = null; PsiDirectory dir; if (editor != null) { file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) return; dir = file.getContainingDirectory(); } else if (files != null && ReformatCodeAction.areFiles(files)) { final ReadonlyStatusHandler.OperationStatus operationStatus = ReadonlyStatusHandler.getInstance(project) .ensureFilesWritable(files); if (!operationStatus.hasReadonlyFiles()) { new OptimizeImportsProcessor(project, ReformatCodeAction.convertToPsiFiles(files, project), null) .run(); } return; } else { Project projectContext = PlatformDataKeys.PROJECT_CONTEXT.getData(dataContext); Module moduleContext = LangDataKeys.MODULE_CONTEXT.getData(dataContext); if (projectContext != null || moduleContext != null) { final String text; if (moduleContext != null) { text = CodeInsightBundle.message("process.scope.module", moduleContext.getName()); } else { text = CodeInsightBundle.message("process.scope.project", projectContext.getPresentableUrl()); } LayoutProjectCodeDialog dialog = new LayoutProjectCodeDialog(project, null, CodeInsightBundle.message("process.optimize.imports"), text, false); dialog.show(); if (!dialog.isOK()) return; if (moduleContext != null) { new OptimizeImportsProcessor(project, moduleContext).run(); } else { new OptimizeImportsProcessor(projectContext).run(); } return; } PsiElement element = LangDataKeys.PSI_ELEMENT.getData(dataContext); if (element == null) return; if (element instanceof PsiDirectoryContainer) { dir = ((PsiDirectoryContainer) element).getDirectories()[0]; } else if (element instanceof PsiDirectory) { dir = (PsiDirectory) element; } else { file = element.getContainingFile(); if (file == null) return; dir = file.getContainingDirectory(); } } boolean processDirectory; boolean includeSubdirectories; if (ApplicationManager.getApplication().isUnitTestMode()) { includeSubdirectories = processDirectory = false; } else if (!EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG && file != null) { includeSubdirectories = processDirectory = false; } else { // final LayoutCodeDialog dialog = new LayoutCodeDialog(project, // CodeInsightBundle.message("process.optimize.imports"), file, dir, null, HELP_ID); // dialog.show(); // if (!dialog.isOK()) return; // // EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG = // !dialog.isDoNotAskMe(); // EditorSettingsExternalizable.getInstance().getOptions().SHOW_OPIMIZE_IMPORTS_DIALOG = false; // ReformatCodeAction.updateShowDialogSetting(dialog, "\"Optimize Imports\" dialog disabled"); // processDirectory = dialog.isProcessDirectory(); // includeSubdirectories = dialog.isIncludeSubdirectories(); processDirectory = file == null; includeSubdirectories = true; } if (processDirectory) { new OptimizeImportsProcessor(project, dir, includeSubdirectories).run(); } else { new OptimizeImportsProcessor(project, file).run(); } }