NB: How to create toggle-able action for toolbars/menu bars?

For a new NetBeans plugin of mine I was in the need to create a toggle-able action for the toolbar/menu. It took a while, but after some research I found the gem in the NetBeans API: org.openide.util.actions.BooleanStateAction [1]. Easy to use, once you know of its existence. I documented it at [2].

Using it you can create toolbar buttons like this, which behave like JToggleButtons: 2016-06-03_00h07_56.png

Bonus: If you like to create a toggle-able Action, which is bound to a boolean value from a property file (/configuration file) then org.openide.awt.Actions.checkbox  [3] is the solution. An example can be found at [4]

[1] http://bits.netbeans.org/dev/javadoc/org-openide-util-ui/org/openide/util/actions/BooleanStateAction.html
[2] http://wiki.netbeans.org/DevFaqToggleActionAddToEditorToolbar
[3] http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/Actions.html#checkbox-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-
[4] http://wiki.netbeans.org/DevFaqCheckableActionPreferenceOption

Eclipse formatter for Java – Compatibility fork 4.4

As you already know, I provide a NetBeans plugin to format your Java code using the Eclipse formatter engine. Currently the 4.5.x engine is embedded.

But there were several complaints that this version does not format the same way as it does using the previous version. There is a reason for that: The Eclipse formatter has been changed in an incompatible way [1]. Other formatter plugins like the one for Intellj Idea are also affected [2]

But here is a good news for all the brave NetBeans Java developers, who are still in such an environment of 4.4.x Eclipse installations: Now I provide a 4.4-fork of my own plugin. It has the same features and issues like the 4.5 plugin, but it uses the other engine and the plugin has been updated to be installed side by side to the original plugin.


The plugin is already available from the update center from within your NetBeans IDE. Or you can download it from the plugin page [3] or from github [4].


[1] http://eclipse-n-mati.blogspot.de/2015/06/eclipse-mars-how-to-switch-back-to.html
[2] https://github.com/krasa/EclipseCodeFormatter/issues/51
[3] http://plugins.netbeans.org/plugin/64061
[4] https://github.com/markiewb/eclipsecodeformatter_for_netbeans



Version 1.10.2 of Eclipse Code Formatter for Java introduces support for Workspace Mechanic and much more

In the last days and weeks I was busy enhancing the Eclipse Code Formatter plugin. The main focus was the support of the Workspace Mechanic [1] configuration file to be in compliance with my coworkers.

Offtopic: Workspace Mechanic is a plugin for Eclipse IDE itsself, which makes sure that shared Eclipse configurations are applied to your local installation. Have a look. It’s useful in a team of several developers.

Workspace Mechnanic also synchronizes the configuration of the formatter. Luckily its file format is quite simple and thus supportable by my plugin. So next to the standard XML-formatter file you can now use Workspace Mechanic EPF-files too.

I also added some other useful features you may like. That was the reason, why the release of this version took so long. For example now the “format on save”-action can optionally format the changed lines only. You can use formatter settings from .settings, you can configure the Java source level and the line feed. And the download size of the plugin has been massively decreased.

The full changelog can be found at [2]


In a few days it will be available as an update from within your NetBeans IDE. If you are curious and you don’t want to wait for it, then you can install it manually from [3] or [4].

Feel free to file issues and even better, provide pull-requests! We see us at NetBeans Day Germany in Munich on the 31st of March 2016. Get your ticket at [5]!

[1] Workspace Mechanic
[2] https://github.com/markiewb/eclipsecodeformatter_for_netbeans/issues?q=milestone%3A1.10.2
[3] http://plugins.netbeans.org/plugin/50877
[4] https://github.com/markiewb/eclipsecodeformatter_for_netbeans
[5] NetBeans Day Germany in Munich

Quicktip: Maven-based NBM development and the user-dir

When you develop a NetBeans module using the Maven-approach, every time you “Clean & build” your module the userdir, which is placed in the target-directory by default, will be deleted. “Clean & Build” is necessary if you’re altering the layer.xml directly or indirectly by using annotations like @ActionReferences.  So after that you have to reconfigure your target platform again, f.e. by opening the same projects and files to restore the previous state. That is annoying, but easy to fix.

Add a profile to your settings.xml



After that you can choose the profile from the profile-dropdown or in the context-menu of the project node.


This way the configured userdir is used for running/debugging your NetBeans module. It won’t get deleted automatically.

Advanced tips: Of course you can also configure an absolute path or even make the profile default by applying activeByDefault



Quicktip: How to display your own Java code-templates in the code completion of NetBeans IDE

After blogged about How to display your own PHP code-templates in the code completion of NetBeans IDE a NetBeans user asked me how it works for Java code.

Yes, it is possible and it is even simpler. Since NetBeans 7.4 (issue #160771) you can define the context, where code-template has to be shown. Don’t be overwhelmed by the available contexts. For completions within a block/method choose BLOCK.


Quicktip: How to display your own PHP code-templates in the code completion of NetBeans IDE

Here a small tip for all the PHP developers, which want to see their code-templates in the code-completion list of NetBeans IDE.

  1. First create your own code template in code-template options at “Tools|Options|Editor|Code Templates” and save the options.
  2. Then open the code-templates file from your NetBeans user dir. For example: c:\Users\johndoe\AppData\Roaming\NetBeans\8.0.2\config\Editors\text\x-php5\CodeTemplates\org-netbeans-modules-editor-settings-CustomCodeTemplates.xml This XML file contains all your custom template settings for the given mime-type.
  3. Search for your entry and add contexts="php-code" to the <codetemplate>-tag and save it.

This way the template will be displayed in the code-completion list too.

When it looks like this

<codetemplate abbreviation="ech" contexts="php-code">
    <code><![CDATA[echo "${cursor} it works"]]></code>

it will work like that.


If you like to have a option for that in the UI the NetBeans IDE itself, then please file an issue at https://netbeans.org/bugzilla -> Not needed anymore. See the update below.

UPDATE:  In the next version of NetBeans IDE (>8.1) no fiddling in files is needed anymore. Thanks to junichi11, who provided a patch to solve this via issue #246664 . The context can be set in the new context tab within the code-templates options.