2015-12-15 88 views
1

我正在开发一个IntelliJ-IDEA插件。FileChooser仅适用于当前项目中的单个目录

我想使用他们的FileChooser类来选择当前项目中的单个目录。

这是我到目前为止有:

public class MyAction extends AnAction { 
    public void actionPerformed(AnActionEvent actionEvent) { 
     com.intellij.openapi.project.Project project = actionEvent.getProject(); 
     final DataContext dataContext = actionEvent.getDataContext(); 
     assert project != null; 
     final PsiFile currentFile = DataKeys.PSI_FILE.getData(dataContext); 
     VirtualFile chooseFile = project.getBaseDir(); 
     if (currentFile != null) { 
      chooseFile = currentFile.getVirtualFile(); 
     } 
     FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); 
     chooseFile = FileChooser.chooseFile(descriptor, project, chooseFile); 
     if (chooseFile == null) { 
      return; 
     } 
     ... do stuff with the file 
    } 
} 

我想限制文件选择将仅在当前的IDEA项目显示文件。 FileChooser应该使其不可能选择其他任何东西,或者如果用户选择其他东西,则显示错误。有没有办法做到这一点?

回答

1

你可能会想要做这样的事情:

descriptor.setRoots(ProjectRootManager.getInstance(project).getContentRoots()); 
+0

我将不得不尝试这个!我确认它可以工作后我会回来。 – michaelsnowden

相关问题