From 1d608a3cfd380a8c46b6e25955e705ec7e2a432e Mon Sep 17 00:00:00 2001 From: Anna Bulenkova Date: Mon, 5 Jan 2015 13:20:24 +0100 Subject: [PATCH] [code] TreeStructureProvider example --- tree_structure_provider/META-INF/plugin.xml | 2 +- .../tree/CustomTreeStructureProvider.java | 27 ------------- .../tree/TextOnlyTreeStructureProvider.java | 40 +++++++++++++++++++ 3 files changed, 41 insertions(+), 28 deletions(-) delete mode 100644 tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/CustomTreeStructureProvider.java create mode 100644 tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/TextOnlyTreeStructureProvider.java diff --git a/tree_structure_provider/META-INF/plugin.xml b/tree_structure_provider/META-INF/plugin.xml index 84a10e209..cd4c1f7e3 100644 --- a/tree_structure_provider/META-INF/plugin.xml +++ b/tree_structure_provider/META-INF/plugin.xml @@ -13,7 +13,7 @@ com.intellij.modules.lang - + diff --git a/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/CustomTreeStructureProvider.java b/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/CustomTreeStructureProvider.java deleted file mode 100644 index 75cf50a37..000000000 --- a/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/CustomTreeStructureProvider.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.jetbrains.plugins.sample.tree; - -import com.intellij.ide.projectView.TreeStructureProvider; -import com.intellij.ide.projectView.ViewSettings; -import com.intellij.ide.util.treeView.AbstractTreeNode; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; -import java.util.Collections; - -/** - * @author Anna Bulenkova - */ -public class CustomTreeStructureProvider implements TreeStructureProvider { - @NotNull - @Override - public Collection modify(@NotNull AbstractTreeNode parent, @NotNull Collection children, ViewSettings viewSettings) { - return Collections.emptyList(); - } - - @Nullable - @Override - public Object getData(Collection collection, String s) { - return null; - } -} diff --git a/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/TextOnlyTreeStructureProvider.java b/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/TextOnlyTreeStructureProvider.java new file mode 100644 index 000000000..d97f975c8 --- /dev/null +++ b/tree_structure_provider/scr/org/jetbrains/plugins/sample/tree/TextOnlyTreeStructureProvider.java @@ -0,0 +1,40 @@ +package org.jetbrains.plugins.sample.tree; + +import com.intellij.ide.projectView.TreeStructureProvider; +import com.intellij.ide.projectView.ViewSettings; +import com.intellij.ide.projectView.impl.nodes.PsiFileNode; +import com.intellij.ide.util.treeView.AbstractTreeNode; +import com.intellij.openapi.fileTypes.PlainTextFileType; +import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * @author Anna Bulenkova + */ +public class TextOnlyTreeStructureProvider implements TreeStructureProvider { + @NotNull + @Override + public Collection modify(@NotNull AbstractTreeNode parent, @NotNull Collection children, ViewSettings settings) { + ArrayList nodes = new ArrayList(); + for (AbstractTreeNode child : children) { + if (child instanceof PsiFileNode) { + VirtualFile file = ((PsiFileNode) child).getVirtualFile(); + if (file != null && !file.isDirectory() && !(file.getFileType() instanceof PlainTextFileType)) { + continue; + } + } + nodes.add(child); + } + return nodes; + } + + @Nullable + @Override + public Object getData(Collection collection, String s) { + return null; + } +} \ No newline at end of file