docs: def updateEditor( self ):
          """
          Updates the editor based on the current selection.
          """
          
          # assignt the rule operators to the choice list
          rule        = self.currentRule()
          operator    = self.currentOperator()
          widget      = self.uiWidgetAREA.widget()
          editorType  = None
          text        = ''
          
          if ( rule ):
              editorType = rule.editorType(operator)
          
          # no change in types
          if ( widget and editorType and type(widget) == editorType ):
              return
              
          elif ( widget ):
              if ( type(widget) != QWidget ):
                  text = widget.text()
              
              widget.setParent(None)
              widget.deleteLater()
          
          self.uiWidgetAREA.setWidget(None)
          
          # create the new editor
          if ( editorType ):
              widget = editorType(self)
              
              if ( isinstance(widget, QLineEdit) ):
                  terms  = rule.completionTerms()
                  if ( not terms ):
                      qwidget = self.queryBuilderWidget()
                      if ( qwidget ):
                          terms = qwidget.completionTerms()
                  
                  if ( terms ):
                      widget.setCompleter(XQueryCompleter(terms, widget))
              
              self.uiWidgetAREA.setWidget(widget)
              
              if ( type(widget) != QWidget ):
                  widget.setText(text)