diff --git a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java index c55ef6c99c59..7f26a3df51e3 100644 --- a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java +++ b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java @@ -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 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 { } } } -} \ No newline at end of file + + 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; + } + } +} diff --git a/source/com/intellij/packageDependencies/ui/TreeModelBuilder.java b/source/com/intellij/packageDependencies/ui/TreeModelBuilder.java index a28ee3421d94..715b1b94d2db 100644 --- a/source/com/intellij/packageDependencies/ui/TreeModelBuilder.java +++ b/source/com/intellij/packageDependencies/ui/TreeModelBuilder.java @@ -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 files, Marker marker) { - return new TreeModelBuilder(project, true, marker).build(files, showProgress); + public static TreeModel createTreeModel(Project project, boolean showProgress, Set 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) {