@Override
    public void repaint(TextGraphics graphics)
    {
        graphics.applyTheme(graphics.getTheme().getDefinition(style));
        graphics = transformAccordingToAlignment(graphics, calculatePreferredSize());
        
        if(textColor != null)
            graphics.setForegroundColor(textColor);
        if(textBold != null) {
            if(textBold)
                graphics.setBoldMask(true);
            else
                graphics.setBoldMask(false);
        }
        
        if(text.length == 0)
            return;

        int leftPosition = 0;        
        for(int i = 0; i < text.length; i++) {
            if(forceWidth > -1) {
                if(text[i].length() > forceWidth)
                    graphics.drawString(leftPosition, i, text[i].substring(0, forceWidth - 3) + "...");
                else
                    graphics.drawString(leftPosition, i, text[i]);
            }
            else
                graphics.drawString(leftPosition, i, text[i]);
        }
    }