--- title: Tree Structure View --- This tutorial is meant to illustrate how the project tree structure view appearance can be modified programmatically. If you need to know more about basic concepts of a project view in IntelliJ-based IDEs, please refer to [Exploring The Project Structure](https://www.jetbrains.com/idea/help/exploring-the-project-structure.html#d164891e120) of [IntelliJ IDEA Web Help](https://www.jetbrains.com/idea/help/intellij-idea.html). Series of step below show how to filter out and keep visible only text files and directories in the Project View Panel. ## Pre-requirements Create an empty plugin project. See [Creating a Plugin Project](/basics/getting_started/creating_plugin_project.md). ## 1. Register Custom TreeStructure Provider Add new *treeStructureProvider* extension to the [plugin.xml](https://github.com/JetBrains/intellij-sdk-docs/blob/master/code_samples/tree_structure_provider/resources/META-INF/plugin.xml) ```java ``` ## 2. Implement Custom TreeStructureProvider To provide custom Structure View behaviour you need to implement TreeStructureProvider interface. ```java public class TextOnlyTreeStructureProvider implements TreeStructureProvider { @NotNull @Override public Collection modify(@NotNull AbstractTreeNode parent, @NotNull Collection children, ViewSettings settings) { return null; } @Nullable @Override public Object getData(Collection collection, String s) { return null; } } ``` ## 3. Override modify() method To implement Tree Structure nodes filtering logic, override `modify()` method. The example below shows how to filter out all the Project View nodes except those which correspond to text files and directories. ```java {% include /code_samples/tree_structure_provider/src/org/jetbrains/tutorials/tree/structure/TextOnlyTreeStructureProvider.java %} ``` ## 4. Compile and Run the Plugin Compile and run the code sample from this tutorial. Refer to [Running and Debugging a Plugin](/basics/getting_started/running_and_debugging_a_plugin.md). After going through the steps described above you can see only text files and directories belonging to a project in the Project View. ![Text Files](tree_structure_view/img/text_only.png) Check out [plugin source code](https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/tree_structure_provider) and build the project to see how TreeStructureView provider works in practice.