def setCurrentRule( self, rule ):
        """
        Sets the current query rule for this widget, updating its widget \
        editor if the types do not match.
        
        :param      rule | <QueryRule> || None
        """
        curr_rule = self.currentRule()
        if ( curr_rule == rule ):
            return
        
        self._currentRule = rule
        
        curr_op     = self.uiOperatorDDL.currentText()
        self.uiOperatorDDL.blockSignals(True)
        self.uiOperatorDDL.clear()
        if ( rule ):
            self.uiOperatorDDL.addItems(rule.operators())
            index = self.uiOperatorDDL.findText(curr_op)
            if ( index != -1 ):
                self.uiOperatorDDL.setCurrentIndex(index)
                
        self.uiOperatorDDL.blockSignals(False)
        
        self.updateEditor()