Example usage for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT

List of usage examples for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT

Introduction

In this page you can find the example usage for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT.

Prototype

DataKey PREFER_LAST_OVER_EXPLICIT

To view the source code for com.intellij.openapi.fileChooser PathChooserDialog PREFER_LAST_OVER_EXPLICIT.

Click Source Link

Usage

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);
            }
        }
    });
}