Chapter 18. Creating the QuickPanel Module

Now that we’ve walked through the basic mechanics of creating a module, let’s move on to a more advanced example that involves more interaction with the Open APIs. The quickpanel module will create a graphical TopComponent (we’ll actually be subclassing a TopComponent subclass called ExplorerPanel) that can be docked into the editor window and contains a drop-down list containing all of the files available in the current project, including subfolders, allowing you to quickly navigate between files. Then we will add a second drop-down list that will allow you to navigate quickly among all of the methods in the currently opened source file.

So where to start? We know we need:

A combo box to display the contents of the current project

An existing explorer view is such a component and can be rooted on an arbitrary node—org.openide.explorer.views.ChoiceView.

A container component for our combo boxes

The Explorer API also provides the convenient visual org.openide.explorer.ExplorerPanel class that contains the hooks to talk to an explorer view residing inside it.

An action so the user can display the panel

The basic, non-context-sensitive action class org.openide.actions.CallableSystemAction can be subclassed to do this.

A way of filtering out children of nodes we don’t want

We won’t want to see Classes, Methods, and Fields subnodes of Java class files in our explorer view, just the nodes that represent folders or files. We will solve this by subclassing ...

Get NetBeans: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.