void CuDlgDomPropStaticProfile::OnDblclkMfcList1(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ASSERT (pNMHDR->code == NM_DBLCLK); // Get the selected item ASSERT (m_cListCtrl.GetSelectedCount() == 1); int selItemId = m_cListCtrl.GetNextItem(-1, LVNI_SELECTED); ASSERT (selItemId != -1); if (selItemId != -1) { CuNameOnly *pFastObject = (CuNameOnly*)m_cListCtrl.GetItemData(selItemId); ASSERT (pFastObject); ASSERT (pFastObject->IsKindOf(RUNTIME_CLASS(CuNameOnly))); if (pFastObject) { if (!pFastObject->IsSpecialItem()) { CTypedPtrList<CObList, CuDomTreeFastItem*> domTreeFastItemList; domTreeFastItemList.AddTail(new CuDomTreeFastItem(OT_PROFILE, (LPCTSTR)pFastObject->GetStrName() )); if (!ExpandUpToSearchedItem(this, domTreeFastItemList)) { AfxMessageBox (IDS_DOM_FAST_CANNOTEXPAND); } while (!domTreeFastItemList.IsEmpty()) delete domTreeFastItemList.RemoveHead(); } } } }
void CuDlgIpmPageActiveDatabases::OnDblclkMfcList1(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ASSERT (pNMHDR->code == NM_DBLCLK); // Get the selected item ASSERT (m_cListCtrl.GetSelectedCount() == 1); int selItemId = m_cListCtrl.GetNextItem(-1, LVNI_SELECTED); ASSERT (selItemId != -1); if (selItemId != -1) { void* pFastStruct = (void*)m_cListCtrl.GetItemData(selItemId); if (!pFastStruct) { AfxMessageBox (IDS_E_DIRECT_ACCESS);//"Cannot have direct access after load" return; } CTypedPtrList<CObList, CuIpmTreeFastItem*> ipmTreeFastItemList; // tree organization reflected in FastItemList if (IpmCurSelHasStaticChildren(this)) ipmTreeFastItemList.AddTail(new CuIpmTreeFastItem(TRUE, OT_MON_LOGDATABASE)); // static -> No string needed ipmTreeFastItemList.AddTail(new CuIpmTreeFastItem(FALSE, OT_MON_LOGDATABASE, pFastStruct)); if (!ExpandUpToSearchedItem(this, ipmTreeFastItemList)) { AfxMessageBox (IDS_IPM_FAST_CANNOTEXPAND); } while (!ipmTreeFastItemList.IsEmpty()) delete ipmTreeFastItemList.RemoveHead(); } }
// DOUBLE CLICK ASSETS SINCE SELECTION NOT AVAILABLE - MASQUED OUT ASSERTIONS void CuDlgDomPropIceFacetNPageRoles::OnDblclkMfcList1(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ASSERT (pNMHDR->code == NM_DBLCLK); // Get the selected item //ASSERT (m_cListCtrl.GetSelectedCount() == 1); int selItemId = m_cListCtrl.GetNextItem(-1, LVNI_SELECTED); //ASSERT (selItemId != -1); if (selItemId != -1) { CuIceFacetNPageAccessdef* pFastObject = (CuIceFacetNPageAccessdef*)m_cListCtrl.GetItemData(selItemId); ASSERT (pFastObject); ASSERT (pFastObject->IsKindOf(RUNTIME_CLASS(CuIceFacetNPageAccessdef))); if (pFastObject) { if (!pFastObject->IsSpecialItem()) { CTypedPtrList<CObList, CuDomTreeFastItem*> domTreeFastItemList; // tree organization reflected in FastItemList, different according to record type int finalType = -1; switch (m_Data.m_objType) { case OT_ICE_BUNIT_FACET: domTreeFastItemList.AddTail(new CuDomTreeFastItem(OT_STATIC_ICE_BUNIT_FACET_ROLE)); // NOTE: No break to chain on reqType case OT_STATIC_ICE_BUNIT_FACET_ROLE: finalType = OT_ICE_BUNIT_FACET_ROLE; break; case OT_ICE_BUNIT_PAGE: domTreeFastItemList.AddTail(new CuDomTreeFastItem(OT_STATIC_ICE_BUNIT_PAGE_ROLE)); // NOTE: No break to chain on reqType case OT_STATIC_ICE_BUNIT_PAGE_ROLE: finalType = OT_ICE_BUNIT_PAGE_ROLE; break; default: ASSERT(FALSE); return; } domTreeFastItemList.AddTail(new CuDomTreeFastItem(finalType, (LPCTSTR)pFastObject->GetStrName() )); if (!ExpandUpToSearchedItem(this, domTreeFastItemList)) { AfxMessageBox (IDS_DOM_FAST_CANNOTEXPAND); } while (!domTreeFastItemList.IsEmpty()) delete domTreeFastItemList.RemoveHead(); } } } }
void CuDlgDomPropTblInteg::OnDblclkMfcList1(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ASSERT (pNMHDR->code == NM_DBLCLK); // Get the selected item ASSERT (m_cListCtrl.GetSelectedCount() == 1); int selItemId = m_cListCtrl.GetNextItem(-1, LVNI_SELECTED); ASSERT (selItemId != -1); if (selItemId != -1) { CuNameWithOwner *pFastObject = (CuNameWithOwner*)m_cListCtrl.GetItemData(selItemId); ASSERT (pFastObject); ASSERT (pFastObject->IsKindOf(RUNTIME_CLASS(CuNameWithOwner))); if (pFastObject) { if (!pFastObject->IsSpecialItem()) { CTypedPtrList<CObList, CuDomTreeFastItem*> domTreeFastItemList; // tree organization reflected in FastItemList, different according to record type switch (m_Data.m_objType) { case OT_TABLE: case OT_SCHEMAUSER_TABLE: domTreeFastItemList.AddTail(new CuDomTreeFastItem(OT_STATIC_INTEGRITY)); break; case OT_STATIC_INTEGRITY: break; default: ASSERT(FALSE); return; } domTreeFastItemList.AddTail(new CuDomTreeFastItem(OT_INTEGRITY, (LPCTSTR)pFastObject->GetStrName(), _T("") // no owner )); if (!ExpandUpToSearchedItem(this, domTreeFastItemList)) { AfxMessageBox (IDS_DOM_FAST_CANNOTEXPAND); } while (!domTreeFastItemList.IsEmpty()) delete domTreeFastItemList.RemoveHead(); } } } }
BOOL CIpmCtrl::SelectItem(LPCTSTR lpszNode, LPCTSTR lpszServer, LPCTSTR lpszUser, LPCTSTR lpszKey, VARIANT FAR* pArrayItem, short nShowTree) { class CaLockDisplayRightPaneProperty { public: CaLockDisplayRightPaneProperty(CdIpmDoc* pDoc):m_pDoc(pDoc), m_bLock(FALSE){} ~CaLockDisplayRightPaneProperty(){UnLock();} void Lock(){m_pDoc->SetLockDisplayRightPane(TRUE);} void UnLock(){m_pDoc->SetLockDisplayRightPane(FALSE);} protected: BOOL m_bLock; CdIpmDoc* m_pDoc; }; CWaitCursor doWaitCursor ; BOOL bOK = FALSE; try { CdIpmDoc* pDoc = new CdIpmDoc(lpszKey, pArrayItem, (BOOL)nShowTree); if (m_pIpmFrame) { m_pIpmFrame->ShowWindow (SW_HIDE); m_pIpmFrame->DestroyWindow(); m_pIpmFrame = NULL; } CaIpmProperty& property = pDoc->GetProperty(); ConstructPropertySet (property); SFILTER* pFilter = theApp.GetFilter(); SFILTER* pDocFilter = pDoc->GetFilter(); memcpy (pDocFilter, pFilter, sizeof(SFILTER)); CaLockDisplayRightPaneProperty lock(pDoc); if (nShowTree == 1) { // // During the process of expanding tree up to search item, // prohibit the display of the properties of the selected tree item lock.Lock(); } CWnd* pParent = this; CRect r; GetClientRect (r); m_pIpmFrame = new CfIpmFrame(pDoc); m_pIpmFrame->Create ( NULL, NULL, WS_CHILD, r, pParent); if (!m_pIpmFrame) return FALSE; m_pIpmFrame->InitialUpdateFrame(NULL, TRUE); m_pIpmFrame->ShowWindow(SW_SHOW); bOK = pDoc->Initiate(lpszNode, lpszServer, lpszUser, NULL); if (!bOK) return FALSE; CTypedPtrList<CObList, CuIpmTreeFastItem*> listItemPath; bOK = IPM_BuildItemPath (pDoc, listItemPath); if (!bOK) { while (!listItemPath.IsEmpty()) delete listItemPath.RemoveHead(); return FALSE; } ExpandUpToSearchedItem(m_pIpmFrame, listItemPath, TRUE); lock.UnLock(); // // Cleanup: while (!listItemPath.IsEmpty()) delete listItemPath.RemoveHead(); // // Fetch the selected tree item and display the corresponding right pane: IPMUPDATEPARAMS ups; CTreeGlobalData* pGD = pDoc->GetPTreeGD(); ASSERT (pGD); if (!pGD) return FALSE; CTreeCtrl* pTree = pGD->GetPTree(); ASSERT (pTree); if (!pTree) return FALSE; CuDlgIpmTabCtrl* pTabDlg = (CuDlgIpmTabCtrl*)m_pIpmFrame->GetTabDialog(); if (!pTabDlg) return FALSE; HTREEITEM hSelected = pTree->GetSelectedItem(); if (!hSelected) return FALSE; // // Notify the container of sel change: ContainerNotifySelChange(); memset (&ups, 0, sizeof (ups)); CTreeItem* pItem = (CTreeItem*)pTree->GetItemData (hSelected); if (pItem->IsNoItem() || pItem->IsErrorItem()) { pTabDlg->DisplayPage (NULL); return TRUE; } if (pItem->ItemDisplaysNoPage()) { CString caption = pItem->ItemNoPageCaption(); pTabDlg->DisplayPage (NULL, caption); return TRUE; } if (pItem->HasReplicMonitor()) { pDoc->InitializeReplicator(pItem->GetDBName()); } int nImage = -1, nSelectedImage = -1; CImageList* pImageList = pTree->GetImageList (TVSIL_NORMAL); HICON hIcon = NULL; int nImageCount = pImageList? pImageList->GetImageCount(): 0; if (pImageList && pTree->GetItemImage(hSelected, nImage, nSelectedImage)) { if (nImage < nImageCount) hIcon = pImageList->ExtractIcon(nImage); } CuPageInformation* pPageInfo = pItem->GetPageInformation(); ASSERT(pPageInfo); if (!pPageInfo) return FALSE; int nSelectTab = GetDefaultSelectTab (pDoc); CString strItem = pItem->GetRightPaneTitle(); pItem->UpdateDataWhenSelChange(); // Has an effect only if the class has specialied the method. ups.nType = pItem->GetType(); ups.pStruct = pItem->GetPTreeItemData()? pItem->GetPTreeItemData()->GetDataPtr(): NULL; ups.pSFilter= pDoc->GetPTreeGD()->GetPSFilter(); pPageInfo->SetUpdateParam (&ups); pPageInfo->SetTitle ((LPCTSTR)strItem, pItem, pDoc); pPageInfo->SetImage (hIcon); pTabDlg->DisplayPage (pPageInfo, NULL, nSelectTab); return TRUE; } catch(CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); } catch(CResourceException* e) { AfxMessageBox (IDS_E_LOAD_DLG); e->Delete(); } catch(...) { AfxMessageBox (IDS_E_CONSTRUCT_PROPERTY); } return FALSE; }