protected void draw() {
// skin approach uses more resources to manage
final HBox textView = new HBox(TEXT_SPACING);
textView.setCache(true);
textView.setCacheHint(CacheHint.SPEED);
textView.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable,
Number oldValue, Number newValue) {
final Bounds textViewBounds = textView.getBoundsInLocal();
mainRec.setX(textViewBounds.getMinX());