コード例 #1
0
void TreeModel::checkDependentState(const QModelIndex dependee, Teuchos::RCP<Dependency> dependency){
	Dependency::Type type = dependency->getType();
	QModelIndex dependent;
	Teuchos::ParameterEntry *currentDependent;
	Dependency::ParameterParentMap dependents= dependency->getDependents();
	for(Dependency::ParameterParentMap::iterator it = dependents.begin(); it != dependents.end(); ++it ){ 
		currentDependent = it->second->getEntryPtr(it->first);
		dependent = findParameterEntryIndex(currentDependent, it->first);
		if(type == Dependency::NumberArrayLengthDep){
			redrawArray(dependent.sibling(dependent.row(),1));
		}
		else if(type == Dependency::VisualDep){
			Teuchos::RCP<VisualDependency> visDep = Teuchos::rcp_static_cast<VisualDependency>(dependency);
			visDep->isDependentVisible() ? emit showData(dependent.row(), dependent.parent()) :
					       emit hideData(dependent.row(), dependent.parent());
		}

		if(!hasValidValue(dependent)){
			QString message = "Because you recently modified the " + data(dependee, Qt::DisplayRole).toString() +
			" parameter, the valid values for the " + data(dependent, Qt::DisplayRole).toString() +
			" parameter have changed.\n\nPlease modify the " +  data(dependent,Qt::DisplayRole).toString() + " value.\n";
			emit badValue(dependent.sibling(dependent.row(), 1), message);
		}
	}
}
コード例 #2
0
//-----------------------------------------------------------------------------
// Function: ParameterValidator2014::validate()
//-----------------------------------------------------------------------------
bool ParameterValidator2014::validate(Parameter const* parameter, 
    QSharedPointer<QList<QSharedPointer<Choice> > > availableChoices) const
{
    return hasValidName(parameter) &&
        hasValidValue(parameter, availableChoices) &&
        hasValidMinimumValue(parameter) &&
        hasValidMaximumValue(parameter) &&
        hasValidChoice(parameter, availableChoices) &&
        hasValidResolve(parameter) &&
        hasValidValueId(parameter);
}