blob: 584b733aaa7c4ad1424898c0bab795d0792bc4bc [file] [log] [blame]
/*
* Copyright 2000-2009 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.ide.util;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* User: anna
* Date: Jan 25, 2005
*/
public class TreeClassChooserFactoryImpl extends TreeClassChooserFactory {
private final Project myProject;
public TreeClassChooserFactoryImpl(@NotNull Project project) {
myProject = project;
}
@NotNull
public TreeClassChooser createWithInnerClassesScopeChooser(String title,
GlobalSearchScope scope,
final ClassFilter classFilter,
PsiClass initialClass) {
return TreeJavaClassChooserDialog.withInnerClasses(title, myProject, scope, classFilter, initialClass);
}
@NotNull
public TreeClassChooser createNoInnerClassesScopeChooser(String title,
GlobalSearchScope scope,
ClassFilter classFilter,
PsiClass initialClass) {
return new TreeJavaClassChooserDialog(title, myProject, scope, classFilter, initialClass);
}
@NotNull
public TreeClassChooser createProjectScopeChooser(String title, PsiClass initialClass) {
return new TreeJavaClassChooserDialog(title, myProject, initialClass);
}
@NotNull
public TreeClassChooser createProjectScopeChooser(String title) {
return new TreeJavaClassChooserDialog(title, myProject);
}
@NotNull
public TreeClassChooser createAllProjectScopeChooser(String title) {
return new TreeJavaClassChooserDialog(title, myProject, GlobalSearchScope.allScope(myProject), null, null);
}
@NotNull
public TreeClassChooser createInheritanceClassChooser(String title,
GlobalSearchScope scope,
PsiClass base,
boolean acceptsSelf,
boolean acceptInner,
Condition<? super PsiClass> additionalCondition) {
ClassFilter classFilter = new TreeJavaClassChooserDialog.InheritanceJavaClassFilterImpl(base, acceptsSelf, acceptInner, additionalCondition);
return new TreeJavaClassChooserDialog(title, myProject, scope, classFilter, base, null, false);
}
@NotNull
public TreeClassChooser createInheritanceClassChooser(String title, GlobalSearchScope scope, PsiClass base, PsiClass initialClass) {
return createInheritanceClassChooser(title, scope, base, initialClass, null);
}
@NotNull
public TreeClassChooser createInheritanceClassChooser(String title, GlobalSearchScope scope, PsiClass base, PsiClass initialClass,
ClassFilter classFilter) {
return new TreeJavaClassChooserDialog(title, myProject, scope, classFilter, base, initialClass, false);
}
@NotNull
public TreeFileChooser createFileChooser(@NotNull String title,
final PsiFile initialFile,
FileType fileType,
TreeFileChooser.PsiFileFilter filter) {
return new TreeFileChooserDialog(myProject, title, initialFile, fileType, filter, false, false);
}
@NotNull
public
TreeFileChooser createFileChooser(@NotNull String title,
@Nullable PsiFile initialFile,
@Nullable FileType fileType,
@Nullable TreeFileChooser.PsiFileFilter filter,
boolean disableStructureProviders) {
return new TreeFileChooserDialog(myProject, title, initialFile, fileType, filter, disableStructureProviders, false);
}
@NotNull
public TreeFileChooser createFileChooser(@NotNull String title, @Nullable PsiFile initialFile, @Nullable FileType fileType,
@Nullable TreeFileChooser.PsiFileFilter filter,
boolean disableStructureProviders,
boolean showLibraryContents) {
return new TreeFileChooserDialog(myProject, title, initialFile, fileType, filter, disableStructureProviders, showLibraryContents);
}
}