filters per dependency panel

This commit is contained in:
Anna Kozlova
2005-01-20 12:37:16 +03:00
parent c6d9137173
commit 05e9280213
2 changed files with 46 additions and 13 deletions

View File

@@ -54,7 +54,7 @@ public class DependenciesPanel extends JPanel {
private Project myProject;
private DependenciesBuilder myBuilder;
private Content myContent;
private DependencyPanelSettings mySettings = new DependencyPanelSettings();
public DependenciesPanel(Project project, final DependenciesBuilder builder) {
@@ -260,7 +260,7 @@ public class DependenciesPanel extends JPanel {
}
private TreeModelBuilder.TreeModel buildTreeModel(Set<PsiFile> deps, TreeModelBuilder.Marker marker) {
return TreeModelBuilder.createTreeModel(myProject, false, deps, marker);
return TreeModelBuilder.createTreeModel(myProject, false, deps, marker, mySettings);
}
private void updateLeftTreeModel() {
@@ -342,6 +342,7 @@ public class DependenciesPanel extends JPanel {
public void actionPerformed(AnActionEvent e) {
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
mySettings.copyToApplicationDependencySettings();
}
}
@@ -351,11 +352,12 @@ public class DependenciesPanel extends JPanel {
}
public boolean isSelected(AnActionEvent event) {
return DependencyUISettings.getInstance().UI_FLATTEN_PACKAGES;
return mySettings.UI_FLATTEN_PACKAGES;
}
public void setSelected(AnActionEvent event, boolean flag) {
DependencyUISettings.getInstance().UI_FLATTEN_PACKAGES = flag;
mySettings.UI_FLATTEN_PACKAGES = flag;
rebuild();
}
}
@@ -366,11 +368,12 @@ public class DependenciesPanel extends JPanel {
}
public boolean isSelected(AnActionEvent event) {
return DependencyUISettings.getInstance().UI_SHOW_FILES;
return mySettings.UI_SHOW_FILES;
}
public void setSelected(AnActionEvent event, boolean flag) {
DependencyUISettings.getInstance().UI_SHOW_FILES = flag;
mySettings.UI_SHOW_FILES = flag;
rebuild();
}
}
@@ -381,11 +384,12 @@ public class DependenciesPanel extends JPanel {
}
public boolean isSelected(AnActionEvent event) {
return DependencyUISettings.getInstance().UI_SHOW_MODULES;
return mySettings.UI_SHOW_MODULES;
}
public void setSelected(AnActionEvent event, boolean flag) {
DependencyUISettings.getInstance().UI_SHOW_MODULES = flag;
mySettings.UI_SHOW_MODULES = flag;
rebuild();
}
}
@@ -396,11 +400,12 @@ public class DependenciesPanel extends JPanel {
}
public boolean isSelected(AnActionEvent event) {
return DependencyUISettings.getInstance().UI_GROUP_BY_SCOPE_TYPE;
return mySettings.UI_GROUP_BY_SCOPE_TYPE;
}
public void setSelected(AnActionEvent event, boolean flag) {
DependencyUISettings.getInstance().UI_GROUP_BY_SCOPE_TYPE = flag;
mySettings.UI_GROUP_BY_SCOPE_TYPE = flag;
rebuild();
}
}
@@ -412,11 +417,12 @@ public class DependenciesPanel extends JPanel {
}
public boolean isSelected(AnActionEvent event) {
return DependencyUISettings.getInstance().UI_FILTER_LEGALS;
return mySettings.UI_FILTER_LEGALS;
}
public void setSelected(AnActionEvent event, boolean flag) {
DependencyUISettings.getInstance().UI_FILTER_LEGALS = flag;
mySettings.UI_FILTER_LEGALS = flag;
rebuild();
}
}
@@ -446,6 +452,7 @@ public class DependenciesPanel extends JPanel {
public void actionPerformed(AnActionEvent e) {
DependencyValidationManager.getInstance(myProject).closeContent(myContent);
mySettings.copyToApplicationDependencySettings();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if (myBuilder.isBackward()) {
@@ -572,6 +579,7 @@ public class DependenciesPanel extends JPanel {
PsiElement elt = node.getPsiElement();
if (elt != null) {
DependencyUISettings.getInstance().UI_FILTER_LEGALS = false;
mySettings.UI_FILTER_LEGALS = false;
selectElementInLeftTree(elt);
}
@@ -592,4 +600,30 @@ public class DependenciesPanel extends JPanel {
}
}
}
}
public static class DependencyPanelSettings {
public boolean UI_FLATTEN_PACKAGES = true;
public boolean UI_SHOW_FILES = false;
public boolean UI_SHOW_MODULES = true;
public boolean UI_FILTER_LEGALS = false;
public boolean UI_GROUP_BY_SCOPE_TYPE = true;
public DependencyPanelSettings() {
final DependencyUISettings settings = DependencyUISettings.getInstance();
UI_FLATTEN_PACKAGES = settings.UI_FLATTEN_PACKAGES;
UI_SHOW_FILES = settings.UI_SHOW_FILES;
UI_SHOW_MODULES = settings.UI_SHOW_MODULES;
UI_FILTER_LEGALS = settings.UI_FILTER_LEGALS;
UI_GROUP_BY_SCOPE_TYPE = settings.UI_GROUP_BY_SCOPE_TYPE;
}
public void copyToApplicationDependencySettings(){
final DependencyUISettings settings = DependencyUISettings.getInstance();
settings.UI_FLATTEN_PACKAGES = UI_FLATTEN_PACKAGES;
settings.UI_SHOW_FILES = UI_SHOW_FILES;
settings.UI_SHOW_MODULES = UI_SHOW_MODULES;
settings.UI_FILTER_LEGALS = UI_FILTER_LEGALS;
settings.UI_GROUP_BY_SCOPE_TYPE = UI_GROUP_BY_SCOPE_TYPE;
}
}
}

View File

@@ -67,9 +67,8 @@ public class TreeModelBuilder {
public static final String TEST_NAME = "Test Classes";
public static final String LIBRARY_NAME = "Library Classes";
private TreeModelBuilder(Project project, boolean showIndividualLibs, Marker marker) {
private TreeModelBuilder(Project project, boolean showIndividualLibs, Marker marker, DependenciesPanel.DependencyPanelSettings settings) {
myProject = project;
DependencyUISettings settings = DependencyUISettings.getInstance();
myShowModules = settings.UI_SHOW_MODULES;
myGroupByScopeType = settings.UI_GROUP_BY_SCOPE_TYPE;
myFlattenPackages = settings.UI_FLATTEN_PACKAGES;
@@ -125,14 +124,14 @@ public class TreeModelBuilder {
boolean isMarked(PsiFile file);
}
public static TreeModel createTreeModel(Project project, boolean showProgress, Set<PsiFile> files, Marker marker) {
return new TreeModelBuilder(project, true, marker).build(files, showProgress);
public static TreeModel createTreeModel(Project project, boolean showProgress, Set<PsiFile> files, Marker marker, DependenciesPanel.DependencyPanelSettings settings) {
return new TreeModelBuilder(project, true, marker, settings).build(files, showProgress);
}
public static TreeModel createTreeModel(Project project, boolean showProgress,
boolean showIndividualLibs,
Marker marker) {
return new TreeModelBuilder(project, showIndividualLibs, marker).build(project, showProgress);
return new TreeModelBuilder(project, showIndividualLibs, marker, new DependenciesPanel.DependencyPanelSettings()).build(project, showProgress);
}
private VirtualFile[] getLibraryRoots(Project project) {