List of usage examples for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT
DataKey PREFER_LAST_OVER_EXPLICIT
To view the source code for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT.
Click Source Link
From source file:com.android.tools.idea.actions.AndroidOpenFileAction.java
License:Apache License
@Override public void actionPerformed(AnActionEvent e) { Project project = e.getProject();/*from w w w. j a v a 2s .c o m*/ boolean showFiles = project != null || PlatformProjectOpenProcessor.getInstanceIfItExists() != null; FileChooserDescriptor descriptor = showFiles ? new ProjectOrFileChooserDescriptor() : new ProjectOnlyFileChooserDescriptor(); descriptor.putUserData(PathChooserDialog.PREFER_LAST_OVER_EXPLICIT, showFiles); VirtualFile explicitPreferredDirectory = ((project != null) && !project.isDefault()) ? project.getBaseDir() : getUserHomeDir(); chooseFiles(descriptor, project, explicitPreferredDirectory, files -> { for (VirtualFile file : files) { if (!descriptor.isFileSelectable(file)) { String message = IdeBundle.message("error.dir.contains.no.project", file.getPresentableUrl()); Messages.showInfoMessage(project, message, IdeBundle.message("title.cannot.open.project")); return; } } doOpenFile(project, files); }); }
From source file:com.intellij.ide.actions.OpenFileAction.java
License:Apache License
@Override public void actionPerformed(AnActionEvent e) { @Nullable//from w w w . j a v a 2s . co m final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext()); final boolean showFiles = project != null; final FileChooserDescriptor descriptor = new OpenProjectFileChooserDescriptor(true) { @Override public boolean isFileSelectable(VirtualFile file) { if (super.isFileSelectable(file)) { return true; } if (file.isDirectory()) { return false; } return showFiles && !FileElement.isArchive(file); } @Override public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) { if (!file.isDirectory() && isFileSelectable(file)) { if (!showHiddenFiles && FileElement.isFileHidden(file)) return false; return true; } return super.isFileVisible(file, showHiddenFiles); } @Override public boolean isChooseMultiple() { return showFiles; } }; descriptor.setTitle(showFiles ? "Open File or Project" : "Open Project"); VirtualFile userHomeDir = null; if (SystemInfo.isUnix) { userHomeDir = VfsUtil.getUserHomeDir(); } descriptor.putUserData(PathChooserDialog.PREFER_LAST_OVER_EXPLICIT, Boolean.TRUE); FileChooser.chooseFiles(descriptor, project, userHomeDir, new Consumer<List<VirtualFile>>() { @Override public void consume(final List<VirtualFile> files) { for (VirtualFile file : files) { if (!descriptor.isFileSelectable(file)) { // on Mac, it could be selected anyway Messages.showInfoMessage(project, file.getPresentableUrl() + " contains no " + ApplicationNamesInfo.getInstance().getFullProductName() + " project", "Cannot Open Project"); return; } } doOpenFile(project, files); } }); }
From source file:com.intellij.ide.actions.OpenProjectAction.java
License:Apache License
@Override public void actionPerformed(AnActionEvent e) { final FileChooserDescriptor descriptor = new OpenProjectFileChooserDescriptor(true); descriptor.setTitle(IdeBundle.message("title.open.project")); final Set<String> extensions = new LinkedHashSet<String>(); for (ProjectOpenProcessor openProcessor : ProjectOpenProcessor.EXTENSION_POINT_NAME.getExtensions()) { if (openProcessor instanceof ProjectOpenProcessorBase) { final String[] supportedExtensions = ((ProjectOpenProcessorBase) openProcessor) .getSupportedExtensions(); if (supportedExtensions != null) { Collections.addAll(extensions, supportedExtensions); }/* w ww .j av a 2s.c o m*/ } } if (extensions.isEmpty()) { descriptor.setDescription(IdeBundle.message("filter.project.directories")); } else { descriptor.setDescription(IdeBundle.message("filter.project.files", StringUtil.join(extensions, ", "))); } VirtualFile userHomeDir = null; if (SystemInfo.isUnix) { userHomeDir = VfsUtil.getUserHomeDir(); } descriptor.putUserData(PathChooserDialog.PREFER_LAST_OVER_EXPLICIT, Boolean.TRUE); final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext()); FileChooser.chooseFiles(descriptor, project, userHomeDir, new Consumer<List<VirtualFile>>() { @Override public void consume(final List<VirtualFile> files) { if (files.size() == 1) { ProjectUtil.openOrImport(files.get(0).getPath(), project, false); } } }); }