Merge remote branch 'origin/master'

This commit is contained in:
Evgeny Zakrevsky
2011-07-28 16:30:59 +04:00
87 changed files with 346 additions and 339 deletions
@@ -49,9 +49,9 @@ public class JikesConfigurable implements Configurable{
myJikesPathFieldBrowseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
VirtualFile[] files = FileChooser.chooseFiles(myPathField, descriptor);
if (files.length != 0) {
myPathField.setText(files[0].getPath().replace('/', File.separatorChar));
VirtualFile file = FileChooser.chooseFile(myPathField, descriptor, null);
if (file != null) {
myPathField.setText(file.getPath().replace('/', File.separatorChar));
}
}
});
@@ -2,7 +2,7 @@ package com.intellij.compiler.options;
import com.intellij.compiler.CompilerConfiguration;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.options.ConfigurationException;
@@ -93,7 +93,7 @@ public class AnnotationProcessorsConfigurable implements SearchableConfigurable
myProcessorPathField = new TextFieldWithBrowseButton(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final VirtualFile[] files =
FileChooser.chooseFiles(myProcessorPathField, new FileChooserDescriptor(true, true, true, true, false, true));
FileChooser.chooseFiles(myProcessorPathField, FileChooserDescriptorFactory.createAllButJarContentsDescriptor());
if (files.length > 0) {
final StringBuilder builder = new StringBuilder();
for (VirtualFile file : files) {
@@ -15,9 +15,7 @@
*/
package com.intellij.packaging.impl.elements;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDialog;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.fileChooser.*;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.vfs.VirtualFile;
@@ -54,9 +52,8 @@ public class DirectoryCopyElementType extends PackagingElementType<DirectoryCopy
@NotNull
public List<? extends DirectoryCopyPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact,
@NotNull CompositePackagingElement<?> parent) {
final FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, true);
final FileChooserDialog chooser = FileChooserFactory.getInstance().createFileChooser(descriptor, context.getProject());
final VirtualFile[] files = chooser.choose(null, context.getProject());
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createMultipleFoldersDescriptor();
final VirtualFile[] files = FileChooser.chooseFiles(context.getProject(), descriptor);
final List<DirectoryCopyPackagingElement> list = new ArrayList<DirectoryCopyPackagingElement>();
for (VirtualFile file : files) {
list.add(new DirectoryCopyPackagingElement(file.getPath()));
@@ -261,12 +261,12 @@ public class ManifestFileUtil {
public static VirtualFile showDialogAndCreateManifest(final ArtifactEditorContext context, final CompositePackagingElement<?> element) {
FileChooserDescriptor descriptor = createDescriptorForManifestDirectory();
final VirtualFile directory = suggestManifestFileDirectory(element, context, context.getArtifactType());
final VirtualFile[] files = FileChooser.chooseFiles(context.getProject(), descriptor, directory);
if (files.length != 1) {
final VirtualFile file = FileChooser.chooseFile(context.getProject(), descriptor, directory);
if (file == null) {
return null;
}
return createManifestFile(files[0], context.getProject());
return createManifestFile(file, context.getProject());
}
@Nullable
@@ -105,10 +105,10 @@ public abstract class ElementWithManifestPropertiesPanel<E extends CompositeElem
}
};
descriptor.setTitle("Specify Path to MANIFEST.MF file");
final VirtualFile[] files = FileChooser.chooseFiles(myContext.getProject(), descriptor);
if (files.length != 1) return;
final VirtualFile file = FileChooser.chooseFile(myContext.getProject(), descriptor, null);
if (file == null) return;
ManifestFileUtil.addManifestFileToLayout(files[0].getPath(), myContext, myElement);
ManifestFileUtil.addManifestFileToLayout(file.getPath(), myContext, myElement);
updateManifest();
myContext.getThisArtifactEditor().updateLayoutTree();
}
@@ -27,6 +27,7 @@ import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.*;
@@ -256,7 +257,7 @@ public class AttachSourcesNotificationProvider implements EditorNotifications.Pr
}
public ActionCallback perform(final List<LibraryOrderEntry> libraries) {
FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, true, false, true, true);
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createMultipleJavaPathDescriptor();
descriptor.setTitle(ProjectBundle.message("library.attach.sources.action"));
descriptor.setDescription(ProjectBundle.message("library.attach.sources.description"));
final Library firstLibrary = libraries.get(0).getLibrary();
@@ -25,6 +25,7 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.MultiLineLabelUI;
import com.intellij.openapi.util.Computable;
@@ -107,7 +108,7 @@ public class SourcePathsStep extends AbstractStepWithProgress<List<Trinity<Strin
myTfSourceDirectoryName = new JTextField(suggestSourceDirectoryName());
final JLabel srcPathLabel = new JLabel(IdeBundle.message("prompt.enter.relative.path.to.module.content.root", File.separator));
panel.add(srcPathLabel, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(8, 30, 0, 0), 0, 0));
final FileChooserDescriptor chooserDescriptor = new FileChooserDescriptor(false, true, false, false, false, false);
final FileChooserDescriptor chooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
chooserDescriptor.setIsTreeRootVisible(true);
final FieldPanel fieldPanel = createFieldPanel(myTfSourceDirectoryName, null, new BrowsePathListener(myTfSourceDirectoryName, chooserDescriptor));
panel.add(fieldPanel, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(8, 30, 0, 10), 0, 0));
@@ -17,6 +17,7 @@ package com.intellij.openapi.roots.ui.configuration;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.AnnotationOrderRootType;
import com.intellij.openapi.roots.ui.util.CellAppearance;
@@ -247,7 +248,7 @@ public class AnnotationsEditor extends ModuleElementsEditor {
private final FileChooserDescriptor myDescriptor;
public AddPathActionListener() {
myDescriptor = new FileChooserDescriptor(false, true, false, false, false, false);
myDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
myDescriptor.setTitle(ProjectBundle.message("add.external.annotations.path.title"));
myDescriptor.setDescription(ProjectBundle.message("add.external.annotations.path.description"));
}
@@ -24,6 +24,7 @@ package com.intellij.openapi.roots.ui.configuration;
import com.intellij.ide.util.BrowseFilesListener;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.CompilerModuleExtension;
@@ -179,7 +180,7 @@ public class BuildElementsEditor extends ModuleElementsEditor {
private CommitableFieldPanel createOutputPathPanel(final String title, final CommitPathRunnable commitPathRunnable) {
final JTextField textField = new JTextField();
final FileChooserDescriptor outputPathsChooserDescriptor = new FileChooserDescriptor(false, true, false, false, false, false);
final FileChooserDescriptor outputPathsChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
outputPathsChooserDescriptor.setHideIgnored(false);
InsertPathAction.addTo(textField, outputPathsChooserDescriptor);
FileChooserFactory.getInstance().installFileCompletion(textField, outputPathsChooserDescriptor, true, null);
@@ -17,6 +17,7 @@ package com.intellij.openapi.roots.ui.configuration;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.projectRoots.ui.Util;
import com.intellij.openapi.roots.JavadocOrderRootType;
@@ -260,7 +261,7 @@ public class JavadocEditor extends ModuleElementsEditor {
private final FileChooserDescriptor myDescriptor;
public AddPathActionListener() {
myDescriptor = new FileChooserDescriptor(false, true, true, false, true, true);
myDescriptor = FileChooserDescriptorFactory.createMultipleJavaPathDescriptor();
myDescriptor.setTitle(ProjectBundle.message("module.javadoc.add.path.title"));
myDescriptor.setDescription(ProjectBundle.message("module.javadoc.add.path.prompt"));
}
@@ -21,6 +21,7 @@ import com.intellij.ide.util.BrowseFilesListener;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.StorageScheme;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
@@ -324,7 +325,7 @@ public class ProjectConfigurable extends NamedConfigurable<Project> implements D
private void createUIComponents() {
myLanguageLevelCombo = new LanguageLevelCombo();
final JTextField textField = new JTextField();
final FileChooserDescriptor outputPathsChooserDescriptor = new FileChooserDescriptor(false, true, false, false, false, false);
final FileChooserDescriptor outputPathsChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
InsertPathAction.addTo(textField, outputPathsChooserDescriptor);
outputPathsChooserDescriptor.setHideIgnored(false);
BrowseFilesListener listener = new BrowseFilesListener(textField, "", ProjectBundle.message("project.compiler.output"), outputPathsChooserDescriptor);
@@ -13,6 +13,7 @@
package com.intellij.openapi.roots.ui.configuration.libraryEditor;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.projectRoots.ui.Util;
@@ -86,7 +87,7 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen
}
public FileChooserDescriptor createChooserDescriptor() {
return new FileChooserDescriptor(false, true, false, false, false, true);
return FileChooserDescriptorFactory.createMultipleFoldersDescriptor();
}
public boolean addAsJarDirectories() {
@@ -113,7 +114,7 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen
}
public FileChooserDescriptor createChooserDescriptor() {
return new FileChooserDescriptor(false, true, false, false, false, true);
return FileChooserDescriptorFactory.createMultipleFoldersDescriptor();
}
public boolean addAsJarDirectories() {
@@ -168,7 +169,7 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen
@Override
public FileChooserDescriptor createChooserDescriptor() {
return new FileChooserDescriptor(false, true, false, false, false, false);
return FileChooserDescriptorFactory.createSingleFolderDescriptor();
}
}
@@ -21,6 +21,7 @@
package com.intellij.openapi.roots.ui.configuration.libraryEditor;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.projectRoots.JavaSdk;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
@@ -57,7 +58,7 @@ public class JavadocOrderRootTypeUIFactory implements OrderRootTypeUIFactory {
public JavadocPathsEditor(Sdk sdk) {
super(ProjectBundle.message("sdk.configure.javadoc.tab"),
JavadocOrderRootType.getInstance(),
new FileChooserDescriptor(false, true, true, false, true, true));
FileChooserDescriptorFactory.createMultipleJavaPathDescriptor());
mySdk = sdk;
}
@@ -1094,7 +1094,7 @@ public class ExpectedTypesProvider {
}
if (("assertEquals".equals(name) || "assertSame".equals(name)) && method.getParameterList().getParametersCount() == 2 && args.length == 2) {
ExpectedTypeInfo info = getEqualsType(args[0] == argument ? args[1] : args[0]);
if (info != null) {
if (info != null && parameterType.isAssignableFrom(info.getDefaultType())) {
return info.getDefaultType();
}
}
@@ -232,26 +232,24 @@ public class ExternalAnnotationsManagerImpl extends ExternalAnnotationsManager {
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setTitle(ProjectBundle.message("external.annotations.root.chooser.title", entry.getPresentableName()));
descriptor.setDescription(ProjectBundle.message("external.annotations.root.chooser.description"));
final VirtualFile[] files = FileChooser.chooseFiles(project, descriptor);
if (files.length > 0) {
final VirtualFile file = FileChooser.chooseFile(project, descriptor);
if (file != null) {
new WriteCommandAction(project) {
protected void run(final Result result) throws Throwable {
if (files[0] != null) {
appendChosenAnnotationsRoot(entry, files[0]);
final List<XmlFile> xmlFiles = findExternalAnnotationsFile(listOwner);
if (xmlFiles != null) { //file already exists under appeared content root
if (!CodeInsightUtilBase.preparePsiElementForWrite(xmlFiles.get(0))) return;
annotateExternally(listOwner, annotationFQName, xmlFiles.get(0), fromFile, value);
}
else {
final XmlFile annotationsXml = createAnnotationsXml(files[0], packageName);
if (annotationsXml != null) {
final List<XmlFile> createdFiles = new ArrayList<XmlFile>();
createdFiles.add(annotationsXml);
myExternalAnnotations.put(getFQN(packageName, virtualFile), createdFiles);
}
annotateExternally(listOwner, annotationFQName, annotationsXml, fromFile, value);
appendChosenAnnotationsRoot(entry, file);
final List<XmlFile> xmlFiles = findExternalAnnotationsFile(listOwner);
if (xmlFiles != null) { //file already exists under appeared content root
if (!CodeInsightUtilBase.preparePsiElementForWrite(xmlFiles.get(0))) return;
annotateExternally(listOwner, annotationFQName, xmlFiles.get(0), fromFile, value);
}
else {
final XmlFile annotationsXml = createAnnotationsXml(file, packageName);
if (annotationsXml != null) {
final List<XmlFile> createdFiles = new ArrayList<XmlFile>();
createdFiles.add(annotationsXml);
myExternalAnnotations.put(getFQN(packageName, virtualFile), createdFiles);
}
annotateExternally(listOwner, annotationFQName, annotationsXml, fromFile, value);
}
}
}.execute();
@@ -17,6 +17,7 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
@@ -75,7 +76,7 @@ public class LocateLibraryDialog extends DialogWrapper {
myCopyToDir.setText(new File (module.getModuleFilePath()).getParent());
myCopyToDir.addBrowseFolderListener(QuickFixBundle.message("add.library.title.choose.folder"),
QuickFixBundle.message("add.library.description.choose.folder"), myProject,
new FileChooserDescriptor(false,true,false,false,false,false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
final ActionListener listener = new ActionListener() {
public void actionPerformed(final ActionEvent e) {
@@ -20,6 +20,7 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.roots.ProjectRootManager;
@@ -74,12 +75,12 @@ public class MoveClassesOrPackagesToNewDirectoryDialog extends DialogWrapper {
myElementsToMove = elementsToMove;
myMoveCallback = moveCallback;
myDestDirectoryField.setText(FileUtil.toSystemDependentName(directory.getVirtualFile().getPath()));
final FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
myDestDirectoryField.getButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final VirtualFile[] files = FileChooser.chooseFiles(myDirectory.getProject(), descriptor, directory.getVirtualFile());
if (files.length == 1) {
myDestDirectoryField.setText(FileUtil.toSystemDependentName(files[0].getPath()));
final VirtualFile file = FileChooser.chooseFile(myDirectory.getProject(), descriptor, directory.getVirtualFile());
if (file != null) {
myDestDirectoryField.setText(FileUtil.toSystemDependentName(file.getPath()));
}
}
});
@@ -84,7 +84,7 @@ public abstract class MethodSignatureBase implements MethodSignature {
@SuppressWarnings({"HardCodedStringLiteral"})
public String toString() {
String s = "MethodSignature: ";
String s = getClass().getSimpleName() + ": ";
final PsiTypeParameter[] typeParameters = getTypeParameters();
if (typeParameters.length != 0) {
String sep = "<";
@@ -16,7 +16,9 @@
package com.intellij.codeInsight;
import com.intellij.codeInsight.completion.CompletionPhase;
import com.intellij.codeInsight.completion.CompletionProgressIndicator;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.codeInsight.completion.impl.CompletionServiceImpl;
import com.intellij.codeInsight.editorActions.CompletionAutoPopupHandler;
import com.intellij.codeInsight.hint.ShowParameterInfoHandler;
@@ -38,7 +40,6 @@ import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.util.Alarm;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.Nullable;
@@ -83,34 +84,43 @@ public class AutoPopupController implements Disposable {
}
public void autoPopupMemberLookup(final Editor editor, @Nullable final Condition<PsiFile> condition){
scheduleAutoPopup(editor, condition);
}
public void scheduleAutoPopup(final Editor editor, @Nullable final Condition<PsiFile> condition) {
if (ApplicationManager.getApplication().isUnitTestMode() &&
!CompletionAutoPopupHandler.ourTestingAutopopup) {
return;
}
final CodeInsightSettings settings = CodeInsightSettings.getInstance();
if (settings.AUTO_POPUP_COMPLETION_LOOKUP) {
if (PsiUtilBase.getPsiFileInEditor(editor, myProject) == null) return;
final Runnable request = new Runnable(){
public void run(){
if (!myProject.isDisposed() && !editor.isDisposed()) {
CompletionAutoPopupHandler.scheduleAutoPopup(editor, condition);
}
}
};
addRequest(request, settings.AUTO_LOOKUP_DELAY);
if (!CodeInsightSettings.getInstance().AUTO_POPUP_COMPLETION_LOOKUP) {
return;
}
}
public void invokeAutoPopupRunnable(final Runnable request, final int delay) {
if (ApplicationManager.getApplication().isUnitTestMode() && !CompletionAutoPopupHandler.ourTestingAutopopup) return;
final CompletionProgressIndicator currentCompletion = CompletionServiceImpl.getCompletionService().getCurrentCompletion();
if (currentCompletion != null) {
currentCompletion.closeAndFinish(true);
}
addRequest(request, delay);
final CompletionPhase.AutoPopupAlarm phase = new CompletionPhase.AutoPopupAlarm(false, editor);
CompletionServiceImpl.setCompletionPhase(phase);
addRequest(new Runnable() {
@Override
public void run() {
CompletionAutoPopupHandler.runLaterWithCommitted(myProject, editor.getDocument(), new Runnable() {
@Override
public void run() {
if (phase.isExpired()) return;
PsiFile file = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument());
if (file != null && condition != null && !condition.value(file)) return;
CompletionAutoPopupHandler.invokeCompletion(CompletionType.BASIC, true, myProject, editor, 0);
}
});
}
}, CodeInsightSettings.getInstance().AUTO_LOOKUP_DELAY);
}
@TestOnly
@@ -16,6 +16,7 @@
package com.intellij.codeInsight.completion;
import com.intellij.codeInsight.AutoPopupController;
import com.intellij.codeInsight.CodeInsightSettings;
import com.intellij.codeInsight.completion.impl.CompletionServiceImpl;
import com.intellij.codeInsight.completion.impl.CompletionSorterImpl;
@@ -599,7 +600,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
public void scheduleRestart() {
if (isAutopopupCompletion() && hideAutopopupIfMeaningless()) {
CompletionAutoPopupHandler.scheduleAutoPopup(myEditor, null);
AutoPopupController.getInstance(getProject()).scheduleAutoPopup(myEditor, null);
return;
}
@@ -53,8 +53,11 @@ public class CompletionServiceImpl extends CompletionService{
ProjectManager.getInstance().addProjectManagerListener(new ProjectManagerAdapter() {
@Override
public void projectClosing(Project project) {
LookupManager.getInstance(project).hideActiveLookup();
setCompletionPhase(CompletionPhase.NoCompletion);
CompletionProgressIndicator indicator = getCurrentCompletion();
if (indicator != null && indicator.getProject() == project) {
LookupManager.getInstance(project).hideActiveLookup();
setCompletionPhase(CompletionPhase.NoCompletion);
}
}
});
}
@@ -214,7 +217,7 @@ public class CompletionServiceImpl extends CompletionService{
CompletionPhase oldPhase = getCompletionPhase();
CompletionProgressIndicator oldIndicator = oldPhase.indicator;
if (oldIndicator != null && !(phase instanceof CompletionPhase.BgCalculation)) {
LOG.assertTrue(!oldIndicator.isRunning() || oldIndicator.isCanceled(), "don't change phase during running completion");
LOG.assertTrue(!oldIndicator.isRunning() || oldIndicator.isCanceled(), "don't change phase during running completion: oldPhase=" + oldPhase);
}
Disposer.dispose(oldPhase);
@@ -29,13 +29,11 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.PsiDocumentManagerImpl;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author peter
@@ -83,35 +81,10 @@ public class CompletionAutoPopupHandler extends TypedHandlerDelegate {
return Result.CONTINUE;
}
scheduleAutoPopup(editor, null);
AutoPopupController.getInstance(project).scheduleAutoPopup(editor, null);
return Result.STOP;
}
public static void scheduleAutoPopup(final Editor editor, @Nullable final Condition<PsiFile> condition) {
final Project project = editor.getProject();
if (project == null) return;
final CompletionPhase.AutoPopupAlarm phase = new CompletionPhase.AutoPopupAlarm(false, editor);
CompletionServiceImpl.setCompletionPhase(phase);
AutoPopupController.getInstance(project).invokeAutoPopupRunnable(new Runnable() {
@Override
public void run() {
runLaterWithCommitted(project, editor.getDocument(), new Runnable() {
@Override
public void run() {
if (phase.isExpired()) return;
PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (file != null && condition != null && !condition.value(file)) return;
invokeCompletion(CompletionType.BASIC, true, project, editor, 0);
}
});
}
}, CodeInsightSettings.getInstance().AUTO_LOOKUP_DELAY);
}
public static void invokeCompletion(CompletionType completionType,
boolean autopopup,
Project project, Editor editor, int time) {
@@ -130,7 +103,8 @@ public class CompletionAutoPopupHandler extends TypedHandlerDelegate {
}
}
public static void runLaterWithCommitted(@NotNull final Project project, final Document document, final Runnable runnable) {
public static void runLaterWithCommitted(@NotNull final Project project,
@NotNull final Document document, @NotNull final Runnable runnable) {
final long beforeStamp = document.getModificationStamp();
((PsiDocumentManagerImpl)PsiDocumentManager.getInstance(project)).performWhenAllCommitted(new Runnable() {
@Override
@@ -16,10 +16,10 @@
package com.intellij.codeInsight.lookup.impl;
import com.intellij.codeInsight.AutoPopupController;
import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.completion.impl.CompletionServiceImpl;
import com.intellij.codeInsight.editorActions.AutoHardWrapHandler;
import com.intellij.codeInsight.editorActions.CompletionAutoPopupHandler;
import com.intellij.codeInsight.lookup.CharFilter;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupManager;
@@ -81,7 +81,7 @@ public class TypedHandler extends TypedActionHandlerBase {
});
lookup.appendPrefix(charTyped);
if (lookup.isStartCompletionWhenNothingMatches() && lookup.getItems().isEmpty()) {
CompletionAutoPopupHandler.scheduleAutoPopup(editor, null);
AutoPopupController.getInstance(editor.getProject()).scheduleAutoPopup(editor, null);
}
AutoHardWrapHandler.getInstance().wrapLineIfNecessary(editor, dataContext, modificationStamp);
@@ -81,16 +81,15 @@ public class ViewOfflineResultsAction extends AnAction implements DumbAware {
LOG.assertTrue(project != null);
final VirtualFile[] virtualFiles = FileChooser.chooseFiles(project, BrowseFilesListener.SINGLE_DIRECTORY_DESCRIPTOR);
if (virtualFiles.length == 0) return;
if (!virtualFiles[0].isDirectory()) return;
final VirtualFile virtualFile = FileChooser.chooseFile(project, BrowseFilesListener.SINGLE_DIRECTORY_DESCRIPTOR);
if (virtualFile == null || !virtualFile.isDirectory()) return;
final Map<String, Map<String, Set<OfflineProblemDescriptor>>> resMap =
new HashMap<String, Map<String, Set<OfflineProblemDescriptor>>>();
final String [] profileName = new String[1];
final Runnable process = new Runnable() {
public void run() {
final VirtualFile[] files = virtualFiles[0].getChildren();
final VirtualFile[] files = virtualFile.getChildren();
try {
for (final VirtualFile inspectionFile : files) {
if (inspectionFile.isDirectory()) continue;
@@ -71,9 +71,9 @@ public class CommonProgramParametersPanel extends JPanel {
FileChooserDescriptor fileChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fileChooserDescriptor.setTitle(ExecutionBundle.message("select.working.directory.message"));
fileChooserDescriptor.putUserData(LangDataKeys.MODULE_CONTEXT, myModuleContext);
VirtualFile[] files = FileChooser.chooseFiles(myWorkingDirectoryComponent, fileChooserDescriptor);
if (files.length != 0) {
setWorkingDirectory(files[0].getPresentableUrl());
VirtualFile file = FileChooser.chooseFile(myWorkingDirectoryComponent, fileChooserDescriptor, null);
if (file != null) {
setWorkingDirectory(file.getPresentableUrl());
}
}
});
@@ -47,11 +47,11 @@ public class DumpIntentionsAction extends AnAction implements DumbAware {
}
public void actionPerformed(AnActionEvent e) {
final VirtualFile[] files =
FileChooser.chooseFiles(e.getData(PlatformDataKeys.PROJECT), FileChooserDescriptorFactory.createSingleFolderDescriptor());
if (files.length > 0) {
final VirtualFile file =
FileChooser.chooseFile(e.getData(PlatformDataKeys.PROJECT), FileChooserDescriptorFactory.createSingleFolderDescriptor(), null);
if (file != null) {
final List<IntentionActionMetaData> list = IntentionManagerSettings.getInstance().getMetaData();
final File root = VfsUtil.virtualToIoFile(files[0]);
final File root = VfsUtil.virtualToIoFile(file);
Element el = new Element("root");
Map<String, Element> categoryMap = new HashMap<String, Element>();
for (IntentionActionMetaData metaData : list) {
@@ -15,6 +15,7 @@ package com.intellij.openapi.roots.libraries.ui;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor;
@@ -33,7 +34,7 @@ public abstract class ChooserBasedAttachRootButtonDescriptor extends AttachRootB
}
public FileChooserDescriptor createChooserDescriptor() {
return new FileChooserDescriptor(false, true, true, false, true, true);
return FileChooserDescriptorFactory.createMultipleJavaPathDescriptor();
}
public abstract String getChooserTitle(final @Nullable String libraryName);
@@ -26,6 +26,7 @@ import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.actionSystem.ex.CustomComponentAction;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileSystemTree;
import com.intellij.openapi.fileChooser.actions.NewFolderAction;
import com.intellij.openapi.fileChooser.ex.FileSystemTreeImpl;
@@ -91,7 +92,7 @@ public class ContentEntryTreeEditor {
myTreePanel.add(new ToolbarPanel(scrollPane, myEditingActionsGroup), BorderLayout.CENTER);
myTreePanel.setVisible(false);
myDescriptor = new FileChooserDescriptor(false, true, false, false, false, true);
myDescriptor = FileChooserDescriptorFactory.createMultipleFoldersDescriptor();
myDescriptor.setShowFileSystemRoots(false);
}
@@ -122,12 +122,12 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable imple
}
};
descriptor.setDescription("Choose profile file");
final VirtualFile[] files = FileChooser.chooseFiles(myWholePanel, descriptor);
if (files.length == 0) return;
final VirtualFile file = FileChooser.chooseFile(myWholePanel, descriptor, null);
if (file == null) return;
InspectionProfileImpl profile =
new InspectionProfileImpl("TempProfile", InspectionToolRegistrar.getInstance(), myProfileManager);
try {
Element rootElement = JDOMUtil.loadDocument(VfsUtil.virtualToIoFile(files[0])).getRootElement();
Element rootElement = JDOMUtil.loadDocument(VfsUtil.virtualToIoFile(file)).getRootElement();
if (Comparing.strEqual(rootElement.getName(), "component")) {//import right from .idea/inspectProfiles/xxx.xml
rootElement = (Element)rootElement.getChildren().get(0);
}
@@ -187,15 +187,15 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable imple
public void actionPerformed(ActionEvent e) {
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setDescription("Choose directory to store profile file");
final VirtualFile[] files = FileChooser.chooseFiles(myWholePanel, descriptor);
if (files.length == 0) return;
final VirtualFile file = FileChooser.chooseFile(myWholePanel, descriptor, null);
if (file == null) return;
final Element element = new Element("inspections");
try {
final SingleInspectionProfilePanel panel = getSelectedPanel();
LOG.assertTrue(panel != null);
final InspectionProfileImpl profile = (InspectionProfileImpl)panel.getSelectedProfile();
profile.writeExternal(element);
final String filePath = FileUtil.toSystemDependentName(files[0].getPath()) + File.separator + FileUtil.sanitizeFileName(profile.getName()) + ".xml";
final String filePath = FileUtil.toSystemDependentName(file.getPath()) + File.separator + FileUtil.sanitizeFileName(profile.getName()) + ".xml";
if (new File(filePath).isFile()) {
if (Messages.showOkCancelDialog(myWholePanel, "File \'" + filePath + "\' already exist. Do you want to overwrite it?", "Warning", Messages.getQuestionIcon()) != DialogWrapper.OK_EXIT_CODE) return;
}
@@ -229,9 +229,8 @@ public class ToolEditorDialog extends DialogWrapper {
new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
VirtualFile[] files = FileChooser.chooseFiles(myProject, descriptor);
if (files.length != 0) {
VirtualFile file = files[0];
VirtualFile file = FileChooser.chooseFile(myProject, descriptor, null);
if (file != null) {
myTfCommand.setText(file.getPresentableUrl());
String workingDirectory = myTfCommandWorkingDirectory.getText();
if (workingDirectory == null || workingDirectory.length() == 0){
@@ -309,9 +308,9 @@ public class ToolEditorDialog extends DialogWrapper {
new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
VirtualFile[] files = FileChooser.chooseFiles(myProject, descriptor);
if (files.length != 0) {
myTfCommandWorkingDirectory.setText(files[0].getPresentableUrl());
VirtualFile file = FileChooser.chooseFile(myProject, descriptor);
if (file != null) {
myTfCommandWorkingDirectory.setText(file.getPresentableUrl());
}
}
}
@@ -176,12 +176,12 @@ public class PlaybackDebugger implements UiDebuggerExtension, PlaybackRunner.Sta
public void actionPerformed(AnActionEvent e) {
if (pathToFile() == null) {
VirtualFile[] files = FileChooser.chooseFiles(myComponent, FILE_DESCRIPTOR);
if (files.length > 0) {
VirtualFile selectedFile = files[0];
VirtualFile selectedFile = FileChooser.chooseFile(myComponent, FILE_DESCRIPTOR, null);
if (selectedFile != null) {
myState.currentScript = selectedFile.getPresentableUrl();
myCurrentScript.setText(myState.currentScript);
} else {
}
else {
Messages.showErrorDialog("File to save is not selected.", "Cannot save script");
return;
}
@@ -217,9 +217,8 @@ public class PlaybackDebugger implements UiDebuggerExtension, PlaybackRunner.Sta
@Override
public void actionPerformed(AnActionEvent e) {
VirtualFile[] files = FileChooser.chooseFiles(myComponent, FILE_DESCRIPTOR, pathToFile());
if (files.length > 0) {
VirtualFile selectedFile = files[0];
VirtualFile selectedFile = FileChooser.chooseFile(myComponent, FILE_DESCRIPTOR, pathToFile());
if (selectedFile != null) {
myState.currentScript = selectedFile.getPresentableUrl();
loadFrom(selectedFile);
myCurrentScript.setText(myState.currentScript);
@@ -37,7 +37,6 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.util.ArrayUtil;
import com.intellij.util.download.DownloadableFileDescription;
import com.intellij.util.download.FileDownloader;
import com.intellij.util.io.UrlConnectionUtil;
@@ -178,15 +177,15 @@ public class FileDownloaderImpl implements FileDownloader {
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setTitle(IdeBundle.message("dialog.directory.for.downloaded.files.title"));
final VirtualFile[] files;
final VirtualFile file;
if (myProject != null) {
files = FileChooser.chooseFiles(myProject, descriptor, myProject.getBaseDir());
file = FileChooser.chooseFile(myProject, descriptor, myProject.getBaseDir());
}
else {
files = FileChooser.chooseFiles(myParent, descriptor);
file = FileChooser.chooseFile(myParent, descriptor, null);
}
return ArrayUtil.getFirstElement(files);
return file;
}
@NotNull
@@ -13,6 +13,7 @@
package com.intellij.execution.util;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -58,7 +59,7 @@ public class ExecutableDialog extends DialogWrapper {
private void createUIComponents() {
myExecutablePath = new TextFieldWithBrowseButton();
myExecutablePath.setText(myExecutableValidator.getCurrentExecutable());
FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false);
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
myExecutablePath.addBrowseFolderListener(myExecutableValidator.getFileChooserTitle(), myExecutableValidator.getFileChooserDescription(),
null, descriptor);
myExecutablePath.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
@@ -17,6 +17,7 @@ package com.intellij.ide.util;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
@@ -37,8 +38,8 @@ public class BrowseFilesListener implements ActionListener {
private final String myTitle;
private final String myDescription;
private final FileChooserDescriptor myChooserDescriptor;
public static final FileChooserDescriptor SINGLE_DIRECTORY_DESCRIPTOR = new FileChooserDescriptor(false, true, false, false, false, false);
public static final FileChooserDescriptor SINGLE_FILE_DESCRIPTOR = new FileChooserDescriptor(true, false, false, false, false, false);
public static final FileChooserDescriptor SINGLE_DIRECTORY_DESCRIPTOR = FileChooserDescriptorFactory.createSingleFolderDescriptor();
public static final FileChooserDescriptor SINGLE_FILE_DESCRIPTOR = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
public BrowseFilesListener(JTextField textField, final String title, final String description, final FileChooserDescriptor chooserDescriptor) {
myTextField = textField;
@@ -15,10 +15,12 @@
*/
package com.intellij.openapi.fileChooser;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.ArrayUtil;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -26,6 +28,7 @@ import org.jetbrains.annotations.Nullable;
import java.awt.*;
public class FileChooser {
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.fileChooser.FileChooser");
private FileChooser() {}
@@ -39,6 +42,28 @@ public class FileChooser {
return chooseFiles(parent, descriptor, null);
}
@Nullable
public static VirtualFile chooseFile(Project project, FileChooserDescriptor descriptor) {
return chooseFile(project, descriptor, null);
}
@Nullable
public static VirtualFile chooseFile(Project project, FileChooserDescriptor descriptor, @Nullable VirtualFile toSelect) {
LOG.assertTrue(!descriptor.isChooseMultiple());
return ArrayUtil.getFirstElement(chooseFiles(project, descriptor, toSelect));
}
@Nullable
public static VirtualFile chooseFile(Component parent, FileChooserDescriptor descriptor) {
return chooseFile(parent, descriptor, null);
}
@Nullable
public static VirtualFile chooseFile(Component parent, FileChooserDescriptor descriptor, @Nullable VirtualFile toSelect) {
LOG.assertTrue(!descriptor.isChooseMultiple());
return ArrayUtil.getFirstElement(chooseFiles(parent, descriptor, toSelect));
}
@NotNull
public static VirtualFile[] chooseFiles(Project project, FileChooserDescriptor descriptor, @Nullable VirtualFile toSelect) {
FileChooserDialog chooser = FileChooserFactory.getInstance().createFileChooser(descriptor, project);
@@ -32,6 +32,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @see FileChooserDescriptorFactory
*/
public class FileChooserDescriptor implements Cloneable{
private boolean myChooseFiles;
private boolean myChooseFolders;
@@ -51,6 +54,7 @@ public class FileChooserDescriptor implements Cloneable{
private final Map<String, Object> myUserData = new HashMap<String, Object>();
/**
* Creates new instance. Use methods from {@link FileChooserDescriptorFactory} for most used descriptors
* @param chooseFiles controls whether files can be chosen
* @param chooseFolders controls whether folders can be chosen
* @param chooseJars
@@ -80,9 +80,9 @@ public class GuiUtils {
return constructFieldWithBrowseButton(aTextField, new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.getDirectoryChooserDescriptor(aSearchedObjectName);
VirtualFile[] files = FileChooser.chooseFiles(aTextField, descriptor);
if (files.length != 0) {
aTextField.setText(FileUtil.toSystemDependentName(files[0].getPath()));
VirtualFile file = FileChooser.chooseFile(aTextField, descriptor);
if (file != null) {
aTextField.setText(FileUtil.toSystemDependentName(file.getPath()));
aTextField.postActionEvent();
}
}
@@ -94,10 +94,10 @@ public class GuiUtils {
return constructFieldWithBrowseButton(aFieldWithHistory, new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.getFileChooserDescriptor(aSearchedObjectName);
VirtualFile[] files = FileChooser.chooseFiles(aFieldWithHistory, descriptor);
if (files.length != 0) {
VirtualFile file = FileChooser.chooseFile(aFieldWithHistory, descriptor);
if (file != null) {
try {
aFieldWithHistory.setText(VfsUtil.virtualToIoFile(files[0]).toURL().toString());
aFieldWithHistory.setText(VfsUtil.virtualToIoFile(file).toURL().toString());
}
catch (MalformedURLException e1) {
aFieldWithHistory.setText("");
@@ -23,6 +23,7 @@ import com.intellij.openapi.components.ExportableComponent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.VerticalFlowLayout;
import com.intellij.openapi.util.io.FileUtil;
@@ -123,8 +124,7 @@ public class ChooseComponentsToExportDialog extends DialogWrapper {
@Nullable
public static String chooseSettingsFile(String oldPath, Component parent, final String title, final String description) {
FileChooserDescriptor chooserDescriptor;
chooserDescriptor = new FileChooserDescriptor(true, true, true, true, false, false);
FileChooserDescriptor chooserDescriptor = FileChooserDescriptorFactory.createSingleLocalFileDescriptor();
chooserDescriptor.setDescription(description);
chooserDescriptor.setHideIgnored(false);
chooserDescriptor.setTitle(title);
@@ -140,11 +140,10 @@ public class ChooseComponentsToExportDialog extends DialogWrapper {
else {
initialDir = null;
}
final VirtualFile[] files = FileChooser.chooseFiles(parent, chooserDescriptor, initialDir);
if (files.length == 0) {
final VirtualFile file = FileChooser.chooseFile(parent, chooserDescriptor, initialDir);
if (file == null) {
return null;
}
VirtualFile file = files[0];
String path;
if (file.isDirectory()) {
String defaultName = new File(DEFAULT_PATH).getName();
@@ -75,7 +75,7 @@ public class OpenFileAction extends AnAction implements DumbAware {
}
});
final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, true);
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createMultipleFilesNoJarsDescriptor();
descriptor.setTitle(IdeBundle.message("title.open.file"));
final String lastFilePath = project != null ? getLastFilePath(project) : null;
@@ -17,7 +17,6 @@ package com.intellij.internal.encodings;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.vfs.CharsetToolkit;
@@ -47,10 +46,9 @@ public class EncodingViewer extends DialogWrapper {
initEncodings();
myLoadFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
VirtualFile[] files = FileChooser.chooseFiles(myPanel, descriptor);
if (files.length != 0) {
loadFrom(files[0]);
VirtualFile file = FileChooser.chooseFile(myPanel, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
if (file != null) {
loadFrom(file);
}
}
});
@@ -37,15 +37,13 @@ import com.intellij.openapi.editor.event.VisibleAreaListener;
import com.intellij.openapi.editor.ex.ScrollingModelEx;
import com.intellij.openapi.editor.ex.util.EditorUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.Animator;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -384,9 +382,6 @@ public class ScrollingModelImpl implements ScrollingModelEx {
private static final int SCROLL_DURATION = 150;
private static final int SCROLL_INTERVAL = 10;
private final Timer myTimer;
private int myTicksCount = 0;
private final int myStartHOffset;
private final int myStartVOffset;
private final int myEndHOffset;
@@ -404,6 +399,7 @@ public class ScrollingModelImpl implements ScrollingModelEx {
private final int myStepCount;
private final double myPow;
private final Animator myAnimator;
public AnimatedScrollingRunnable(int startHOffset,
int startVOffset,
@@ -435,13 +431,26 @@ public class ScrollingModelImpl implements ScrollingModelEx {
myStartCommand = CommandProcessor.getInstance().getCurrentCommand();
myTimer = UIUtil.createNamedTimer("Animated scroller",SCROLL_INTERVAL, new ActionListener() {
public void actionPerformed(final ActionEvent e) {
tick();
myAnimator = new Animator("Animated scroller", myStepCount, SCROLL_INTERVAL, false, 0, 0, true) {
@Override
public void paintNow(float frame, float totalFrames, float cycle) {
double time = (frame + 1) / (double)totalFrames;
double fraction = timeToFraction(time);
final int hOffset = (int)(myStartHOffset + (myEndHOffset - myStartHOffset) * fraction + 0.5);
final int vOffset = (int)(myStartVOffset + (myEndVOffset - myStartVOffset) * fraction + 0.5);
_scrollHorizontally(hOffset);
_scrollVertically(vOffset);
}
});
myTimer.setRepeats(true);
myTimer.start();
@Override
protected void paintCycleEnd() {
finish(true);
}
};
myAnimator.resume();
}
public Rectangle getTargetVisibleArea() {
@@ -454,21 +463,6 @@ public class ScrollingModelImpl implements ScrollingModelEx {
// return myStartCommand;
//}
private void tick() {
double time = (myTicksCount + 1) / (double)myStepCount;
double fraction = timeToFraction(time);
final int hOffset = (int)(myStartHOffset + (myEndHOffset - myStartHOffset) * fraction + 0.5);
final int vOffset = (int)(myStartVOffset + (myEndVOffset - myStartVOffset) * fraction + 0.5);
_scrollHorizontally(hOffset);
_scrollVertically(vOffset);
if (++myTicksCount == myStepCount) {
finish(true);
}
}
public void cancel(boolean scrollToTarget) {
assertIsDispatchThread();
finish(scrollToTarget);
@@ -485,7 +479,7 @@ public class ScrollingModelImpl implements ScrollingModelEx {
executePostRunnables();
}
myTimer.stop();
myAnimator.dispose();
if (myCurrentAnimationRequest == this) {
myCurrentAnimationRequest = null;
}
@@ -23,6 +23,7 @@ import com.intellij.ide.ui.ListCellRendererWrapper;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComponentWithBrowseButton;
import com.intellij.openapi.ui.DialogWrapper;
@@ -68,7 +69,7 @@ public class NewDirectoryProjectDialog extends DialogWrapper {
myLocationField.setText(projectName.toString());
myProjectNameTextField.setText(projectName.getName());
FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
ComponentWithBrowseButton.BrowseFolderActionListener<JTextField> listener =
new ComponentWithBrowseButton.BrowseFolderActionListener<JTextField>("Select Location for Project Directory", "", myLocationField,
project,
@@ -50,10 +50,10 @@ public class LocalPathCellEditor extends AbstractTableCellEditor {
final FileChooserDescriptor d = getFileChooserDescriptor();
String initial = (String)getCellEditorValue();
VirtualFile initialFile = StringUtil.isNotEmpty(initial) ? LocalFileSystem.getInstance().findFileByPath(initial) : null;
VirtualFile[] files =
myProject != null ? FileChooser.chooseFiles(myProject, d, initialFile) : FileChooser.chooseFiles(table, d, initialFile);
if (files.length == 1 && files[0] != null) {
String path = files[0].getPresentableUrl();
VirtualFile file =
myProject != null ? FileChooser.chooseFile(myProject, d, initialFile) : FileChooser.chooseFile(table, d, initialFile);
if (file != null) {
String path = file.getPresentableUrl();
if (SystemInfo.isWindows && path.length() == 2 && Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') {
path += "\\"; // make path absolute
}
@@ -17,6 +17,7 @@ package com.intellij.execution.testframework.export;
import com.intellij.execution.ExecutionBundle;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextComponentAccessor;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.io.FileUtil;
@@ -77,7 +78,7 @@ public class ExportTestResultsForm {
myFolderField
.addBrowseFolderListener(ExecutionBundle.message("export.test.results.output.folder.chooser.title"), null, null,
new FileChooserDescriptor(false, true, false, false, false, false),
FileChooserDescriptorFactory.createSingleFolderDescriptor(),
TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, false);
myFileNameField.getDocument().addDocumentListener(new DocumentAdapter() {
@@ -23,6 +23,7 @@ import com.intellij.openapi.diff.impl.patch.PatchVirtualFileReader;
import com.intellij.openapi.diff.impl.patch.TextFilePatch;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.Project;
@@ -541,18 +542,17 @@ public class ApplyPatchDifferentiatedDialog extends DialogWrapper {
private class NewBaseSelector implements Runnable {
public void run() {
final FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);
VirtualFile[] selectedFiles = FileChooser.chooseFiles(myProject, descriptor);
if (selectedFiles.length != 1 || selectedFiles[0] == null) {
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
VirtualFile selectedFile = FileChooser.chooseFile(myProject, descriptor);
if (selectedFile == null) {
return;
}
final VirtualFile selectedValue = selectedFiles[0];
final List<FilePatchInProgress.PatchChange> selectedChanges = myChangesTreeList.getSelectedChanges();
if (selectedChanges.size() >= 1) {
for (FilePatchInProgress.PatchChange patchChange : selectedChanges) {
final FilePatchInProgress patch = patchChange.getPatchInProgress();
patch.setNewBase(selectedValue);
patch.setNewBase(selectedFile);
}
updateTree(false);
}
@@ -17,6 +17,7 @@
package com.intellij.openapi.vcs.changes.ui;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.help.HelpManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
@@ -78,7 +79,7 @@ public class IgnoreUnversionedDialog extends DialogWrapper {
myIgnoreDirectoryTextField.addBrowseFolderListener("Select Directory to Ignore",
"Select the directory which will not be tracked for changes",
project,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
ActionListener listener = new ActionListener() {
public void actionPerformed(final ActionEvent e) {
updateControls();
@@ -17,6 +17,7 @@
package com.intellij.openapi.vcs.configurable;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
@@ -63,7 +64,7 @@ public class VcsMappingConfigurationDialog extends DialogWrapper {
myVCSComboBox.setModel(VcsDirectoryConfigurationPanel.buildVcsWrappersModel(project));
myDirectoryTextField.addActionListener(new MyBrowseFolderListener("Select Directory", "Select directory to map to a VCS",
myDirectoryTextField, project,
new FileChooserDescriptor(false, true, false, false, false, false)));
FileChooserDescriptorFactory.createSingleFolderDescriptor()));
myMappingCopy = new VcsDirectoryMapping("", "");
setTitle(title);
init();
@@ -20,8 +20,8 @@ import com.intellij.ide.DataManager;
import com.intellij.ide.ui.SplitterProportionsDataImpl;
import com.intellij.lang.Language;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDialog;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.fileChooser.FileSaverDescriptor;
import com.intellij.openapi.fileTypes.FileType;
@@ -742,15 +742,13 @@ public class InjectionsSettingsUI implements Configurable {
descriptor.putUserData(LangDataKeys.MODULE_CONTEXT, LangDataKeys.MODULE.getData(dataContext));
final FileChooserDialog chooser = FileChooserFactory.getInstance().createFileChooser(descriptor, myProject);
final SplitterProportionsData splitterData = new SplitterProportionsDataImpl();
splitterData.externalizeFromDimensionService("IntelliLang.ImportSettingsKey.SplitterProportions");
final VirtualFile[] files = chooser.choose(null, myProject);
if (files.length != 1) return;
final VirtualFile file = FileChooser.chooseFile(myProject, descriptor);
if (file == null) return;
try {
final Configuration cfg = Configuration.load(files[0].getInputStream());
final Configuration cfg = Configuration.load(file.getInputStream());
if (cfg == null) {
Messages.showWarningDialog(myProject, "The selected file does not contain any importable configuration.", "Nothing to Import");
return;
@@ -19,7 +19,7 @@ package org.jetbrains.android.exportSignedPackage;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.ide.wizard.CommitStepException;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -198,10 +198,9 @@ class KeystoreStep extends ExportSignedPackageWizardStep {
path = defaultLocation != null ? defaultLocation : "";
}
VirtualFile f = LocalFileSystem.getInstance().findFileByPath(path);
VirtualFile[] files = FileChooser.chooseFiles(myContentPanel, new FileChooserDescriptor(true, false, false, false, false, false), f);
if (files.length > 0) {
assert files.length == 1;
myKeystoreLocationField.setText(FileUtil.toSystemDependentName(files[0].getPath()));
VirtualFile file = FileChooser.chooseFile(myContentPanel, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor(), f);
if (file != null) {
myKeystoreLocationField.setText(FileUtil.toSystemDependentName(file.getPath()));
}
}
}
@@ -22,6 +22,7 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
@@ -629,11 +630,9 @@ public class AndroidFacetEditorTab extends FacetEditorTab {
}
}
}
VirtualFile[] files =
FileChooser.chooseFiles(myContentPanel, new FileChooserDescriptor(false, true, false, false, false, false), initialFile);
if (files.length > 0) {
assert files.length == 1;
myTextField.setText(FileUtil.toSystemDependentName(files[0].getPath()));
VirtualFile file = FileChooser.chooseFile(myContentPanel, FileChooserDescriptorFactory.createSingleFolderDescriptor(), initialFile);
if (file != null) {
myTextField.setText(FileUtil.toSystemDependentName(file.getPath()));
}
}
}
@@ -22,7 +22,7 @@ import com.android.sdklib.internal.avd.AvdManager;
import com.intellij.ide.BrowserUtil;
import com.intellij.ide.ui.ListCellRendererWrapper;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
@@ -256,7 +256,7 @@ public class CreateAvdDialog extends DialogWrapper {
updateSpinner();
mySdCardFileTextField
.addBrowseFolderListener(AndroidBundle.message("android.create.avd.dialog.sdcard.file.browser.title"), null, project,
new FileChooserDescriptor(true, false, false, false, false, false));
FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
reloadAbiCombo();
}
@@ -16,7 +16,7 @@
package com.intellij.lang.ant.config.impl;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.roots.ui.util.CellAppearanceUtils;
import com.intellij.openapi.roots.ui.util.CompositeAppearance;
import com.intellij.openapi.util.Factory;
@@ -90,7 +90,7 @@ public class AllJarsUnderDirEntry implements AntClasspathEntry {
}
public List<AntClasspathEntry> create() {
VirtualFile[] files = FileChooser.chooseFiles(myParentComponent, new FileChooserDescriptor(false, true, false, false, false, true));
VirtualFile[] files = FileChooser.chooseFiles(myParentComponent, FileChooserDescriptorFactory.createMultipleFoldersDescriptor());
if (files.length == 0) return null;
return ContainerUtil.map(files, CREATE_FROM_VIRTUAL_FILE);
}
@@ -214,11 +214,10 @@ public class AntSetPanel {
}
public AntInstallation create() {
VirtualFile[] files = FileChooser.chooseFiles(myParent, FileChooserDescriptorFactory.createSingleFolderDescriptor());
if (files.length == 0) return null;
VirtualFile homePath = files[0];
VirtualFile file = FileChooser.chooseFile(myParent, FileChooserDescriptorFactory.createSingleFolderDescriptor(), null);
if (file == null) return null;
try {
final AntInstallation inst = AntInstallation.fromHome(homePath.getPresentableUrl());
final AntInstallation inst = AntInstallation.fromHome(file.getPresentableUrl());
adjustName(inst);
return inst;
}
@@ -197,10 +197,10 @@ public class CopyrightProfilesPanel extends MasterDetailsComponent implements Se
}
};
descriptor.setTitle("Choose file containing copyright notice");
final VirtualFile[] files = FileChooser.chooseFiles(myProject, descriptor);
if (files.length != 1) return;
final VirtualFile file = FileChooser.chooseFile(myProject, descriptor);
if (file == null) return;
final List<CopyrightProfile> copyrightProfiles = ExternalOptionHelper.loadOptions(VfsUtil.virtualToIoFile(files[0]));
final List<CopyrightProfile> copyrightProfiles = ExternalOptionHelper.loadOptions(VfsUtil.virtualToIoFile(file));
if (copyrightProfiles == null) return;
if (!copyrightProfiles.isEmpty()) {
if (copyrightProfiles.size() == 1) {
@@ -15,10 +15,10 @@
*/
package com.intellij.cvsSupport2.connections.local.ui;
import com.intellij.cvsSupport2.config.LocalSettings;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.CvsBundle;
import com.intellij.cvsSupport2.config.LocalSettings;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import javax.swing.*;
import java.awt.*;
@@ -34,7 +34,7 @@ public class LocalConnectionSettingsPanel {
public LocalConnectionSettingsPanel() {
myPathToCvsClient.addBrowseFolderListener(CvsBundle.message("dialog.title.select.path.to.cvs.client"),
CvsBundle.message("dialog.description.select.path.to.cvs.client"), null,
new FileChooserDescriptor(true, false, false, false, false, false));
FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
}
public void updateFrom(LocalSettings localConfiguration) {
@@ -19,7 +19,7 @@ import com.intellij.CvsBundle;
import com.intellij.cvsSupport2.config.CvsRootEditor;
import com.intellij.cvsSupport2.config.SshSettings;
import com.intellij.cvsSupport2.connections.ssh.SSHPasswordProviderImpl;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.InputException;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -42,7 +42,7 @@ public class SshConnectionSettingsPanel {
myRootProvider = rootProvider;
myPathToPrivateKeyFile.addBrowseFolderListener(CvsBundle.message("dialog.title.path.to.private.key.file"),
CvsBundle.message("dialog.description.path.to.private.key.file"),
null, new FileChooserDescriptor(true, false, false, false, false, false));
null, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
setPathToPPKEnabled();
@@ -23,10 +23,10 @@ import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.io.File;
import java.text.MessageFormat;
/**
* author: lesya
@@ -70,13 +70,12 @@ public class CheckoutHelper {
return compareResult == 0;
}
@Nullable
public VirtualFile chooseCheckoutLocation(String pathToSuggestedFolder) {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setTitle(com.intellij.CvsBundle.message("dialog.description.select.a.directory.to.check.out.the.files.to"));
VirtualFile suggestedCheckoutFolder = LocalFileSystem.getInstance().findFileByPath(pathToSuggestedFolder.replace(File.separatorChar, '/'));
VirtualFile[] files = FileChooser.chooseFiles(myPanel, descriptor, suggestedCheckoutFolder);
if (files.length == 0) return null;
return files[0];
return FileChooser.chooseFile(myPanel, descriptor, suggestedCheckoutFolder);
}
private boolean requestLocation() {
@@ -96,10 +96,9 @@ public class IdeaJdkConfigurable implements AdditionalDataConfigurable {
descriptor.setTitle(DevKitBundle.message("sandbox.home"));
descriptor.setDescription(
DevKitBundle.message("sandbox.purpose"));
VirtualFile[] files = FileChooser.chooseFiles(mySandboxHome, descriptor);
if (files.length != 0) {
mySandboxHome.setText(
FileUtil.toSystemDependentName(files[0].getPath()));
VirtualFile file = FileChooser.chooseFile(mySandboxHome, descriptor, null);
if (file != null) {
mySandboxHome.setText(FileUtil.toSystemDependentName(file.getPath()));
}
myModified = true;
}
@@ -16,7 +16,6 @@
package org.jetbrains.idea.eclipse.importWizard;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.PathMacros;
import com.intellij.openapi.application.ex.ApplicationInfoEx;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
@@ -345,12 +344,12 @@ public class EclipseImportBuilder extends ProjectImportBuilder<String> implement
};
descriptor.setDescription(buf.toString());
descriptor.setTitle(getTitle());
final VirtualFile[] selectedFiles = FileChooser.chooseFiles(project, descriptor, project.getBaseDir());
if (selectedFiles.length == 1) {
final VirtualFile selectedFile = FileChooser.chooseFile(project, descriptor, project.getBaseDir());
if (selectedFile != null) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
try {
EclipseUserLibrariesHelper.readProjectLibrariesContent(new File(selectedFiles[0].getPath()), project, unknownLibraries);
EclipseUserLibrariesHelper.readProjectLibrariesContent(new File(selectedFile.getPath()), project, unknownLibraries);
}
catch (Exception e) {
LOG.error(e);
@@ -385,9 +384,9 @@ public class EclipseImportBuilder extends ProjectImportBuilder<String> implement
};
fileChooserDescriptor.setTitle(EclipseBundle.message("eclipse.create.library.title"));
fileChooserDescriptor.setDescription(EclipseBundle.message("eclipse.create.library.description", libraryName));
final VirtualFile[] files = FileChooser.chooseFiles(project, fileChooserDescriptor);
if (files.length == 1) {
final VirtualFile pluginsDir = files[0].findChild("plugins");
final VirtualFile file = FileChooser.chooseFile(project, fileChooserDescriptor, null);
if (file != null) {
final VirtualFile pluginsDir = file.findChild("plugins");
if (pluginsDir != null) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
@@ -17,7 +17,7 @@ package org.jetbrains.idea.eclipse.importWizard;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.io.FileUtil;
@@ -53,10 +53,10 @@ public class EclipseWorkspaceRootStep extends ProjectImportWizardStep {
public EclipseWorkspaceRootStep(final WizardContext context) {
super(context);
myWorkspaceRootComponent.addBrowseFolderListener(EclipseBundle.message("eclipse.import.title.select.workspace"), "", null,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
myDirComponent.addBrowseFolderListener(EclipseBundle.message("eclipse.import.title.module.dir"), "", null,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
ActionListener listener = new ActionListener() {
public void actionPerformed(final ActionEvent e) {
@@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.DumbAwareAction;
@@ -52,17 +53,16 @@ public class GitInit extends DumbAwareAction {
if (project == null) {
project = ProjectManager.getInstance().getDefaultProject();
}
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle(GitBundle.getString("init.destination.directory.title"));
fcd.setDescription(GitBundle.getString("init.destination.directory.description"));
fcd.setHideIgnored(false);
final VirtualFile baseDir = project.getBaseDir();
final VirtualFile[] files = FileChooser.chooseFiles(project, fcd, baseDir);
if (files.length == 0) {
final VirtualFile root = FileChooser.chooseFile(project, fcd, baseDir);
if (root == null) {
return;
}
final VirtualFile root = files[0];
if (GitUtil.isUnderGit(root)) {
final int v = Messages.showYesNoDialog(project,
GitBundle.message("init.warning.already.under.git",
@@ -16,6 +16,7 @@
package git4idea.checkout;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.*;
import com.intellij.openapi.vfs.VirtualFile;
@@ -96,7 +97,7 @@ public class GitCloneDialog extends DialogWrapper {
* Init components
*/
private void initListeners() {
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle(GitBundle.getString("clone.destination.directory.title"));
fcd.setDescription(GitBundle.getString("clone.destination.directory.description"));
@@ -16,7 +16,7 @@
package git4idea.config;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -72,7 +72,7 @@ public class GitVcsPanel {
myConvertTextFilesComboBox.addItem(CRLF_ASK);
myConvertTextFilesComboBox.setSelectedItem(CRLF_ASK);
myGitField.addBrowseFolderListener(GitBundle.getString("find.git.title"), GitBundle.getString("find.git.description"), project,
new FileChooserDescriptor(true, false, false, false, false, false));
FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
}
/**
@@ -16,6 +16,7 @@
package git4idea.history.browser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileSystemTree;
import com.intellij.openapi.fileChooser.FileSystemTreeFactory;
import com.intellij.openapi.project.Project;
@@ -54,7 +55,7 @@ public class GitLogTreeFileSelector extends DialogWrapper {
}
private void initUi() {
final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, true, true, false, true);
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createAllButJarContentsDescriptor();
descriptor.setRoot(myRoot);
myFileSystemTree = FileSystemTreeFactory.SERVICE.getInstance().createFileSystemTree(myProject, descriptor);
final JTree tree = myFileSystemTree.getTree();
@@ -39,7 +39,7 @@ public class SelectRepositoryAndShowLogAction extends AnAction {
public void actionPerformed(AnActionEvent e) {
final Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext());
final VirtualFile[] virtualFiles = FileChooser.chooseFiles(project, new FileChooserDescriptor(false, true, false, true, false, false));
if (virtualFiles == null || virtualFiles.length == 0) return;
if (virtualFiles.length == 0) return;
new MyDialog(project, virtualFiles).show();
}
@@ -20,6 +20,7 @@ import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diff.impl.patch.formove.FilePathComparator;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.ex.FileNodeDescriptor;
import com.intellij.openapi.fileChooser.ex.FileSystemTreeImpl;
import com.intellij.openapi.module.Module;
@@ -140,7 +141,7 @@ public class VcsStructureChooser extends DialogWrapper {
@Override
protected JComponent createCenterPanel() {
final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, true, true, false, true);
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createAllButJarContentsDescriptor();
calculateRoots();
final ArrayList<VirtualFile> list = new ArrayList<VirtualFile>(myRoots);
final Comparator<VirtualFile> comparator = new Comparator<VirtualFile>() {
@@ -110,10 +110,9 @@ public class GroovyLibraryDescription extends CustomLibraryDescription {
};
descriptor.setTitle(myFrameworkName + " SDK");
descriptor.setDescription("Choose a directory containing " + myFrameworkName + " distribution");
final VirtualFile[] files = FileChooser.chooseFiles(parentComponent, descriptor, initial);
if (files.length != 1) return null;
final VirtualFile dir = FileChooser.chooseFile(parentComponent, descriptor, initial);
if (dir == null) return null;
final VirtualFile dir = files[0];
final GroovyLibraryPresentationProviderBase provider = findManager(dir);
if (provider == null) {
return null;
@@ -17,6 +17,7 @@ package org.zmlx.hg4idea.ui;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.progress.Task;
@@ -25,8 +26,8 @@ import com.intellij.openapi.ui.*;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.zmlx.hg4idea.HgVcsMessages;
import org.zmlx.hg4idea.execution.HgCommandResult;
import org.zmlx.hg4idea.command.HgIdentifyCommand;
import org.zmlx.hg4idea.execution.HgCommandResult;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
@@ -118,7 +119,7 @@ public class HgCloneDialog extends DialogWrapper {
* Init components
*/
private void initListeners() {
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle(HgVcsMessages.message("hg4idea.clone.parent.directory.title"));
fcd.setDescription(HgVcsMessages.message("hg4idea.clone.parent.directory.description"));
@@ -112,8 +112,7 @@ public class HgInitDialog extends DialogWrapper {
if (myShowDialog) {
super.show();
} else {
final VirtualFile[] files = FileChooser.chooseFiles(myProject, myFileDescriptor);
mySelectedDir = (files.length == 0 ? null : files[0]);
mySelectedDir = FileChooser.chooseFile(myProject, myFileDescriptor);
}
}
@@ -34,6 +34,7 @@ import com.intellij.ide.util.ClassFilter;
import com.intellij.ide.util.PackageChooserDialog;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
@@ -130,10 +131,9 @@ public class JUnitConfigurable extends SettingsEditor<JUnitConfiguration> {
new BrowseModuleValueActionListener(project) {
@Override
protected String showDialog() {
final VirtualFile[] virtualFiles =
FileChooser.chooseFiles(project, new FileChooserDescriptor(false, true, false, false, false, false));
if (virtualFiles.length == 1) {
return FileUtil.toSystemDependentName(virtualFiles[0].getPath());
final VirtualFile virtualFile = FileChooser.chooseFile(project, FileChooserDescriptorFactory.createSingleFolderDescriptor(), null);
if (virtualFile != null) {
return FileUtil.toSystemDependentName(virtualFile.getPath());
}
return null;
}
@@ -166,7 +166,7 @@ public class JUnitConfigurable extends SettingsEditor<JUnitConfiguration> {
panel.add(editBtn, BorderLayout.EAST);
myTestLocations[JUnitConfigurationModel.PATTERN] = myPattern;
final FileChooserDescriptor dirFileChooser = new FileChooserDescriptor(false, true, false, false, false, false);
final FileChooserDescriptor dirFileChooser = FileChooserDescriptorFactory.createSingleFolderDescriptor();
dirFileChooser.setHideIgnored(false);
final JTextField textField = myDir.getComponent().getTextField();
InsertPathAction.addTo(textField, dirFileChooser);
@@ -17,7 +17,7 @@
package org.jetbrains.idea.maven.project;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.LabeledComponent;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.Comparing;
@@ -118,11 +118,11 @@ public class MavenEnvironmentForm {
public JComponent createComponent() {
// all listeners will be removed when dialog is closed
mavenHomeComponent.getComponent().addBrowseFolderListener(ProjectBundle.message("maven.select.maven.home.directory"), "", null,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
settingsFileComponent.getComponent().addBrowseFolderListener(ProjectBundle.message("maven.select.maven.settings.file"), "", null,
new FileChooserDescriptor(true, false, false, false, false, false));
FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
localRepositoryComponent.getComponent().addBrowseFolderListener(ProjectBundle.message("maven.select.local.repository"), "", null,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
return panel;
}
@@ -16,7 +16,7 @@
package org.jetbrains.idea.maven.project;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
@@ -65,7 +65,7 @@ public class MavenImportingSettingsForm {
mySeparateModulesDirCheckBox.addActionListener(listener);
mySeparateModulesDirChooser.addBrowseFolderListener(ProjectBundle.message("maven.import.title.module.dir"), "", null,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
myUpdateFoldersOnImportPhaseComboBox.setModel(new DefaultComboBoxModel(MavenImportingSettings.UPDATE_FOLDERS_PHASES));
}
@@ -21,6 +21,7 @@ import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
@@ -109,12 +110,12 @@ public class SvnConfigurable implements Configurable {
String oldValue = PropertiesComponent.getInstance().getValue("FileChooser.showHiddens");
PropertiesComponent.getInstance().setValue("FileChooser.showHiddens", Boolean.TRUE.toString());
VirtualFile[] files = FileChooser.chooseFiles(myComponent, descriptor, root);
VirtualFile file = FileChooser.chooseFile(myComponent, descriptor, root);
PropertiesComponent.getInstance().setValue("FileChooser.showHiddens", oldValue);
if (files.length != 1 || files[0] == null) {
if (file == null) {
return;
}
myConfigurationDirectoryText.setText(files[0].getPath().replace('/', File.separatorChar));
myConfigurationDirectoryText.setText(file.getPath().replace('/', File.separatorChar));
}
});
myConfigurationDirectoryText.setEditable(false);
@@ -132,8 +133,8 @@ public class SvnConfigurable implements Configurable {
myNumRevsInAnnotations.setEnabled(myMaximumNumberOfRevisionsCheckBox.isSelected());
}
private FileChooserDescriptor createFileDescriptor() {
final FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false);
private static FileChooserDescriptor createFileDescriptor() {
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setShowFileSystemRoots(true);
descriptor.setTitle(SvnBundle.message("dialog.title.select.configuration.directory"));
descriptor.setDescription(SvnBundle.message("dialog.description.select.configuration.directory"));
@@ -16,6 +16,7 @@
package org.jetbrains.idea.svn.config;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.ui.InsertPathAction;
import org.jetbrains.idea.svn.SvnBundle;
@@ -129,7 +130,7 @@ public class ConfigureProxiesOptionsPanel implements RepositoryUrlsListener {
}
private void initBrowseActions() {
InsertPathAction.addTo(myPathToCertificatesField, new FileChooserDescriptor(true, false, false, false, false, false));
InsertPathAction.addTo(myPathToCertificatesField, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
myClientCertificatePathField.addBrowseFolderListener(
SvnBundle.message("dialog.edit.http.proxies.settings.dialog.select.ssl.client.certificate.path.title"),
null, null, new FileChooserDescriptor(true, false, false, false, false, false));
@@ -16,7 +16,7 @@
package org.jetbrains.idea.svn.dialogs;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.help.HelpManager;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
@@ -98,7 +98,7 @@ public class CopyDialog extends DialogWrapper {
myWorkingCopyField.getPreferredSize().height));
myWorkingCopyField.addBrowseFolderListener("Select Working Copy Location", "Select Location to Copy From:",
project, new FileChooserDescriptor(false, true, false, false, false, false));
project, FileChooserDescriptorFactory.createSingleFolderDescriptor());
myWorkingCopyField.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
protected void textChanged(final DocumentEvent e) {
updateControls();
@@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.ide.CopyPasteManager;
import com.intellij.openapi.options.ConfigurationException;
@@ -931,16 +932,16 @@ public class RepositoryBrowserDialog extends DialogWrapper {
@Nullable
private File selectFile(String title, String description) {
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle(title);
fcd.setDescription(description);
fcd.setHideIgnored(false);
VirtualFile[] files = FileChooser.chooseFiles(myProject, fcd, null);
if (files.length != 1 || files[0] == null) {
VirtualFile file = FileChooser.chooseFile(myProject, fcd);
if (file == null) {
return null;
}
final String path = files[0].getPath();
final String path = file.getPath();
if (path.endsWith(":")) { // workaround for VFS oddities with drive root (IDEADEV-20870)
return new File(path + "/");
}
@@ -18,6 +18,7 @@ package org.jetbrains.idea.svn.dialogs;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.help.HelpManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
@@ -382,7 +383,7 @@ public class SSHCredentialsDialog extends DialogWrapper implements ActionListene
file = VirtualFileManager.getInstance().findFileByUrl(path[0]);
}
}
FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false);
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor();
descriptor.setShowFileSystemRoots(true);
descriptor.setTitle(SvnBundle.message("dialog.title.openssh.v2.private.key"));
@@ -15,7 +15,7 @@
*/
package org.jetbrains.idea.svn.dialogs;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -67,7 +67,7 @@ public class SSLCredentialsDialog extends DialogWrapper {
myCertificatePath.addBrowseFolderListener(
SvnBundle.message("dialog.edit.http.proxies.settings.dialog.select.ssl.client.certificate.path.title"),
null, null, new FileChooserDescriptor(true, false, false, false, false, false));
null, null, FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor());
gb.weightx = 1;
++ gb.gridx;
@@ -17,6 +17,7 @@ package org.jetbrains.idea.svn.dialogs.browser;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
@@ -68,16 +69,16 @@ public class CheckoutOptionsDialog extends DialogWrapper {
mySelectTarget.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
// choose directory here/
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle(SvnBundle.message("checkout.directory.chooser.title"));
fcd.setDescription(SvnBundle.message("checkout.directory.chooser.prompt"));
fcd.setHideIgnored(false);
VirtualFile[] files = FileChooser.chooseFiles(getContentPane(), fcd, null);
if (files.length != 1 || files[0] == null) {
VirtualFile file = FileChooser.chooseFile(getContentPane(), fcd, null);
if (file == null) {
return;
}
fillTargetList(new File(files[0].getPath()));
fillTargetList(new File(file.getPath()));
validateTargetSelected();
}
});
@@ -174,11 +174,11 @@ public class DiffOptionsDialog extends DialogWrapper implements ActionListener {
fcd.setTitle(title);
fcd.setDescription(description);
fcd.setHideIgnored(false);
VirtualFile[] files = FileChooser.chooseFiles(myBrowser, fcd, null);
if (files.length != 1 || files[0] == null) {
VirtualFile file = FileChooser.chooseFile(myBrowser, fcd);
if (file == null) {
return null;
}
return new File(files[0].getPath());
return new File(file.getPath());
}
public void actionPerformed(ActionEvent e) {
@@ -17,6 +17,7 @@ package org.jetbrains.idea.svn.dialogs.browser;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -164,15 +165,15 @@ public class ExportOptionsDialog extends DialogWrapper implements ActionListener
public void actionPerformed(ActionEvent e) {
// choose directory here/
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle("Export Directory");
fcd.setDescription("Select directory to export from subversion");
fcd.setHideIgnored(false);
VirtualFile[] files = FileChooser.chooseFiles(getContentPane(), fcd, null);
if (files == null || files.length != 1 || files[0] == null) {
VirtualFile file = FileChooser.chooseFile(getContentPane(), fcd);
if (file == null) {
return;
}
myPathField.setText(files[0].getPath().replace('/', File.separatorChar));
myPathField.setText(file.getPath().replace('/', File.separatorChar));
}
}
@@ -17,6 +17,7 @@ package org.jetbrains.idea.svn.dialogs.browser;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -194,15 +195,15 @@ public class ImportOptionsDialog extends DialogWrapper implements ActionListener
public void actionPerformed(ActionEvent e) {
// choose directory here/
FileChooserDescriptor fcd = new FileChooserDescriptor(false, true, false, false, false, false);
FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fcd.setShowFileSystemRoots(true);
fcd.setTitle("Checkout Directory");
fcd.setDescription("Select directory to checkout from subversion");
fcd.setHideIgnored(false);
VirtualFile[] files = FileChooser.chooseFiles(getContentPane(), fcd, null);
if (files.length != 1 || files[0] == null) {
VirtualFile file = FileChooser.chooseFile(getContentPane(), fcd);
if (file == null) {
return;
}
myPathField.setText(files[0].getPath().replace('/', File.separatorChar));
myPathField.setText(file.getPath().replace('/', File.separatorChar));
}
}
@@ -18,7 +18,7 @@ package org.jetbrains.idea.svn.integrate;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
@@ -110,9 +110,9 @@ public class IntegratedSelectedOptionsDialog extends DialogWrapper {
}
public void actionPerformed(final AnActionEvent e) {
final VirtualFile[] files = FileChooser.chooseFiles(myProject, new FileChooserDescriptor(false, true, false, false, false, false));
if (files.length > 0) {
final File file = new File(files[0].getPath());
final VirtualFile vFile = FileChooser.chooseFile(myProject, FileChooserDescriptorFactory.createSingleFolderDescriptor());
if (vFile != null) {
final File file = new File(vFile.getPath());
if (hasDuplicate(file)) {
return; // silently do not add duplicate
}
@@ -27,7 +27,6 @@ import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.JavaExecutionUtil;
import com.intellij.execution.configuration.BrowseModuleValueActionListener;
import com.intellij.execution.junit.JUnitUtil;
import com.intellij.execution.testframework.TestSearchScope;
import com.intellij.execution.ui.AlternativeJREPanel;
import com.intellij.execution.ui.CommonJavaParametersPanel;
@@ -36,12 +35,12 @@ import com.intellij.ide.util.TreeClassChooser;
import com.intellij.ide.util.TreeClassChooserFactory;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComponentWithBrowseButton;
import com.intellij.openapi.ui.LabeledComponent;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass;
@@ -59,7 +58,6 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;
import java.awt.*;
import java.awt.event.ActionEvent;
@@ -343,7 +341,7 @@ public class TestNGConfigurationEditor extends SettingsEditor<TestNGConfiguratio
TextFieldWithBrowseButton outputDirectoryButton = new TextFieldWithBrowseButton();
outputDirectory.setComponent(outputDirectoryButton);
outputDirectoryButton.addBrowseFolderListener("TestNG", "Select test output directory", project,
new FileChooserDescriptor(false, true, false, false, false, false));
FileChooserDescriptorFactory.createSingleFolderDescriptor());
moduleClasspath.setEnabled(true);
moduleClasspath.setComponent(new JComboBox());
@@ -32,26 +32,17 @@ public class SuiteBrowser extends BrowseModuleValueActionListener
@Override
public String showDialog() {
FileChooserDescriptor descriptor = new FileChooserDescriptor(true,
false,
false,
false,
false,
false)
{
@Override
public boolean isFileVisible(VirtualFile virtualFile, boolean showHidden) {
FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false) {
@Override
public boolean isFileVisible(VirtualFile virtualFile, boolean showHidden) {
if(!showHidden && virtualFile.getName().charAt(0) == '.') return false;
return virtualFile.isDirectory() || "xml".equals(virtualFile.getExtension());
}
};
descriptor.setDescription("Please select the testng.xml suite file");
descriptor.setTitle("Select Suite");
VirtualFile[] files = FileChooser.chooseFiles(getProject(), descriptor);
if(files.length > 0) {
return files[0].getPath();
}
return null;
VirtualFile file = FileChooser.chooseFile(getProject(), descriptor);
return file != null ? file.getPath() : null;
}
}
@@ -25,7 +25,7 @@ import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
@@ -202,10 +202,10 @@ public class UndeclaredTestInspection extends BaseJavaLocalInspectionTool {
final PsiClass psiClass = PsiTreeUtil.getParentOfType(descriptor.getPsiElement(), PsiClass.class);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final VirtualFile[] files = FileChooser.chooseFiles(project, new FileChooserDescriptor(false, true, false, false, false, false));
if (files.length == 1) {
final VirtualFile file = FileChooser.chooseFile(project, FileChooserDescriptorFactory.createSingleFolderDescriptor());
if (file != null) {
final PsiManager psiManager = PsiManager.getInstance(project);
final PsiDirectory directory = psiManager.findDirectory(files[0]);
final PsiDirectory directory = psiManager.findDirectory(file);
LOG.assertTrue(directory != null);
new WriteCommandAction(project, getName(), null) {
protected void run(final Result result) throws Throwable {
@@ -97,9 +97,9 @@ public class EditLocationDialog extends DialogWrapper {
new ActionListener() {
public void actionPerformed(ActionEvent ignored) {
FileChooserDescriptor descriptor = getChooserDescriptor();
VirtualFile[] files = FileChooser.chooseFiles(myProject, descriptor);
if (files.length != 0) {
myTfPath.setText(files[0].getPath().replace('/', File.separatorChar));
VirtualFile file = FileChooser.chooseFile(myProject, descriptor);
if (file != null) {
myTfPath.setText(file.getPath().replace('/', File.separatorChar));
}
}
}