> Text is quite tricky. You need to manipulate the TextPaintInfo
> object that is attached to the AttributedString associated with the
> TextNode. The tricky bit is that all of the tspan's are built into
> the one AttributedString so if you have 'complex' text you would have
> to track down the proper TextPaintInfo to update.
Do you mean `AttributedCharacterIterator'? I see no AttributedString'
in a `TextNode'.
Is there a reason why all of this is so darned Byzantine?
Why, for instance, is a `StrokingTextPainter' so radically different
than a 'StrokeShapePainter'? In the `StrokeShapePainter' there's a
`setPaint()' method that allows one to set the color of the object,
whereas in the `StrokingTextPainter' no such method exists and one has
to go through extraordinary contortions to get at the `TextPaintInfo'
for each individual *character* in a text string in order to set
private void updateTextNodeColor( Color rgb, TextNode text_node )