Paints this item on the painter.
        
        :param      painter | <QPainter>
                    option  | <QStyleOptionGraphicsItem>
                    widget  | <QWidget>

def paint( self, painter, option, widget ):
        """
        Paints this item on the painter.
        
        :param      painter | <QPainter>
                    option  | <QStyleOptionGraphicsItem>
                    widget  | <QWidget>
        """
        if ( self._rebuildRequired ):
            self.rebuild()
        
        # set the coloring options
        painter.setPen(self.borderColor())
        
        if ( self.isSelected() ):
            painter.setBrush(self.highlightColor())
        else:
            painter.setBrush(self.fillColor())
        
        hints = painter.renderHints()
        if ( not self.isAllDay() ):
            painter.setRenderHint(painter.Antialiasing)
            pen = painter.pen()
            pen.setWidthF(0.25)
            painter.setPen(pen)
        
        painter.drawPath(self.path())
        
        # draw the text in the different rect locations
        title = self.title()
        painter.setPen(self.textColor())
        for data in self._textData:
            painter.drawText(*data)
        
        painter.setRenderHints(hints)