Check that *value* is within the minimum and maximum allowable 
        range for the parameter at index *row*

        :param row: the ith parameter number
        :type row: int
        :param value: the candidate value to for start or stop fields
        :returns: bool -- True if *value* within range

def checkLimits(self, row, value):
        """Check that *value* is within the minimum and maximum allowable 
        range for the parameter at index *row*

        :param row: the ith parameter number
        :type row: int
        :param value: the candidate value to for start or stop fields
        :returns: bool -- True if *value* within range
        """
        # extract the selected component names
        param = self._parameters[row]
        components = param['selection']
        if len(components) == 0:
            return False
        ptype = param['parameter']
        mins = []
        maxs = []
        for comp in components:
            # get the limit details for the currently selected parameter type
            try:
                details = comp.auto_details()[ptype]
                mins.append(details['min'])
                maxs.append(details['max'])
            except KeyError:
                raise
                return False
        lower = max(mins)
        upper = min(maxs)
        if lower <= value <= upper:
            return True
        else:
            # print 'value out of bounds:'
            # print 'lower', lower, 'upper', upper, 'value', value
            return False