@Override public boolean setBounds(double x, double y, double width, double height) { // TODO handle maximum width? boolean changed = super.setBounds(x, y, width, height); if (changed) { if (pImage != null) { pImage.setBounds(getX() + PADDING_X, getY() + PADDING_Y, iconWidth, iconHeight); } textNode.setBounds(getX() + PADDING_X + iconWidth + ICON_GAP, getY() + PADDING_Y, textNode.getWidth(), textNode.getHeight()); updateArcLocations(); invalidatePaint(); fireChangeListeners(); } return changed; }