How can I change my node’s appearance?
It’s pretty simple to change the font color, style or weight for your node’s label. Simply override getHtmlDisplayName
and provide some HTML in your return value. (An example can be found in this tutorial.) Here is another example:
public class MovieNode extends AbstractNode {
private Movie movie;
public MovieNode(Movie key) {
super(Children.LEAF, Lookups.fixed(new Object[]{key}));
this.movie = key;
setName(key.getTitle());
setDisplayName(key.getTitle());
getHandle();
setIconBaseWithExtension("org/nb/marilyn/pics/marilyn.gif");
}
@Override
public String getHtmlDisplayName() {
return "*" + this.getDisplayName() + "*";
}
}
The javadoc for the HtmlRenderer class explains what subset of HTML is supported. You can also change the icon’s node by overriding various methods such as getIcon(int type)
or {getOpenedIcon()
}.
It’s also possible, but far more difficult, to control other aspects of the node’s appearance; for example, drawing a box around the node or changing its background color. To do this you must create or modify the explorer view in which the node is rendered. Fabrizio Giudici posted code that illustrates this on the dev@openide
list.