Eclipse WindowBuilder: JavaDoc tags reference
Estimated reading time: ~4 minutes
Documentation about the WindowBuilder JavaDoc tags is sparse. I have found only two resources so far. First the source code and second the DesignerCustomizationAPI.pdf.
Though the DesignerCustomizationAPI.pdf is part of the official WindowBuilder documentation it’s a little bit hard to find. As a quick reference I have listed all WindowBuilder JavaDoc tags which I know so far in this blog post. Most of the information is taken directly from DesignerCustomizationAPI.pdf.
@wbp.factory
Description
Specifies if method is a factory method. If this tag is used on a class, then
all methods of this class are considered as factories. Designer will
automatically exclude methods that return null
(such as setters) and getters,
i.e. methods that starts with set
and have no parameters.
@wbp.factory.parameter.source parameterName expressionSource
Description
Sets the default source for parameter. This source will also be used when adding component using this factory method. If no such source is specified, the default value for this type will be used – zero for numerics and «null» for objects.
@wbp.factory.parameter.property parameterName propertyTitle
Description
Specifies that the parameter with given name is bound to some component property. This is useful for example if you want to set the text of a button directly in a factory method, without additional setText() invocation.
@wbp.factory.parameters.noBinding
Description
Specifies that Designer should not bind parameters to properties by names.
Usually parameters are bound to corresponding properties, but if there are many methods and parameters, it is tedious to describe each binding. Instead, you can just name the parameters with the same name as the title of the components property. For example, if you name the parameter «text», it will be bound to a property with title «text». Note that title is used, not id of the property (because id is a complex string).
One special name of parameter is reserved for SWT support, parameter with name
parent
is considered as parent parameter (i.e. in same way if it would be
marked as parent in *.wbp-factory.xml
).
@wbp.parser.entryPoint
Description
If you want to edit a GUI in a standalone class, which is not a subclass of a known component, such as Swing JPanel or SWT Composite, then you should tell WindowBuilder which method to use as the entry point for execution flow. In this case WindowBuilder will not look in the constructor and superclass, it will design only this specific method.
Example
/**
* @wbp.parser.entryPoint
*/
public void someMethod(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
}
@wbp.parser.preferredRoot
Description
Specifies that marked component should be used as root component, even when there are other possible roots, may be with bigger hierarchy (by default WindowBuilder chooses root component with biggest hierarchy).
Example
mainPanel = new JPanel(); // @wbp.parser.preferredRoot
@wbp.parser.constructor
Description
If «this» component has only one constructor, then Designer will select it as entry point for execution flow. If «this» container has several constructors and one of them marked with this tag, then it will be used. If no tag and container has a default constructor (without parameters), then it will be used implicitly. If all constructors are non-default, error will be generated.
@wbp.eval.method.parameter parameterName expressionSource
Description
If the constructor, (or other entry method), has a parameter whose value is used for creating some component or as part of some property (method invocation or field assignment), then Designer requires hint about value that will be passed with this parameter. This tag can be used to specify any statically evaluable expression.
Example
/**
* @wbp.eval.method.parameter _int 1 + 2
* @wbp.eval.method.parameter _true true
* @wbp.eval.method.parameter _false false
* @wbp.eval.method.parameter _string "ab" + "c"
* @wbp.eval.method.parameter _null null
*/
public Test(int _int, boolean _true, boolean _false, String _string,
Object _null) {
super(_int, _true, _false, _string, _null);
}
@wbp.eval.method.return parameterName
Description
Sometimes code may use some instance methods declared in the same class. Designer can not evaluate these methods (at least in current implementation), so it requires some hint. In our experience, the value of one of the parameters (usually even single parameter) is enough.
Example
public int root() {
return instancePublicMethod(5);
}
/**
* @wbp.eval.method.return value
*/
public int instancePublicMethod(int value) {
return 2 * value;
}
@wbp.gwt.Request
Description
GWT specific tag for RemoteService interface method that specifies that com.google.gwt.http.client.Request should be returned from «async» of this method.
Example
@wbp.gwt.Request
public interface MyService extends RemoteService {
/** @wbp.gwt.Request */
int getValue() throws Exception;
}
@wbp.nls.resourceBundle test.messages
Description
JavaDoc tag that tells the parser where to find the resource files.
Example
/**
* @wbp.nls.resourceBundle test.messages
*/
private static final ResourceBundle m_bundle = MyResourceBundleFactory.getMainBundle();
A note about Netcup (advertisement)
Netcup is a German hosting company. Netcup offers inexpensive, yet powerfull web hosting packages, KVM-based root servers or dedicated servers for example. Using a coupon code from my Netcup coupon code web app you can even save more money (6$ on your first purchase, 30% off any KVM-based root server, ...).