void DlgCScenarioManager::OnSave() { // TODO: Add your command handler code here HTREEITEM hItem = m_tree.GetSelectedItem(); if(hItem == NULL) return; DWORD key = m_tree.GetItemData(hItem); Scenario *pScenario = m_manager.LookUp(key); BOOL bRet = TRUE; PersistentModel model; PersistentMgr persistentMgr; bRet = m_manager.SaveCurModel(model.GetScenarioPersist(),pScenario); if(bRet) { static TCHAR BASED_CODE szFilter[] = _T("AFT原始数据(*.imp)|*.imp|PFA计算文件(*.calc)|*.calc|All Files (*.*)|*.*||"); CFileDialog dlg(FALSE,_T("imp"),pScenario->GetName(),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter); if(IDOK == dlg.DoModal()) { persistentMgr.Save(dlg.GetPathName(),model); } } }
//-------------------------------------------- //Parameters: strName[In] 工况名称 // return: 如果this工况存在名称为strName的子工况返回Ture // Memo: 检查strName是否被this工况的子工况使用 // //--------------------------------------------- BOOL Scenario::CheckName(CString strName) { BOOL bRet = TRUE; POSITION pos = m_childList.GetHeadPosition(); Scenario *pChild = NULL; while(pos) { pChild = m_childList.GetNext(pos); if(0 == strName.Compare(pChild->GetName())) { bRet = FALSE; } } return bRet; }
void DlgCScenarioManager::OnReName() { // TODO: Add your command handler code here HTREEITEM hItem = m_tree.GetSelectedItem(); if(hItem == NULL) return; //根据key值找到对应的工况 DWORD key = m_tree.GetItemData(hItem); Scenario *pScenario = m_manager.LookUp(key); Scenario *pAnScenario = pScenario->GetAnScenario(); DlgScenarioName dlg; dlg.m_strName = pScenario->GetName(); if(IDOK == dlg.DoModal()) { CString strName = dlg.GetName(); if(pAnScenario != NULL) { if(pAnScenario->CheckName(strName)) { pScenario->SetName(strName); m_tree.SetItemText(hItem,strName); UpdateData(FALSE); } else { AfxMessageBox(IDS_NAMEERROR); } } else { pScenario->SetName(strName); m_tree.SetItemText(hItem,strName); UpdateData(FALSE); } } }