///////////////////////////////////////////////////////////////////////////// // CuDlgCacheTab dialog CuCacheCheckListCtrl* CuDlgCacheTab::GetCacheListCtrl() { CWnd* pParent1 = GetParent (); // View (CvDbmsCacheViewRight) ASSERT_VALID (pParent1); CWnd* pParent2 = pParent1->GetParent (); // SplitterWnd ASSERT_VALID (pParent2); CWnd* pParent3 = pParent2->GetParent (); // Frame (CfDbmsCacheFrame) ASSERT_VALID (pParent3); if (!((CfDbmsCacheFrame*)pParent3)->IsAllViewsCreated()) return NULL; CvDbmsCacheViewLeft* pView = (CvDbmsCacheViewLeft*)((CSplitterWnd*)pParent2)->GetPane (0, 0); ASSERT_VALID (pView); return pView->GetCacheListCtrl(); }
UINT CConfigFrame::GetHelpID() { ASSERT (m_bAllViewCreated == TRUE); CConfRightDlg* pConfigRightDlg = GetCConfRightDlg(); CConfLeftDlg* pConfigLeftDlg = GetCConfLeftDlg(); ASSERT (pConfigLeftDlg); if (!pConfigLeftDlg) return 0; HTREEITEM hTreeItem = pConfigLeftDlg->m_tree_ctrl.GetSelectedItem(); // // Nothing has been selected in the left pane, the help is the one // of the left pane: if (!hTreeItem) return IDD_CONFIG_LEFT; // // If there is a selected item in the left pane, then check to see // if there is no pane in the right side, if so we must handle the special case: CuPageInformation* pPageInfo = NULL; CuCbfListViewItem* pItem = (CuCbfListViewItem*)pConfigLeftDlg->m_tree_ctrl.GetItemData (hTreeItem); if (!pItem) return IDD_CONFIG_LEFT; if (pItem && pItem->GetPageInformation() && pItem->GetPageInformation()->GetNumberOfPage() == 0) { // // No page in the right pane: pPageInfo = pItem->GetPageInformation(); if (pPageInfo->GetClassName().CompareNoCase (_T("RECOVER")) == 0) return IDHELP_RECOVER; if (pPageInfo->GetClassName().CompareNoCase (_T("ARCHIVE")) == 0) return IDHELP_ACHIVER; if (pPageInfo->GetClassName().CompareNoCase (_T("RMCMD")) == 0) return IDHELP_RMCMD; } UINT nIDHelp = 0; ASSERT (pConfigRightDlg); if (!pConfigRightDlg) return nIDHelp; CuCbfProperty* pProp = pConfigRightDlg->GetCurrentProperty(); if (!pProp) return nIDHelp; pPageInfo = pProp->GetPageInfo(); if (!pPageInfo) return nIDHelp; int nCurSel = pProp->GetCurSel(); if (nCurSel>=0 && nCurSel<pPageInfo->GetNumberOfPage() && pPageInfo->GetNumberOfPage()>0) nIDHelp = pPageInfo->GetDlgID(nCurSel); // // For the cache page the are three sub-panes (cache buffer, parameter, derived): if (nIDHelp == IDD_DBMS_PAGE_CACHE) { CuDlgDbmsCache* pCachePage = (CuDlgDbmsCache*)pConfigRightDlg->GetCurrentPage(); if (pCachePage) { CvDbmsCacheViewLeft* pCacheBuffer = pCachePage->GetLeftPane(); if (pCacheBuffer) { CuCacheCheckListCtrl* pListBuffer = pCacheBuffer->GetCacheListCtrl(); // // Cache buffer: if (pListBuffer->GetSelectedCount() == 0) nIDHelp = IDD_CACHE_LIST; else { CvDbmsCacheViewRight* pCacheRightPane = pCachePage->GetRightPane(); if (pCacheRightPane) { CuDlgCacheTab* pTab = pCacheRightPane->GetCacheTabDlg(); if (pTab) nIDHelp = pTab->GetHelpID(); } } } } } return nIDHelp; }