示例#1
0
/////////////////////////////////////////////////////////////////////////////
// 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();
}
示例#2
0
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;
}