def METHOD_NAME(self, new_val):
    """
    Callback invoked when the Channel value is changed.
    Sets the value of new_value accordingly at the ComboBox.
    Parameters
    ----------
    new_value : str, int, float, bool or np.ndarray
        The new value from the channel. The type depends on the channel.
    """
    if new_val is not None:
        super(PyDMEnumComboBox, self).METHOD_NAME(new_val)
        # Integers are straight forward
        if isinstance(new_val, int):
            idx = new_val
        # String values are valid as well, but we need to look up the index
        elif isinstance(new_val, six.text_type):
            idx = self.findText(new_val)
            # findText return -1 when we can not find the text inside the
            # QComboBox
            if idx == -1:
                logger.error("Can not change value to %r. "
                             "Not an option in PyDMComboBox",
                             new_val)
                return
        # Handle bool, float, and ndarray
        else:
            logger.error("Invalid type for PyDMComboBox %s",
                         type(new_val))
            return
        # Set the index
        self.setCurrentIndex(idx)