blob: 8f45744d70e172c24d54a4dc7ac2144cd506aaa2 [file] [log] [blame]
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.fileChooser;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/** @deprecated use {@link FileChooserDescriptor} or {@link FileChooserDescriptorFactory} (to be removed in IDEA 15) */
@SuppressWarnings({"UnusedDeclaration", "deprecation"})
public class FileChooserDescriptorBuilder {
private boolean myChooseFiles;
private boolean myChooseFolders;
private boolean myChooseJars;
private boolean myChooseJarsAsFiles;
private boolean myChooseJarContents;
private boolean myChooseMultiple;
private String myTitle = null;
private String myDescription = null;
private Boolean myShowFileSystemRoots = null;
private Boolean myHideIgnored = null;
private Boolean myTreeRootVisible = null;
private List<VirtualFile> myRoots = null;
public FileChooserDescriptorBuilder(boolean chooseFiles,
boolean chooseFolders,
boolean chooseJars,
boolean chooseJarsAsFiles,
boolean chooseJarContents,
boolean chooseMultiple) {
myChooseFiles = chooseFiles;
myChooseFolders = chooseFolders;
myChooseJars = chooseJars;
myChooseJarsAsFiles = chooseJarsAsFiles;
myChooseJarContents = chooseJarContents;
myChooseMultiple = chooseMultiple;
}
public static FileChooserDescriptorBuilder onlyFiles() {
return new FileChooserDescriptorBuilder(true, false, false, false, false, false);
}
public static FileChooserDescriptorBuilder onlyFolders() {
return new FileChooserDescriptorBuilder(false, true, false, false, false, false);
}
public static FileChooserDescriptorBuilder filesAndFolders() {
return new FileChooserDescriptorBuilder(true, true, false, false, false, false);
}
public FileChooserDescriptorBuilder chooseMultiple() {
myChooseMultiple = true;
return this;
}
public FileChooserDescriptorBuilder chooseJars(boolean chooseJars, boolean chooseJarsAsFiles, boolean chooseJarContents) {
myChooseJars = chooseJars;
myChooseJarsAsFiles = chooseJarsAsFiles;
myChooseJarContents = chooseJarContents;
return this;
}
public FileChooserDescriptorBuilder withTitle(@NotNull String title) {
myTitle = title;
return this;
}
public FileChooserDescriptorBuilder withDescription(@NotNull String description) {
myDescription = description;
return this;
}
public FileChooserDescriptorBuilder hideSystemRoots() {
myShowFileSystemRoots = false;
return this;
}
public FileChooserDescriptorBuilder showIgnored() {
myHideIgnored = false;
return this;
}
public FileChooserDescriptorBuilder withTreeRootVisible(boolean isTreeRootVisible) {
myTreeRootVisible = isTreeRootVisible;
return this;
}
public FileChooserDescriptorBuilder withRoots(List<VirtualFile> roots) {
myRoots = roots;
return this;
}
public FileChooserDescriptor build() {
FileChooserDescriptor descriptor =
new FileChooserDescriptor(myChooseFiles, myChooseFolders, myChooseJars, myChooseJarsAsFiles, myChooseJarContents, myChooseMultiple);
if (myTitle != null) {
descriptor.setTitle(myTitle);
}
if (myDescription != null) {
descriptor.setDescription(myDescription);
}
if (myShowFileSystemRoots != null) {
descriptor.setShowFileSystemRoots(myShowFileSystemRoots);
}
if (myHideIgnored != null) {
descriptor.setHideIgnored(myHideIgnored);
}
if (myTreeRootVisible != null) {
descriptor.withTreeRootVisible(myTreeRootVisible);
}
if (myRoots != null) {
descriptor.setRoots(myRoots);
}
return descriptor;
}
}