From 4417d22c433ebca450fde588774c1fd3a78f450c Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 7 Apr 2016 17:12:21 +0300 Subject: [PATCH] IDEA-154156 disable FileChooser actions when FileChooser is not in context --- .../fileChooser/actions/FileDeleteAction.java | 15 +++++++++++---- .../fileChooser/actions/ShowHiddensAction.java | 7 +++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java index 654965e25446..f9354c07df7f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/FileDeleteAction.java @@ -20,6 +20,7 @@ import com.intellij.ide.actions.DeleteAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.fileChooser.FileSystemTree; import com.intellij.openapi.fileChooser.ex.FileChooserKeys; public class FileDeleteAction extends DeleteAction { @@ -34,13 +35,19 @@ public class FileDeleteAction extends DeleteAction { @Override public void update(AnActionEvent event) { Presentation presentation = event.getPresentation(); - final Boolean available = event.getData(FileChooserKeys.DELETE_ACTION_AVAILABLE); - if (available != null && !available) { - presentation.setEnabled(false); - presentation.setVisible(false); + FileSystemTree tree = event.getData(FileSystemTree.DATA_KEY); + if (tree == null) { + presentation.setEnabledAndVisible(false); return; } + final Boolean available = event.getData(FileChooserKeys.DELETE_ACTION_AVAILABLE); + if (available != null && !available) { + presentation.setEnabledAndVisible(false); + return; + } + + presentation.setEnabledAndVisible(true); super.update(event); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/ShowHiddensAction.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/ShowHiddensAction.java index 1c8a1c162bcb..dd7b4486ca10 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/ShowHiddensAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/ShowHiddensAction.java @@ -19,11 +19,18 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.ToggleAction; import com.intellij.openapi.fileChooser.FileSystemTree; import com.intellij.openapi.project.DumbAware; +import org.jetbrains.annotations.NotNull; /** * @author Vladimir Kondratyev */ public final class ShowHiddensAction extends ToggleAction implements DumbAware { + @Override + public void update(AnActionEvent e) { + FileSystemTree tree = e.getData(FileSystemTree.DATA_KEY); + e.getPresentation().setEnabled(tree != null); + } + public boolean isSelected(AnActionEvent e) { final FileSystemTree fileSystemTree = e.getData(FileSystemTree.DATA_KEY); return fileSystemTree != null && fileSystemTree.areHiddensShown();