Example usage for com.intellij.openapi.fileChooser FileChooserDescriptor setRoots

List of usage examples for com.intellij.openapi.fileChooser FileChooserDescriptor setRoots

Introduction

In this page you can find the example usage for com.intellij.openapi.fileChooser FileChooserDescriptor setRoots.

Prototype

public void setRoots(@NotNull List<? extends VirtualFile> roots) 

Source Link

Usage

From source file:com.android.tools.idea.gradle.structure.editors.ModuleDependenciesPanel.java

License:Apache License

private void addFileDependency() {
    FileChooserDescriptor descriptor = new FileChooserDescriptor(false, false, true, true, false, false);
    VirtualFile buildFile = myGradleBuildFile.getFile();
    VirtualFile parent = buildFile.getParent();
    descriptor.setRoots(parent);
    VirtualFile virtualFile = FileChooser.chooseFile(descriptor, myProject, null);
    if (virtualFile != null) {
        String path = VfsUtilCore.getRelativePath(virtualFile, parent, '/');
        if (path == null) {
            path = virtualFile.getPath();
        }//ww  w  .  ja  v  a2 s . c  om
        myModel.addItem(new ModuleDependenciesTableItem(
                new Dependency(Dependency.Scope.COMPILE, Dependency.Type.FILES, path)));
    }
    myModel.fireTableDataChanged();
}

From source file:com.goide.runconfig.GoRunUtil.java

License:Apache License

public static void installFileChooser(@Nonnull Project project, @Nonnull ComponentWithBrowseButton field,
        boolean directory, boolean showFileSystemRoots, @Nullable Condition<VirtualFile> fileFilter) {
    FileChooserDescriptor chooseDirectoryDescriptor = directory
            ? FileChooserDescriptorFactory.createSingleFolderDescriptor()
            : FileChooserDescriptorFactory.createSingleLocalFileDescriptor();
    chooseDirectoryDescriptor.setRoots(project.getBaseDir());
    chooseDirectoryDescriptor.setShowFileSystemRoots(showFileSystemRoots);
    chooseDirectoryDescriptor.withFileFilter(fileFilter);
    if (field instanceof TextFieldWithBrowseButton) {
        ((TextFieldWithBrowseButton) field)
                .addBrowseFolderListener(new TextBrowseFolderListener(chooseDirectoryDescriptor, project));
    } else {/*from  ww w. j  a va 2s.co m*/
        //noinspection unchecked
        field.addBrowseFolderListener(project,
                new ComponentWithBrowseButton.BrowseFolderActionListener(null, null, field, project,
                        chooseDirectoryDescriptor, TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT));
    }
}

From source file:com.intellij.appengine.facet.AppEngineFacetEditor.java

License:Apache License

private void doAdd() {
    final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, false, false, false, true);
    final ModuleRootModel rootModel = myContext.getRootModel();
    descriptor.setRoots(rootModel.getSourceRoots(JavaModuleSourceRootTypes.SOURCES));
    final VirtualFile[] files = FileChooser.chooseFiles(descriptor, myContext.getProject(), null);
    for (VirtualFile file : files) {
        myFilesListModel.addElement(file.getPath());
    }//  ww  w.  j  a v  a2s  .c o  m
}

From source file:com.intellij.gwt.run.GwtRunConfigurationEditor.java

License:Apache License

private FileChooserDescriptor createWebXmlChooserDescriptor() {
    FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false) {
        @Override//  w  w  w .  j  a v  a 2s  .co  m
        public boolean isFileVisible(final VirtualFile file, final boolean showHiddenFiles) {
            return super.isFileVisible(file, showHiddenFiles) && (file.isDirectory()
                    || file.getName().equals(DeploymentDescriptorsConstants.WEB_XML_META_DATA.getFileName()));
        }
    };
    final VirtualFile[] roots = ProjectRootManager.getInstance(myProject).getContentRoots();
    descriptor.setRoots(roots);
    return descriptor;
}

From source file:com.intellij.gwt.run.GwtRunConfigurationEditor.java

License:Apache License

private FileChooserDescriptor createHtmlFileChooserDescriptor() {
    final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false,
            false) {/*from  w  w w .j  a va2 s.  c  o m*/
        @Override
        public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) {
            return super.isFileVisible(file, showHiddenFiles) && (file.isDirectory()
                    || FileTypeManager.getInstance().getFileTypeByFile(file) == HtmlFileType.INSTANCE);
        }
    };
    final VirtualFile[] sourceRoots = ProjectRootManager.getInstance(myProject).getContentSourceRoots();
    descriptor.setRoots(sourceRoots);
    return descriptor;
}

From source file:com.intellij.platform.FilesystemToolwindow.java

License:Apache License

public FilesystemToolwindow(final VirtualFile root, Project project) {
    myRoot = root;/*from  w  w w.j av a 2  s .c  o m*/
    myProject = project;

    myToolWindow = ToolWindowManager.getInstance(project).registerToolWindow("File System", false,
            ToolWindowAnchor.LEFT);
    myContent = new MyContent();

    final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, true, false, true, true);
    descriptor.setRoots(myRoot);

    myFsTree = new FileSystemTreeImpl(project, descriptor);
    myContent.add(ScrollPaneFactory.createScrollPane(myFsTree.getTree()), BorderLayout.CENTER);
    EditSourceOnDoubleClickHandler.install(myFsTree.getTree());
    EditSourceOnEnterKeyHandler.install(myFsTree.getTree());

    final ContentFactory contentFactory = new ContentFactoryImpl();
    final Content content = contentFactory.createContent(myContent, null, false);
    myToolWindow.getContentManager().addContent(content);
}

From source file:com.intellij.vcs.log.ui.VcsStructureChooser.java

License:Apache License

@Override
protected JComponent createCenterPanel() {
    final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createAllButJarContentsDescriptor();
    calculateRoots();/*from w w w .  j  a  v a 2s.  c  o  m*/
    final ArrayList<VirtualFile> list = new ArrayList<VirtualFile>(myRoots);
    final Comparator<VirtualFile> comparator = new Comparator<VirtualFile>() {
        @Override
        public int compare(VirtualFile o1, VirtualFile o2) {
            final boolean isDir1 = o1.isDirectory();
            final boolean isDir2 = o2.isDirectory();
            if (isDir1 != isDir2)
                return isDir1 ? -1 : 1;

            final String module1 = myModulesSet.get(o1);
            final String path1 = module1 != null ? module1 : o1.getPath();
            final String module2 = myModulesSet.get(o2);
            final String path2 = module2 != null ? module2 : o2.getPath();
            return path1.compareToIgnoreCase(path2);
        }
    };
    descriptor.setRoots(list);
    myTree = new Tree();
    myTree.setMinimumSize(new Dimension(200, 200));
    myTree.setBorder(BORDER);
    myTree.setShowsRootHandles(true);
    myTree.setRootVisible(true);
    myTree.getExpandableItemsHandler().setEnabled(false);
    final MyCheckboxTreeCellRenderer cellRenderer = new MyCheckboxTreeCellRenderer(mySelectionManager,
            myModulesSet, myProject, myTree, myRoots);
    final FileSystemTreeImpl fileSystemTree = new FileSystemTreeImpl(myProject, descriptor, myTree,
            cellRenderer, null, new Convertor<TreePath, String>() {
                @Override
                public String convert(TreePath o) {
                    final DefaultMutableTreeNode lastPathComponent = ((DefaultMutableTreeNode) o
                            .getLastPathComponent());
                    final Object uo = lastPathComponent.getUserObject();
                    if (uo instanceof FileNodeDescriptor) {
                        final VirtualFile file = ((FileNodeDescriptor) uo).getElement().getFile();
                        final String module = myModulesSet.get(file);
                        if (module != null)
                            return module;
                        return file == null ? "" : file.getName();
                    }
                    return o.toString();
                }
            });
    final AbstractTreeUi ui = fileSystemTree.getTreeBuilder().getUi();
    ui.setNodeDescriptorComparator(new Comparator<NodeDescriptor>() {
        @Override
        public int compare(NodeDescriptor o1, NodeDescriptor o2) {
            if (o1 instanceof FileNodeDescriptor && o2 instanceof FileNodeDescriptor) {
                final VirtualFile f1 = ((FileNodeDescriptor) o1).getElement().getFile();
                final VirtualFile f2 = ((FileNodeDescriptor) o2).getElement().getFile();
                return comparator.compare(f1, f2);
            }
            return o1.getIndex() - o2.getIndex();
        }
    });
    myRoot = (DefaultMutableTreeNode) myTree.getModel().getRoot();

    new ClickListener() {
        @Override
        public boolean onClick(@NotNull MouseEvent e, int clickCount) {
            int row = myTree.getRowForLocation(e.getX(), e.getY());
            if (row < 0)
                return false;
            final Object o = myTree.getPathForRow(row).getLastPathComponent();
            if (myRoot == o || getFile(o) == null)
                return false;

            Rectangle rowBounds = myTree.getRowBounds(row);
            cellRenderer.setBounds(rowBounds);
            Rectangle checkBounds = cellRenderer.myCheckbox.getBounds();
            checkBounds.setLocation(rowBounds.getLocation());

            if (checkBounds.height == 0)
                checkBounds.height = rowBounds.height;

            if (checkBounds.contains(e.getPoint())) {
                mySelectionManager.toggleSelection((DefaultMutableTreeNode) o);
                myTree.revalidate();
                myTree.repaint();
            }
            return true;
        }
    }.installOn(myTree);

    myTree.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_SPACE) {
                TreePath[] paths = myTree.getSelectionPaths();
                if (paths == null)
                    return;
                for (TreePath path : paths) {
                    if (path == null)
                        continue;
                    final Object o = path.getLastPathComponent();
                    if (myRoot == o || getFile(o) == null)
                        return;
                    mySelectionManager.toggleSelection((DefaultMutableTreeNode) o);
                }

                myTree.revalidate();
                myTree.repaint();
                e.consume();
            }
        }
    });

    JBPanel panel = new JBPanel(new BorderLayout());
    panel.add(new JBScrollPane(fileSystemTree.getTree()), BorderLayout.CENTER);
    mySelectedLabel = new JLabel("");
    mySelectedLabel.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
    panel.add(mySelectedLabel, BorderLayout.SOUTH);

    mySelectionManager.setSelectionChangeListener(new PlusMinus<VirtualFile>() {
        @Override
        public void plus(VirtualFile virtualFile) {
            mySelectedFiles.add(virtualFile);
            recalculateErrorText();
        }

        private void recalculateErrorText() {
            checkEmpty();
            if (mySelectionManager.canAddSelection()) {
                mySelectedLabel.setText("");
            } else {
                mySelectedLabel.setText(CAN_NOT_ADD_TEXT);
            }
            mySelectedLabel.revalidate();
        }

        @Override
        public void minus(VirtualFile virtualFile) {
            mySelectedFiles.remove(virtualFile);
            recalculateErrorText();
        }
    });
    return panel;
}

From source file:com.kstenschke.clearcache.resources.forms.PluginConfiguration.java

License:Apache License

/**
 * Initialize the form: render project tree, select nodes from project preference
 *///from w w w  . ja v  a2  s.c o m
private void InitForm() {
    // Init checkbox options' states
    directoriesCheckBox.setSelected(ClearCachePreferences.getDeleteDirectories());
    hiddenFilesAndDirectoriesCheckBox.setSelected(ClearCachePreferences.getDeleteHidden());

    textFieldIgnorePatterns.setText(ClearCachePreferences.getIgnorePatterns());

    // Add project files tree, select directories from user's project preference
    FileSystemTreeFactory treeFactory = new FileSystemTreeFactoryImpl();
    FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);

    Project[] projects = ProjectManager.getInstance().getOpenProjects();
    Project project = projects[0];

    if (project != null) {
        VirtualFile baseDir = project.getBaseDir();
        descriptor.setRoots(baseDir);
        //         descriptor.setIsTreeRootVisible(true);

        FileSystemTree tree = treeFactory.createFileSystemTree(project, descriptor);

        // Enable multi-selection
        projectTree = tree.getTree();
        projectTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

        // Find+select directories in project file-tree, that are contained in preference also
        SelectedDirectoriesCollector selFilesCollector = new SelectedDirectoriesCollector(baseDir);
        VirtualFile[] selectedDirectories = selFilesCollector.getSelectedVFDirectories();

        if (selectedDirectories != null) {
            tree.select(selectedDirectories, null);
        }

        tree.updateTree();

        // Add project folders tree to settings component
        JScrollPane jscrollPane = new JScrollPane(projectTree);
        rootPanel.add(jscrollPane);
    }

    // Setup changeListener on checkboxes- checking delete hidden checks also delete directories
    hiddenFilesAndDirectoriesCheckBox.addItemListener(new ItemListener() {
        @Override
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                directoriesCheckBox.setSelected(true);
            }
        }
    });
}

From source file:com.kstenschke.sweep.resources.forms.SweepConfiguration.java

License:Apache License

/**
 * Initialize the form: render project tree, select nodes from project preference
 */// w w w.  j a v a2 s  .co  m
private void InitForm() {
    // Init checkbox options' states
    directoriesCheckBox.setSelected(SweepPreferences.getDeleteDirectories());
    hiddenFilesAndDirectoriesCheckBox.setSelected(SweepPreferences.getDeleteHidden());

    textFieldIgnorePatterns.setText(SweepPreferences.getIgnorePatterns());

    // Add project files tree, select directories from user's project preference
    FileSystemTreeFactory treeFactory = new FileSystemTreeFactoryImpl();
    FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);

    Project[] projects = ProjectManager.getInstance().getOpenProjects();
    if (projects.length > 0) {
        Project project = projects[0];

        if (project != null) {
            VirtualFile baseDir = project.getBaseDir();
            descriptor.setRoots(baseDir);
            FileSystemTree tree = treeFactory.createFileSystemTree(project, descriptor);

            // Enable multi-selection
            projectTree = tree.getTree();
            projectTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

            // Find+select directories in project file-tree, that are contained in preference also
            SelectedDirectoriesCollector selFilesCollector = new SelectedDirectoriesCollector(baseDir);
            VirtualFile[] selectedDirectories = selFilesCollector.getSelectedVFDirectories();

            if (selectedDirectories != null) {
                tree.select(selectedDirectories, null);
            }

            tree.updateTree();

            // Add project folders tree to settings component
            JBScrollPane jbScrollPane = new JBScrollPane(projectTree);
            rootPanel.add(jbScrollPane);
        }

        // Setup changeListener on checkboxes- checking delete hidden checks also delete directories
        hiddenFilesAndDirectoriesCheckBox.addItemListener(e -> {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                directoriesCheckBox.setSelected(true);
            }
        });
    }
}

From source file:com.perl5.lang.perl.idea.configuration.settings.sdk.PerlContentEntriesTreeEditor.java

License:Apache License

public PerlContentEntriesTreeEditor(@NotNull Module module, @NotNull Disposable parentDisposable) {
    Disposer.register(parentDisposable, this);

    List<PerlSourceRootType> types = ContainerUtil.newArrayList();
    Perl5SettingsConfigurableExtension.forEach(extension -> types.addAll(extension.getSourceRootTypes()));

    for (PerlSourceRootType type : types) {
        myEditingActionsGroup.add(new PerlToggleSourceRootAction(this, type.getEditHandler()));
    }/*w ww  .j a  v a 2  s  .  c  o m*/

    myModule = module;

    VirtualFile[] contentRoots = ModuleRootManager.getInstance(myModule).getContentRoots();
    myTree.setRootVisible(contentRoots.length < 2);
    myTree.setShowsRootHandles(true);
    TreeUtil.installActions(myTree);
    new TreeSpeedSearch(myTree);
    //myTree.setPreferredSize(new Dimension(250, -1));

    myTreePanel = new JPanel(new GridBagLayout());

    ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar("PerlContentEntries",
            myEditingActionsGroup, true);
    myTreePanel.add(new JLabel("Mark as:"),
            new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, 0, JBUI.insets(0, 10), 0, 0));
    myTreePanel.add(actionToolbar.getComponent(), new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0,
            GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, JBUI.emptyInsets(), 0, 0));

    final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(myTree, true);
    myTreePanel.add(scrollPane, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 1.0,
            GridBagConstraints.WEST, GridBagConstraints.BOTH, JBUI.emptyInsets(), 0, 0));

    myTreePanel.setVisible(true);
    FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createMultipleFoldersDescriptor();
    descriptor.setShowFileSystemRoots(false);
    descriptor.setRoots(contentRoots);

    myFileSystemTree = new FileSystemTreeImpl(module.getProject(), descriptor, myTree, new MyTreeCellRenderer(),
            () -> {
                myFileSystemTree.updateTree();
                //myFileSystemTree.select(file, null);
            }, null) {
        @Override
        protected AbstractTreeBuilder createTreeBuilder(JTree tree, DefaultTreeModel treeModel,
                AbstractTreeStructure treeStructure, Comparator<NodeDescriptor> comparator,
                FileChooserDescriptor descriptor, @Nullable Runnable onInitialized) {
            return new MyFileTreeBuilder(tree, treeModel, treeStructure, comparator, descriptor, onInitialized);
        }
    };
    myFileSystemTree.showHiddens(true);
    Disposer.register(this, myFileSystemTree);

    final NewFolderAction newFolderAction = new MyNewFolderAction();
    final DefaultActionGroup mousePopupGroup = new DefaultActionGroup();
    mousePopupGroup.add(myEditingActionsGroup);
    mousePopupGroup.addSeparator();
    mousePopupGroup.add(newFolderAction);
    myFileSystemTree.registerMouseListener(mousePopupGroup);
}