def setParamValue(self, alg, param, widget):
     if isinstance(param, (ParameterRaster, ParameterVector,
                   ParameterTable)):
         return self.setParamValueLayerOrTable(alg, param, widget)
     elif isinstance(param, ParameterBoolean):
         if widget.currentIndex() < 2:
             value = widget.currentIndex() == 0
         else:
             value = widget.itemData(widget.currentIndex())
         alg.params[param.name] = value
         return True
     elif isinstance(param, ParameterString):
         return self.setParamStringValue(alg, param, widget)
     elif isinstance(param, ParameterNumber):
         return self.setParamNumberValue(alg, param, widget)
     elif isinstance(param, ParameterExtent):
         return self.setParamExtentValue(alg, param, widget)
     elif isinstance(param, ParameterFile):
         return self.setParamFileValue(alg, param, widget)
     elif isinstance(param, ParameterSelection):
         alg.params[param.name] = widget.currentIndex()
         return True       
     elif isinstance(param, ParameterRange):
         alg.params[param.name] = widget.getValue()
         return True  
     elif isinstance(param, ParameterCrs):
         authid = widget.getValue()
         if authid is None:
             alg.params[param.name] = None
         else:
             alg.params[param.name] = authid            
         return True
     elif isinstance(param, ParameterFixedTable):
         alg.params[param.name] = ParameterFixedTable.tableToString(widget.table)
         return True            
     elif isinstance(param, ParameterTableField):
         return self.setParamTableFieldValue(alg, param, widget)
     elif isinstance(param, ParameterMultipleInput):
         if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY:
             options = self.getAvailableValuesOfType(ParameterVector, OutputVector)                
         else:
             options = self.getAvailableValuesOfType(ParameterRaster, OutputRaster)
         values = [options[i] for i in widget.selectedoptions]            
         if len(values) == 0 and not param.optional:
             return False            
         alg.params[param.name] = values
         return True
     else:
         alg.params[param.name] = unicode(widget.text())
         return True
 def setParamValue(self, param, widget):
     if isinstance(param,
                   (ParameterRaster, ParameterVector, ParameterTable)):
         return self.setParamValueLayerOrTable(param, widget)
     elif isinstance(param, ParameterBoolean):
         return self.setParamBooleanValue(param, widget)
     elif isinstance(param, ParameterString):
         return self.setParamStringValue(param, widget)
     elif isinstance(param, ParameterNumber):
         return self.setParamNumberValue(param, widget)
     elif isinstance(param, ParameterExtent):
         return self.setParamExtentValue(param, widget)
     elif isinstance(param, ParameterFile):
         return self.setParamFileValue(param, widget)
     elif isinstance(param, ParameterSelection):
         name = self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(
             AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = str(widget.currentIndex())
         return True
     elif isinstance(param, ParameterRange):
         name = self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(
             AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = str(widget.getValue())
         return True
     elif isinstance(param, ParameterCrs):
         authid = widget.getValue()
         if authid is None:
             self.params[param.name] = None
         else:
             name = self.getSafeNameForHarcodedParameter(param)
             value = AlgorithmAndParameter(
                 AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
             self.params[param.name] = value
             self.values[name] = authid
         return True
     elif isinstance(param, ParameterFixedTable):
         name = self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(
             AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = ParameterFixedTable.tableToString(widget.table)
         return True
     elif isinstance(param, ParameterTableField):
         return self.setParamTableFieldValue(param, widget)
     elif isinstance(param, ParameterMultipleInput):
         if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY:
             options = self.getVectorLayers()
         else:
             options = self.getRasterLayers()
         values = []
         for index in widget.selectedoptions:
             values.append(options[index].serialize())
         if len(values) == 0 and not param.optional:
             return False
         name = self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(
             AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = ';'.join(values)
         return True
     else:
         name = self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(
             AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = unicode(widget.text())
         return True
 def setParamValue(self, param, widget):
     if isinstance(param, (ParameterRaster, ParameterVector, ParameterTable)):
         return self.setParamValueLayerOrTable(param, widget)
     elif isinstance(param, ParameterBoolean):
         return self.setParamBooleanValue(param, widget)
     elif isinstance(param, ParameterString):
         return self.setParamStringValue(param, widget)
     elif isinstance(param, ParameterNumber):
         return self.setParamNumberValue(param, widget)
     elif isinstance(param, ParameterExtent):
         return self.setParamExtentValue(param, widget)
     elif isinstance(param, ParameterFile):
         return self.setParamFileValue(param, widget)
     elif isinstance(param, ParameterSelection):
         name =  self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = str(widget.currentIndex())
         return True
     elif isinstance(param, ParameterRange):
         name =  self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = str(widget.getValue())
         return True
     elif isinstance(param, ParameterCrs):
         authid = widget.getValue()
         if authid is None:
             self.params[param.name] = None
         else:
             name =  self.getSafeNameForHarcodedParameter(param)
             value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
             self.params[param.name] = value
             self.values[name] = authid
         return True
     elif isinstance(param, ParameterFixedTable):
         name =  self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = ParameterFixedTable.tableToString(widget.table)
         return True
     elif isinstance(param, ParameterTableField):
         return self.setParamTableFieldValue(param, widget)
     elif isinstance(param, ParameterMultipleInput):
         if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY:
             options = self.getVectorLayers()
         else:
             options = self.getRasterLayers()
         values = []
         for index in widget.selectedoptions:
             values.append(options[index].serialize())
         if len(values) == 0 and not param.optional:
             return False
         name =  self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = ";".join(values)
         return True
     else:
         name =  self.getSafeNameForHarcodedParameter(param)
         value = AlgorithmAndParameter(AlgorithmAndParameter.PARENT_MODEL_ALGORITHM, name)
         self.params[param.name] = value
         self.values[name] = unicode(widget.text())
         return True