diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index a29b9b4d6c33..a2dac56738a7 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -532,11 +532,19 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo public void setSelected(AnActionEvent event, boolean flag) { final AbstractProjectViewPane viewPane = getCurrentProjectViewPane(); final SelectionInfo selectionInfo = SelectionInfo.create(viewPane); - + if (isGlobalOptions()) { + setFlattenPackages(flag, viewPane.getId()); + } super.setSelected(event, flag); selectionInfo.apply(viewPane); } + + @Override + public boolean isSelected(AnActionEvent event) { + if (isGlobalOptions()) return getGlobalOptions().getFlattenPackages(); + return super.isSelected(event); + } }).setAsSecondary(true); } @@ -549,6 +557,14 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo super(optionsMap, text, description, icon, optionDefaultValue); } + @Override + public void setSelected(AnActionEvent event, boolean flag) { + if (isGlobalOptions()) { + getGlobalOptions().setFlattenPackages(flag); + } + super.setSelected(event, flag); + } + @Override public void update(AnActionEvent e) { super.update(e); @@ -1376,8 +1392,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo public void setFlattenPackages(boolean flattenPackages, String paneId) { if (isGlobalOptions()) { getGlobalOptions().setFlattenPackages(flattenPackages); + for (String pane : myFlattenPackages.keySet()) { + setPaneOption(myFlattenPackages, flattenPackages, pane, true); + } + } else { + setPaneOption(myFlattenPackages, flattenPackages, paneId, true); } - setPaneOption(myFlattenPackages, flattenPackages, paneId, true); } public boolean isFoldersAlwaysOnTop() { @@ -1477,8 +1497,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo public void setHideEmptyPackages(boolean hideEmptyPackages, @NotNull String paneId) { if (isGlobalOptions()) { getGlobalOptions().setHideEmptyPackages(hideEmptyPackages); + for (String pane : myHideEmptyPackages.keySet()) { + setPaneOption(myHideEmptyPackages, hideEmptyPackages, pane, true); + } + } else { + setPaneOption(myHideEmptyPackages, hideEmptyPackages, paneId, true); } - setPaneOption(myHideEmptyPackages, hideEmptyPackages, paneId, true); } @Override @@ -1516,16 +1540,25 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo final AbstractProjectViewPane viewPane = getCurrentProjectViewPane(); final SelectionInfo selectionInfo = SelectionInfo.create(viewPane); + if (isGlobalOptions()) { + getGlobalOptions().setHideEmptyPackages(flag); + } super.setSelected(event, flag); selectionInfo.apply(viewPane); } + @Override + public boolean isSelected(AnActionEvent event) { + if (isGlobalOptions()) return getGlobalOptions().getHideEmptyPackages(); + return super.isSelected(event); + } + @Override public void update(AnActionEvent e) { super.update(e); final Presentation presentation = e.getPresentation(); - if (isFlattenPackages(myCurrentViewId)) { + if (isHideEmptyMiddlePackages(myCurrentViewId)) { presentation.setText(IdeBundle.message("action.hide.empty.middle.packages")); presentation.setDescription(IdeBundle.message("action.show.hide.empty.middle.packages")); }