List of usage examples for com.intellij.openapi.fileChooser FileChooserDescriptor setRoots
public void setRoots(@NotNull List<? extends VirtualFile> roots)
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); }