Substance module will not be supported in NetBeans 6.0

June 19th, 2007

It saddens me to say this, but Substance module for NetBeans, which allows you to play with all the available themes, watermarks, skins, and even set an arbitrary image as the IDE watermark (a feature that was used extensively in the NetBeans look and feel contest about a year ago) will not be supported in NetBeans 6.0.

You can see the comments on issue 66335 and issue 103361. The first one was opened more than two years ago, and asked to clean up the code of the custom tabbed pane used for the NetBeans editor. The vast majority of the code there is either private or package-protected, and as such, i had to copy a lot of it into Substance module. This led to quite significant code bloat on my part (which was completely unnecessary), making the code base much less readable and maintainable. Nonetheless, the module was functioning as expected in 5.0 and in 5.5 (without any code changes).

However, the upcoming version 6.0 introduces binary incompatibilities in the tabbed pane component (see the second issue above), which breaks the Substance module. In order to address this, i would have to copy yet more classes into my module, since the base implementation is, once again, either private or package-protected. Unfortunately, NetBeans developers view this as internal implementation details, saying this in the comments on the first bug that i filed:

The code is not designed for extensibility to other UI delegates (which is btw complicated task, believe me) and I doubt it will ever be, currently we have no plan to support it, simply because this library was intended primarily as private use-only-in-IDE library and we can’t afford to maintain it as public extensible library with nice API. Too little effect for too much work for us, sorry.

Hopefully this decision will be reconsidered, since this plugin is quite a popular one (featuring in the top ten most popular NetBeans plugins). If not, you will have to uninstall it if you’re planning to upgrade to NetBeans 6.0.

Update: NetBeans developers have unrolled the changes the broke Substance module. Use the latest drop of Substance 4.0dev module and NetBeans 6.0 daily builds after July 26th.