Substance module will not be supported in NetBeans 6.0
June 19th, 2007 | 7 Comments »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.
Related posts:
- Substance module will be supported in NetBeans 6.0 I’m very happy to report that NetBeans developers have unrolled the changes that broke the...
- Discontinuing Substance NetBeans module Starting today i am discontinuing support for Substance NetBeans module, including fixing bugs and synchronizing...
- Substance NetBeans module has a new owner About two months ago i have discontinued my support for the Substance NetBeans module. Today,...
- Adding some iPhone flavor to NetBeans 6.0 Here is how you can add a little iPhone flavor to NetBeans 6.0 (click on...
This is sad indeed!
I have been using the NB6 m9 since it were made public, and this has definitively pushed away Eclipse.
As i started using NB 5 my coworkers were still clinging to Eclipse and it were just such a pleasure to brag about Matisse and also have the substance plug in installed to dwarf their beloved IDE ;)
But again; the reason for why i like substance (very much) is not because it make my IDE look great, but because the apps i work on gets to do so!
A shame though as the Netbeans plug in were a great showcase for developers..
Couldnt you yourself Kirill get involved and help redesign the API to be extensible? Surely they would welcome your contributions
Ben – it all comes down to how much time i can devote to these projects, and how to divide that time between them all.
I also consider this a sad development – and if Netbeans based RCPs are supposed to gain wider recognition even more so. I mean why should one have all the L&F configurability in Swing when one has no longer the broad choice of a L&F if picking Netbeans RCPs – and by that I mean a L&F which is really trying to support all of Netbeans.
I like the Vista UI of the Netbeans tabbedPane which looks good with most modern Look and Feels. There’s a param to enable a specified theme (-Dnb.forceui=Vista ). Unfortunately the used colors are predefined and don’t support any UIResource settings. A few Netbeans specific ColorUIResources, which could be provided by third party LAF vendors, would help in making customization really easy.
Wolfgang,
Indeed it is possible to plug a simple “look” for the tabs. However, if you want to go a little bit deeper and provide support for custom gradients, shape (corner radius), icons and animations, you’ll have to create a custom UI delegate. And let’s not forget about dark themes…
[...] very happy to report that NetBeans developers have unrolled the changes that broke the Substance NetBeans module (reported in early May on NetBeans bug tracker). And so, if [...]