IDEADEV-36687 remove DataContext access on ProjectComponent init
[fedora-idea.git] / lang-impl / src / com / intellij / find / findUsages / FindUsagesOptions.java
blobf59f51aca0a8dd4e4bb0bf0475a03674fe9d82ce
2 package com.intellij.find.findUsages;
4 import com.intellij.find.FindSettings;
5 import com.intellij.ide.util.scopeChooser.ScopeChooserCombo;
6 import com.intellij.openapi.actionSystem.DataContext;
7 import com.intellij.openapi.project.Project;
8 import com.intellij.openapi.util.UserDataHolderBase;
9 import com.intellij.psi.search.ProjectScope;
10 import com.intellij.psi.search.SearchScope;
11 import org.jetbrains.annotations.NotNull;
12 import org.jetbrains.annotations.Nullable;
14 import java.util.List;
16 /**
19 public class FindUsagesOptions extends UserDataHolderBase implements Cloneable {
20 public SearchScope searchScope;
22 public boolean isSearchForTextOccurences = true;
24 public boolean isUsages = false;
25 public boolean isClassesUsages = false;
26 public boolean isMethodsUsages = false;
27 public boolean isFieldsUsages = false;
28 public boolean isDerivedClasses = false;
29 public boolean isImplementingClasses = false;
30 public boolean isDerivedInterfaces = false;
31 public boolean isOverridingMethods = false;
32 public boolean isImplementingMethods = false;
33 public boolean isIncludeSubpackages = true;
34 public boolean isSkipImportStatements = false;
35 public boolean isSkipPackageStatements = false;
36 public boolean isCheckDeepInheritance = true;
37 public boolean isIncludeInherited = false;
38 public boolean isReadAccess = false;
39 public boolean isWriteAccess = false;
40 public boolean isIncludeOverloadUsages = false;
41 public boolean isThrowUsages = false;
43 public FindUsagesOptions(@NotNull Project project, @Nullable final DataContext dataContext) {
44 String defaultScopeName = FindSettings.getInstance().getDefaultScopeName();
45 List<SearchScope> predefined = ScopeChooserCombo.getPredefinedScopes(project, dataContext, true, false, false, false);
46 for (SearchScope scope : predefined) {
47 if (scope.getDisplayName().equals(defaultScopeName)) {
48 searchScope = scope;
49 break;
52 if (searchScope == null) {
53 searchScope = ProjectScope.getProjectScope(project);
57 public Object clone() {
58 return super.clone();
61 public boolean equals(final Object o) {
62 if (this == o) return true;
63 if (o == null || getClass() != o.getClass()) return false;
65 final FindUsagesOptions that = (FindUsagesOptions)o;
67 if (isCheckDeepInheritance != that.isCheckDeepInheritance) return false;
68 if (isClassesUsages != that.isClassesUsages) return false;
69 if (isDerivedClasses != that.isDerivedClasses) return false;
70 if (isDerivedInterfaces != that.isDerivedInterfaces) return false;
71 if (isFieldsUsages != that.isFieldsUsages) return false;
72 if (isImplementingClasses != that.isImplementingClasses) return false;
73 if (isImplementingMethods != that.isImplementingMethods) return false;
74 if (isIncludeInherited != that.isIncludeInherited) return false;
75 if (isIncludeOverloadUsages != that.isIncludeOverloadUsages) return false;
76 if (isIncludeSubpackages != that.isIncludeSubpackages) return false;
77 if (isMethodsUsages != that.isMethodsUsages) return false;
78 if (isOverridingMethods != that.isOverridingMethods) return false;
79 if (isReadAccess != that.isReadAccess) return false;
80 if (isSearchForTextOccurences != that.isSearchForTextOccurences) return false;
81 if (isSkipImportStatements != that.isSkipImportStatements) return false;
82 if (isSkipPackageStatements != that.isSkipPackageStatements) return false;
83 if (isThrowUsages != that.isThrowUsages) return false;
84 if (isUsages != that.isUsages) return false;
85 if (isWriteAccess != that.isWriteAccess) return false;
86 if (searchScope != null ? !searchScope.equals(that.searchScope) : that.searchScope != null) return false;
88 return true;
91 public int hashCode() {
92 int result;
93 result = (searchScope != null ? searchScope.hashCode() : 0);
94 result = 31 * result + (isSearchForTextOccurences ? 1 : 0);
95 result = 31 * result + (isUsages ? 1 : 0);
96 result = 31 * result + (isClassesUsages ? 1 : 0);
97 result = 31 * result + (isMethodsUsages ? 1 : 0);
98 result = 31 * result + (isFieldsUsages ? 1 : 0);
99 result = 31 * result + (isDerivedClasses ? 1 : 0);
100 result = 31 * result + (isImplementingClasses ? 1 : 0);
101 result = 31 * result + (isDerivedInterfaces ? 1 : 0);
102 result = 31 * result + (isOverridingMethods ? 1 : 0);
103 result = 31 * result + (isImplementingMethods ? 1 : 0);
104 result = 31 * result + (isIncludeSubpackages ? 1 : 0);
105 result = 31 * result + (isSkipImportStatements ? 1 : 0);
106 result = 31 * result + (isSkipPackageStatements ? 1 : 0);
107 result = 31 * result + (isCheckDeepInheritance ? 1 : 0);
108 result = 31 * result + (isIncludeInherited ? 1 : 0);
109 result = 31 * result + (isReadAccess ? 1 : 0);
110 result = 31 * result + (isWriteAccess ? 1 : 0);
111 result = 31 * result + (isIncludeOverloadUsages ? 1 : 0);
112 result = 31 * result + (isThrowUsages ? 1 : 0);
113 return result;