FileChooser仅适用于当前项目中的单个目录

时间:2015-12-15 06:45:12

标签: intellij-plugin

我正在开发一个IntelliJ-IDEA插件。

我正在尝试使用他们的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
    }
}

我想将FileChooser限制为仅显示当前IDEA项目中的文件。 FileChooser应该使其无法选择任何其他内容,或者如果用户确实选择了其他内容则显示错误。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

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

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