bio photo

In a previous blog post I've talked about that composition/delegation has some benefits over inheritance</a>. Today I realized that I actually was right ;)

As I was playing around in Nifty I've noticed that my TextElements don't support coloured backgrounds. As a matter of fact the TextRenderer just didn't support it. The first thought was to simply add this feature. But then I realized that the missing functionality was right there in front of me. I already implemented backgroundColor (and even backgroundImage) for Panels in the PanelRenderer.

So it occurred to me that I only have to combine them both in some nifty composition </strong>;) and be done.

So I've just changed the Element class to support not only a single ElementRenderer but several! And by the way I discovered the "varargs declaration" in Java:

public Element(
final String newId,
final Element newParent,
final ElementRenderer ... newElementRenderer) {
...
}</pre>
You can use it this way:
Element element = new Element("myId", parent, new PanelRenderer(), new TextRenderer());</pre>
Nifty indeed :)