We have slowly started experimenting with Wandora on Netbeans Platform. Netbeans Platform is the RCP (Rich Client Platform) used for the Netbeans IDE. It's basically the core of Netbeans IDE and a platform you can build your own application on. Even if Netbeans IDE is the driving force behind it, the platform is certainly well suited for other types of applications besides IDEs too. The Netbeans Platform home page has a list of applications using the platform and it consists of almost every kind of applications imaginable.
Some of the features built-in the platform which would be very useful in Wandora include:
- Modular design that supports adding plugins and new features more easily. Some of the more specialized extractors and features can be put in modules of their own and installed only when needed. It is also possible for anyone to make modules of their own.
- Automatic updates. You can add module repositories so 3rd party modules can also be updated automatically. Module repositories are also quite easy to setup.
- Netbeans Platform windowing system is very flexible and allows users to completely reorganize the window components. For example you can open several topics at once either in separate tabs, in separate windows or split one window in several parts with one topic in each. You can have components docked at the edges of the main window with or without auto hide.
- Toolbars can be completely customized so you can have fast access to the tools you need often. Keyboard shortcuts can also be added to all tools.
At the code level Netbeans Platform provides a great framework to build your application on. Several core features we have on Wandora now are already implemented better in Netbeans Platform itself. For example how tools (or actions in Netbeans terminology) are handled, how they're put in menus, how the context on which they operate is resolved (meaning the set of topics they operate on).
The general goal is to make the Wandora code base more modular and easier to understand. Extractors and specific features will be contained in modules of their own. Well defined boundaries between modules should make the whole thing easier to grasp. And hopefully all this will then make extending Wandora and customizing it to your own needs a more manageable thing.