void CQParameterGroupView::modifySelectCNs(CCopasiParameterGroup & group, const CCopasiParameter & cnTemplate) { // OpenSelectionDialog std::vector< const CDataObject * > Selection; CObjectInterface::ContainerList ContainerList; ContainerList.push_back(group.getObjectDataModel()); // Create the current selection CCopasiParameterGroup::elements::iterator it = group.beginIndex(); CCopasiParameterGroup::elements::iterator end = group.endIndex(); for (; it != end; ++it) { const CDataObject * pObject = CObjectInterface::DataObject(CObjectInterface::GetObjectFromCN(ContainerList, (*it)->getValue< CCommonName >())); if (pObject != NULL) { Selection.push_back(pObject); } } CModel * pModel = group.getObjectDataModel()->getModel(); std::vector<const CDataObject * > ValidObjects; const std::vector< std::pair < CCommonName, CCommonName > > & ValidValues = cnTemplate.getValidValues< CCommonName >(); std::vector< std::pair < CCommonName, CCommonName > >::const_iterator itValidValues = ValidValues.begin(); std::vector< std::pair < CCommonName, CCommonName > >::const_iterator endValidValues = ValidValues.end(); for (; itValidValues != endValidValues; ++itValidValues) { CObjectLists::ListType ListType = toEnum(itValidValues->first, CObjectLists::ListTypeName, CObjectLists::EMPTY_LIST); std::vector<const CDataObject * > Tmp = CObjectLists::getListOfConstObjects(ListType, pModel); ValidObjects.insert(ValidObjects.end(), Tmp.begin(), Tmp.end()); } std::vector< const CDataObject * > NewSelection = CCopasiSelectionDialog::getObjectVector(this, ValidObjects, &Selection); // Modify group parameters; mpParameterGroupDM->beginResetModel(); group.clear(); std::vector< const CDataObject * >::const_iterator itNew = NewSelection.begin(); std::vector< const CDataObject * >::const_iterator endNew = NewSelection.end(); for (; itNew != endNew; ++itNew) { group.addParameter("Reaction", CCopasiParameter::Type::CN, (*itNew)->getCN()); } mpParameterGroupDM->endResetModel(); }
CExperimentSet::CExperimentSet(const CCopasiParameterGroup & group, const CDataContainer * pParent): CCopasiParameterGroup(group, static_cast< const CDataContainer * >((pParent != NULL) ? pParent : group.getObjectDataModel())), mpExperiments(NULL), mNonExperiments(0), mDependentObjects(0), mDependentObjectiveValues(0), mDependentRMS(0), mDependentErrorMean(0), mDependentErrorMeanSD(0), mDependentDataCount(0), mValidValueCount(0) {initializeParameter();}