def update(self, enabled=None):
        """
        Updates this item based on the interface.
        """
        if enabled is None:
            enabled = self.checkState(0) == QtCore.Qt.Checked
        elif not enabled or self._element.get('enabled', 'True') != 'True':
            self.setCheckState(0, QtCore.Qt.Unchecked)
        else:
            self.setCheckState(0, QtCore.Qt.Checked)
        
        if enabled:
            self.setForeground(0, QtGui.QBrush())
        else:
            self.setForeground(0, QtGui.QBrush(QtGui.QColor('lightGray')))

        for child in self.children():
            child.update(enabled)
Updates this item based on the interface.