diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java index 963e8aaf0a7a..6f88b3bd9d29 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java @@ -21,10 +21,7 @@ import com.intellij.ide.util.treeView.AbstractTreeBuilder; import com.intellij.ide.util.treeView.AbstractTreeStructure; import com.intellij.ide.util.treeView.NodeDescriptor; import com.intellij.idea.ActionsBundle; -import com.intellij.openapi.actionSystem.CustomShortcutSet; -import com.intellij.openapi.actionSystem.DataProvider; -import com.intellij.openapi.actionSystem.DefaultActionGroup; -import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.CustomComponentAction; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; @@ -279,6 +276,10 @@ public class ContentEntryTreeEditor { @Override @Nullable public Object getData(@NonNls final String dataId) { + if (CommonDataKeys.VIRTUAL_FILE_ARRAY.is(dataId)) { + return myFileSystemTree.getSelectedFiles(); + } + if (FileSystemTree.DATA_KEY.is(dataId)) { return myFileSystemTree; } diff --git a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileSystemTree.java b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileSystemTree.java index 03a7fcc8cbf4..9547595ac02c 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileSystemTree.java +++ b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileSystemTree.java @@ -25,6 +25,11 @@ import javax.swing.*; import java.util.List; public interface FileSystemTree extends Disposable { + /** + * If you return a {@link FileSystemTree} instance for this key from a {@link com.intellij.openapi.actionSystem.DataContext} + * you must also return {@link #getSelectedFiles()} for {@link com.intellij.openapi.actionSystem.CommonDataKeys#VIRTUAL_FILE_ARRAY} key. + * Otherwise 'Delete' action on your component may delete the whole project. + */ DataKey DATA_KEY = DataKey.create("FileSystemTree"); JTree getTree();