files copied from native file manager can be pasted into IDEA (part of IDEADEV-40725)
[fedora-idea.git] / platform / lang-impl / src / com / intellij / ide / DataAccessors.java
blobee478281d7e548a37a74e9d726d3f4256a1b2895
1 package com.intellij.ide;
3 import com.intellij.openapi.actionSystem.DataConstants;
4 import com.intellij.openapi.actionSystem.DataContext;
5 import com.intellij.openapi.editor.Editor;
6 import com.intellij.openapi.fileEditor.FileEditorManager;
7 import com.intellij.openapi.module.Module;
8 import com.intellij.openapi.project.Project;
9 import com.intellij.openapi.project.ex.ProjectEx;
10 import com.intellij.openapi.vfs.VirtualFile;
11 import com.intellij.psi.*;
13 /**
14 * @author yole
16 public class DataAccessors {
17 public static final DataAccessor<Project> PROJECT = new DataAccessor.SimpleDataAccessor<Project>(DataConstants.PROJECT);
18 public static final DataAccessor<Module> MODULE = new DataAccessor.SimpleDataAccessor<Module>(DataConstants.MODULE);
19 public static final DataAccessor<Editor> EDITOR = new DataAccessor.SimpleDataAccessor<Editor>(DataConstants.EDITOR);
20 public static final DataAccessor<PsiManager> PSI_MANAGER = new DataAccessor<PsiManager>() {
21 public PsiManager getImpl(DataContext dataContext) throws NoDataException {
22 return PsiManager.getInstance(PROJECT.getNotNull(dataContext));
25 public static final DataAccessor<FileEditorManager> FILE_EDITOR_MANAGER = new DataAccessor<FileEditorManager>() {
26 public FileEditorManager getImpl(DataContext dataContext) throws NoDataException {
27 return FileEditorManager.getInstance(PROJECT.getNotNull(dataContext));
30 public static final DataAccessor<PsiFile> PSI_FILE = new DataAccessor<PsiFile>() {
31 public PsiFile getImpl(DataContext dataContext) throws NoDataException {
32 return PSI_MANAGER.getNotNull(dataContext).findFile(VIRTUAL_FILE.getNotNull(dataContext));
35 public static final DataAccessor<PsiElement> PSI_ELEMENT = new DataAccessor.SimpleDataAccessor<PsiElement>(DataConstants.PSI_ELEMENT);
36 public static final DataAccessor<PsiElement[]> PSI_ELEMENT_ARRAY = new DataAccessor.SimpleDataAccessor<PsiElement[]>(DataConstants.PSI_ELEMENT_ARRAY);
37 public static final DataAccessor<VirtualFile> VIRTUAL_FILE = new DataAccessor.SimpleDataAccessor<VirtualFile>(DataConstants.VIRTUAL_FILE);
38 public static final DataAccessor<VirtualFile[]> VIRTUAL_FILE_ARRAY = new DataAccessor.SimpleDataAccessor<VirtualFile[]>(DataConstants.VIRTUAL_FILE_ARRAY);
39 public static final DataAccessor<VirtualFile> VIRTUAL_DIR_OR_PARENT = new DataAccessor<VirtualFile>() {
40 public VirtualFile getImpl(DataContext dataContext) throws NoDataException {
41 VirtualFile virtualFile = VIRTUAL_FILE.getNotNull(dataContext);
42 return virtualFile.isDirectory() ? virtualFile : virtualFile.getParent();
45 /**
46 * @deprecated
48 public static final DataAccessor<String> PROJECT_FILE_PATH = new DataAccessor<String>() {
49 public String getImpl(DataContext dataContext) throws NoDataException {
50 Project project = PROJECT.getNotNull(dataContext);
51 return project.getProjectFilePath();
54 public static final DataAccessor<VirtualFile> PROJECT_BASE_DIR = new DataAccessor<VirtualFile>() {
55 public VirtualFile getImpl(DataContext dataContext) throws NoDataException {
56 Project project = PROJECT.getNotNull(dataContext);
57 return project.getBaseDir();
60 public static final DataAccessor<String> MODULE_FILE_PATH = new DataAccessor<String>() {
61 public String getImpl(DataContext dataContext) throws NoDataException {
62 Module module = MODULE.getNotNull(dataContext);
63 return module.getModuleFilePath();
66 public static final DataAccessor<ProjectEx> PROJECT_EX = new DataAccessor.SubClassDataAccessor<Project, ProjectEx>(PROJECT, ProjectEx.class);