const wxArrayString &CVolumes::GetKits() const { if(m_asKits.IsEmpty()) { CPersistKitList *pKits = mainApp::GetKitList(); map<wxString,CVolume *>::const_iterator itr; for(itr = m_mapKitVolume.begin(); itr != m_mapKitVolume.end(); ++itr) { const wxString &sKit(itr->first); if(pKits->GetLsArray(sKit) != NULL) { m_asKits.Add(sKit); } else { wxString sError("Cannot find kit: "); sError.Append(sKit); sError.Append(" in ILSandLadderInfo.xml"); wxASSERT_MSG(0,sError); mainApp::LogMessage(sError); } } } return m_asKits; }
bool CPanelLabGeneral::TransferDataToWindow() { bool bRtn = (m_pInfo != NULL) && (m_pMarker != NULL); if(bRtn) { wxString sValue; wxString s; const wxString &sKitName = m_pMarker->GetMarkerSetName(); const wxString &sILS = m_pMarker->GetILSName(); CPersistKitList *pKitList = mainApp::GetKitList(); const wxArrayString *psILS = pKitList->GetLsArray(sKitName); size_t nSize = (psILS == NULL) ? 0 : psILS->GetCount(); m_pChoiceILS->Clear(); if(!nSize) { wxString sError; bRtn = false; sError = "Cannot file ILS for kit, "; sError.Append(sKitName); mainApp::LogMessage(sError); wxASSERT_MSG(0,sError); } else { m_pChoiceILS->Append(*psILS); if(sILS.IsEmpty() || !m_pChoiceILS->SetStringSelection(sILS)) { m_pChoiceILS->Select(0); } m_pLabelVolumeName->SetLabel(m_pInfo->GetVolumeName()); m_pLabelKitName->SetLabel(sKitName); const wxDateTime &dt = m_pInfo->GetLastUpdate(); sValue.Empty(); if(dt.GetTicks() > 100) { const wxString &sUser = m_pInfo->GetUserID(); sValue = dt.Format(); if(!sUser.IsEmpty()) { sValue.Append(" by "); sValue.Append(sUser); } } m_pLabelLastUpdateUser->SetLabel(sValue); m_pCheckUserOverride->SetValue(m_pMarker->GetAllowUserOverrideILS()); m_pTextProtocol->SetValue(m_pInfo->GetProtocol()); m_pTextLot->SetValue(m_pInfo->GetLot()); m_pTextNotes->SetValue(m_pInfo->GetNotes()); bool bDataAnalyzed = m_pMarker->GetAnalyzed(); m_pRadioRaw->SetValue(!bDataAnalyzed); m_pRadioAnalyzed->SetValue(bDataAnalyzed); wxRadioButton *pRadio; wxString sValue = m_pInfo->GetDataFileType(); size_t nLEN = m_vpRadioFileType.size(); bool bFound = false; bool b; if(sValue.Len()) { for(size_t n = 0; n < nLEN; n++) { pRadio = m_vpRadioFileType.at(n); b = (pRadio->GetLabelText() == sValue); if(b) { bFound = true; } pRadio->SetValue(b); } } if(!bFound) { m_vpRadioFileType.at(0)->SetValue(true); } } } return bRtn; }
void CPersistKitList::UnitTest() { CPersistKitList kitList; wxString sError; if(!kitList.Load()) { sError.Append(_T("CPersistKitList::Load() failed\n")); } else { const wxArrayString *psKitArray; const wxArrayString *psArray; psKitArray = &kitList.GetArray(); size_t nCount = psKitArray->GetCount(); #define PP12 _T("PowerPlex 1.2") #define PP18D _T("PowerPlex 18D") #define SGM _T("SGM Plus") #define SEFILER _T("SEfilerPlus") #define NGM _T("NGMSElect") #define PP21 _T("PowerPlex 21") struct { size_t n; // number of loci const wxChar *psName; } LIST[] = { {7, _T("Cofiler")}, {16, _T("Identifiler Less ILS250")}, {16, _T("IdentifilerPlus Less ILS250")}, {16, _T("IdentifilerPlus")}, {16, _T("Identifiler")}, {9, PP12}, {18, PP18D}, {16, _T("PowerPlex 16")}, {11, _T("PowerPlex Y")}, {16, _T("Yfiler")}, {12, SEFILER}, {11, SGM}, {10, _T("ProfilerPlus")}, {17, NGM}, {21,PP21} }; size_t N_LIST = sizeof(LIST) / sizeof(LIST[0]); if(nCount != N_LIST) { sError.Append(wxString::Format( _T("\nNumber of kits is %d, expected %d"), (int)nCount, (int)N_LIST )); } map<wxString,size_t> kitLocusCount; map<wxString,size_t>::iterator itrKL; size_t i; for(i = 0; i < N_LIST; i++) { kitLocusCount.insert( map<wxString,size_t>::value_type( wxString(LIST[i].psName),LIST[i].n)); } for(i = 0; i < nCount; i++) { // verify LS count const wxString &sItem = psKitArray->Item(i); psArray = kitList.GetLsArray(sItem); if(psArray == NULL) { sError.Append(_T("\nCannot find ILS for kit: ")); sError.Append(sItem); } else { size_t nExpected = 4; if(sItem == PP12 || sItem == PP18D || sItem == NGM || sItem == SEFILER || sItem == PP21) { nExpected = 1; } else if(sItem == SGM) { nExpected = 5; } else if( sItem.StartsWith(_T("Identifiler")) && !sItem.Contains(_T("250")) ) { nExpected = 5; } if(psArray->GetCount() != nExpected) { sError.Append( _T("\nLS count for kit: ")); sError.Append(sItem); sError.Append(wxString::Format( _T(", is %d, expected %d"), (int)psArray->GetCount(),(int)nExpected)); } } itrKL = kitLocusCount.find(sItem); const CLocusNameList *pList = kitList.GetLocusNameList(sItem); if(pList == NULL) { sError.Append(_T("\nCannot find loci for kit: ")); sError.Append(sItem); } if(itrKL == kitLocusCount.end()) { sError.Append(_T("\nUnknown kit name: ")); sError.Append(sItem); } else if( (pList != NULL) && (pList->size() != itrKL->second) ) { sError.Append(_T("\nLocus count for kit: ")); sError.Append(sItem); sError.Append(wxString::Format( _T(", is %d, expected %d"), (int)pList->size(),(int)itrKL->second)); } } } wxASSERT_MSG(sError.IsEmpty(),sError); #undef PP12 }