BOOL CuDlgIpmTabCtrl::OnInitDialog() { CDialog::OnInitDialog(); VERIFY (m_staticHeader.SubclassDlgItem (IDC_STATIC, this)); m_staticHeader.SetImage (-1); // No Image for Now CWnd* pParent1 = GetParent(); // The view: CImView2 ASSERT (pParent1); CdIpmDoc* pDoc = (CdIpmDoc*)((CView*)pParent1)->GetDocument(); ASSERT (pDoc); if (!pDoc->GetCurrentProperty()) return TRUE; // // When the document is Loaded ... try { CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); CvIpmLeft* pIpmView1= (CvIpmLeft*)pFrame->GetLeftPane(); CTreeCtrl& treeCtrl = pIpmView1->GetTreeCtrl(); HTREEITEM hSelected= treeCtrl.GetSelectedItem (); ASSERT (hSelected); if (!hSelected) return TRUE; CTreeItem* pItem = (CTreeItem*)treeCtrl.GetItemData (hSelected); CuPageInformation* pPageInfo = pDoc->GetCurrentProperty()->GetPageInfo(); LPIPMUPDATEPARAMS pUps = pPageInfo->GetUpdateParam(); pUps->nType = pItem->GetType(); pUps->pStruct = pItem->GetPTreeItemData()? pItem->GetPTreeItemData()->GetDataPtr(): NULL; pUps->pSFilter= pDoc->GetFilter(); int nImage = -1, nSelectedImage = -1; CImageList* pImageList = treeCtrl.GetImageList (TVSIL_NORMAL); HICON hIcon = NULL; int nImageCount = pImageList? pImageList->GetImageCount(): 0; if (pImageList && treeCtrl.GetItemImage(hSelected, nImage, nSelectedImage)) { if (nImage < nImageCount) hIcon = pImageList->ExtractIcon(nImage); } pPageInfo->SetImage (hIcon); LoadPage (pDoc->GetCurrentProperty()); m_bIsLoading = TRUE; if (m_pCurrentPage) { UINT nMask = IPMMASK_FONT|IPMMASK_SHOWGRID; m_pCurrentPage->SendMessage (WMUSRMSG_CHANGE_SETTING, (UINT)nMask, (LPARAM)&(pDoc->GetProperty())); } } catch (CMemoryException* e) { theApp.OutOfMemoryMessage (); m_pCurrentPage = NULL; m_pCurrentProperty = NULL; e->Delete(); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CuDlgReplicationServerPageStatus::OnButtonStart() { CWaitCursor hourglass; try { CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); CdIpmDoc* pDoc = (CdIpmDoc*)pFrame->GetActiveDocument(); IPM_StartReplicationServer(pDoc, &m_SvrDta, m_strEdit2); UpdateData (FALSE); } catch (CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); } catch (CeIpmException e) { AfxMessageBox (e.GetReason(), MB_ICONEXCLAMATION|MB_OK); } catch (...) { } EnableButtons(); }
void CuDlgReplicationServerPageStartupSetting::OnButtonSave() { int iret; CWaitCursor hourglass; CdIpmDoc* pIpmDoc = NULL; CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame(); ASSERT(pIpmFrame); if (pIpmFrame) { pIpmDoc = pIpmFrame->GetIpmDoc(); ASSERT (pIpmDoc); } if (!pIpmDoc) return; ASSERT (m_FlagsList.IsEmpty()); while (!m_FlagsList.IsEmpty()) delete m_FlagsList.RemoveHead(); int i, nCount = m_cListCtrl.GetItemCount(); CaReplicationItem* pItem = NULL; for (i=0; i<nCount; i++) { pItem = (CaReplicationItem*)m_cListCtrl.GetItemData (i); if (pItem) m_FlagsList.AddTail (pItem); } CString csVnodeAndUsers; int nNodeHdl = -1; if (lstrcmp((char *)m_pSvrDta->LocalDBNode,(char *)m_pSvrDta->RunNode) == 0) csVnodeAndUsers.Format(_T("%s%s%s%s"), m_pSvrDta->LocalDBNode, LPUSERPREFIXINNODENAME, (LPCTSTR)m_csDBAOwner, LPUSERSUFFIXINNODENAME); else csVnodeAndUsers = m_pSvrDta->RunNode; nNodeHdl = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers); if (nNodeHdl == -1) { CString strMsg,strMsg1; strMsg.LoadString(IDS_MAX_NB_CONNECT); // _T("Maximum number of connections has been reached" strMsg1.LoadString(IDS_E_SAVE_FILE); // " - Cannot save file." strMsg += _T("\n")+strMsg1; AfxMessageBox(strMsg, NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL); return; } iret = SetReplicServerParams ( pIpmDoc, m_pSvrDta, &m_FlagsList ); LIBMON_CloseNodeStruct (nNodeHdl); if ( iret == RES_SUCCESS ) m_FlagsList.SetModifyEdit(); // Not modify. if (!m_FlagsList.IsEmpty()) m_FlagsList.RemoveAll(); EnableButtons(); }
void CdIpmDoc::SearchItem() { CTreeCtrl* pTree = m_pTreeGD->GetPTree(); ASSERT (pTree); if (!pTree) return; CfIpmFrame* pIpmFrame = (CfIpmFrame*)pTree->GetParentFrame(); CvIpmLeft* pView = (CvIpmLeft*)pIpmFrame->GetLeftPane(); if (!pView) return; pView->SearchItem(); }
void CdIpmDoc::ProhibitActionOnTreeCtrl(BOOL bProhibit) { CTreeCtrl* pTree = m_pTreeGD->GetPTree(); ASSERT (pTree); if (!pTree) return; CfIpmFrame* pIpmFrame = (CfIpmFrame*)pTree->GetParentFrame(); CvIpmLeft* pView = (CvIpmLeft*)pIpmFrame->GetLeftPane(); if (!pView) return; pView->ProhibitActionOnTreeCtrl(bProhibit); }
BOOL CuDlgReplicationStaticPageCollision::OnInitDialog() { CDialog::OnInitDialog(); m_cEdit1.ShowWindow (SW_HIDE); try { CRect r; GetClientRect (r); m_pFrameLayout = new CfReplicationPageCollision (); m_pFrameLayout->Create ( NULL, NULL, WS_CHILD, r, this); m_pFrameLayout->InitialUpdateFrame(NULL, FALSE); if (m_pFrameLayout && IsWindow (m_pFrameLayout->m_hWnd)) { CvReplicationPageCollisionViewLeft* pView = (CvReplicationPageCollisionViewLeft*)m_pFrameLayout->GetLeftPane(); ASSERT (pView); if (pView) { CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame(); ASSERT(pIpmFrame); if (pIpmFrame) { CdIpmDoc* pIpmDoc = (CdIpmDoc*)pIpmFrame->GetIpmDoc(); if (pIpmDoc) { CTreeCtrl& treeCtrl = pView->GetTreeCtrl(); CaIpmProperty& property = pIpmDoc->GetProperty(); treeCtrl.SetFont (CFont::FromHandle(property.GetFont())); } } } } } catch (CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); } catch (...) { if (m_pFrameLayout) m_pFrameLayout->DestroyWindow(); m_pFrameLayout = NULL; TRACE0 ("Cannot allocate frame (collision page new design)\n"); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
BOOL CuDlgIpmTabCtrl::ChangeTab() { int nSel; CRect r; CWnd* pNewPage; CuPageInformation* pPageInfo; CWnd* pParent1 = GetParent(); // The view: CImView2 ASSERT (pParent1); CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); // The Frame Window ASSERT (pFrame); CdIpmDoc* pDoc = (CdIpmDoc*)((CView*)pParent1)->GetDocument(); ASSERT (pDoc); if (!pFrame->IsAllViewCreated()) return FALSE; if (!m_pCurrentProperty) return FALSE; CWaitCursor doWaitCursor; m_cTab1.GetClientRect (r); m_cTab1.AdjustRect (FALSE, r); nSel = m_cTab1.GetCurSel(); m_pCurrentProperty->SetCurSel(nSel); pPageInfo = m_pCurrentProperty->GetPageInfo(); try { pNewPage = GetPage (pPageInfo->GetDlgID (nSel)); } catch (CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); return FALSE; } catch (CResourceException* e) { AfxMessageBox (IDS_E_LOAD_RESOURCE);//"Fail to load resource" e->Delete(); return FALSE; } if (m_pCurrentPage) m_pCurrentPage->ShowWindow (SW_HIDE); m_pCurrentPage = pNewPage; m_pCurrentPage->MoveWindow (r); m_pCurrentPage->ShowWindow(SW_SHOW); // // Properties: UINT nMask = IPMMASK_FONT|IPMMASK_SHOWGRID; m_pCurrentPage->SendMessage (WMUSRMSG_CHANGE_SETTING, (WPARAM)nMask, (LPARAM)&(pDoc->GetProperty())); // // Update Data: m_pCurrentPage->SendMessage (WM_USER_IPMPAGE_UPDATEING, (WPARAM)pDoc, (LPARAM)pPageInfo->GetUpdateParam()); return TRUE; }
void CvIpmLeft::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) { CdIpmDoc* pDoc = (CdIpmDoc*)GetDocument(); ASSERT (pDoc); if (!pDoc) return; CaIpmProperty& property = pDoc->GetProperty(); BOOL bSetToDefaultPercentage = FALSE; //UKS BOOL bRegularStaticSet = TRUE; int nHint = (int)lHint; switch (nHint) { case 1: // Invoked by CdIpmDoc::Initiate() GetTreeCtrl().SendMessage (WM_SETFONT, (WPARAM)property.GetFont(), MAKELPARAM(TRUE, 0)); if (bSetToDefaultPercentage) { CRect rcClient; CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); ASSERT (pFrame); CSplitterWnd* pSplit = (CSplitterWnd *)pFrame->GetSplitterWnd(); ASSERT (pSplit); pFrame->GetClientRect (rcClient); pSplit->SetColumnInfo(0, (int) (0.4 * (double)rcClient.Width()), 10); pSplit->RecalcLayout(); } // Create regular static set, if needed if (bRegularStaticSet) { CuTMServerStatic *pItem1 = new CuTMServerStatic (pDoc->GetPTreeGD()); CuTMLockinfoStatic *pItem3 = new CuTMLockinfoStatic (pDoc->GetPTreeGD()); CuTMLoginfoStatic *pItem4 = new CuTMLoginfoStatic (pDoc->GetPTreeGD()); CuTMAllDbStatic *pItem5 = new CuTMAllDbStatic (pDoc->GetPTreeGD()); CuTMActiveUsrStatic *pItem6 = new CuTMActiveUsrStatic(pDoc->GetPTreeGD()); CuTMReplAllDbStatic *pItem7 = new CuTMReplAllDbStatic(pDoc->GetPTreeGD()); HTREEITEM hItem1 = pItem1->CreateTreeLine(); HTREEITEM hItem2 = pItem3->CreateTreeLine(); HTREEITEM hItem3 = pItem4->CreateTreeLine(); HTREEITEM hItem4 = pItem5->CreateTreeLine(); HTREEITEM hItem5 = pItem6->CreateTreeLine(); HTREEITEM hItem6 = pItem7->CreateTreeLine(); ASSERT (hItem1 && hItem2 && hItem3 && hItem4 && hItem5 && hItem6); CTreeCtrl& cTree = GetTreeCtrl(); cTree.SelectItem(hItem1); } break; default: break; } }
void CuDlgIpmTabCtrl::NotifyPageSelChanging() { if (m_pCurrentProperty) { if (m_pCurrentPage) { CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); CIpmCtrl* pIpmCtrl = (CIpmCtrl*)pFrame->GetParent(); if (pIpmCtrl) pIpmCtrl->ContainerNotifySelChange(); m_pCurrentPage->SendMessage (WM_USER_IPMPAGE_LEAVINGPAGE, (WPARAM)LEAVINGPAGE_CHANGELEFTSEL, 0L); } } }
void CuDlgReplicationStaticPageRaiseEvent::OnButtonRaiseEventAllServer() { CdIpmDoc* pIpmDoc = NULL; CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame(); ASSERT(pIpmFrame); if (pIpmFrame) { pIpmDoc = pIpmFrame->GetIpmDoc(); ASSERT (pIpmDoc); } if (!pIpmDoc) return; CxDlgReplicationServerList dlg; dlg.m_pDBResourceDataMin = m_pSvrDta; dlg.m_pIpmDoc = pIpmDoc; int i, nSel = -1, nCount = m_cListCtrl.GetItemCount(); for (i=0; i<nCount; i++) { if (m_cListCtrl.GetItemState(i, LVIS_SELECTED) & LVIS_SELECTED) { nSel = i; dlg.m_strEventFlag = m_cListCtrl.GetItemText(i, 1); dlg.m_strServerFlag= m_cListCtrl.GetItemText(i, 2); break; } } if (nSel == -1) return; int iret; CaReplicationRaiseDbevent* pItem = (CaReplicationRaiseDbevent*)m_cListCtrl.GetItemData (nSel); if(pItem->AskQuestion()) { iret = pItem->AskQuestion4FilledServerFlag(&dlg.m_strServerFlag); if (iret == IDCANCEL) { m_cListCtrl.SetFocus(); EnableButtons(); return; } } dlg.DoModal(); m_cListCtrl.SetFocus(); EnableButtons(); }
void CvReplicationPageCollisionViewLeft::ResolveCurrentTransaction() { CTreeCtrl& treectrl = GetTreeCtrl(); HTREEITEM hCurrentSelected = treectrl.GetSelectedItem(); if (!hCurrentSelected) return; HTREEITEM hSaveSelected = hCurrentSelected; CaCollisionItem* pItem = (CaCollisionItem*)treectrl.GetItemData(hCurrentSelected); if (!pItem) return; if (!pItem->IsTransaction()) { hCurrentSelected = treectrl.GetParentItem(hCurrentSelected); pItem = (CaCollisionItem*)treectrl.GetItemData(hCurrentSelected); } if (pItem && pItem->IsTransaction()) { CFrameWnd* pParent = (CFrameWnd*)GetParentFrame(); CfIpmFrame* pFrame = (CfIpmFrame*)pParent->GetParentFrame(); ASSERT(pFrame); if (!pFrame) return; CdIpmDoc* pDoc = pFrame->GetIpmDoc(); CaCollisionTransaction* pTrans = (CaCollisionTransaction*)pItem; IPM_ResolveCurrentTransaction(pDoc, pItem); treectrl.SetItemImage (hCurrentSelected, pTrans->GetImageType(), pTrans->GetImageType()); } CfReplicationPageCollision* pFrame = (CfReplicationPageCollision*)GetParentFrame(); ASSERT (pFrame); if (pFrame) { CvReplicationPageCollisionViewRight* pViewR = (CvReplicationPageCollisionViewRight*)pFrame->GetRightPane(); ASSERT (pViewR); if (pViewR) { CaCollisionItem* pItem = (CaCollisionItem*)treectrl.GetItemData (hSaveSelected); pViewR->SendMessage (WM_USER_IPMPAGE_UPDATEING, (WPARAM)hSaveSelected, (LPARAM)pItem); } } }
BOOL IpmCurSelHasStaticChildren(CWnd* pPropWnd) { CfIpmFrame* pIpmFrame = (CfIpmFrame*)pPropWnd->GetParentFrame(); ASSERT (pIpmFrame->IsKindOf(RUNTIME_CLASS(CfIpmFrame))); // Get selected item handle HTREEITEM hItem = pIpmFrame->GetSelectedItem(); ASSERT (hItem); if (!hItem) return FALSE; CTreeItem *pItem = (CTreeItem*)pIpmFrame->GetPTree()->GetItemData(hItem); ASSERT (pItem); if (!pItem) return FALSE; SubBK subBranchKind = pItem->GetSubBK(); if (subBranchKind == SUBBRANCH_KIND_STATIC) return TRUE; else return FALSE; }
BOOL ExpandUpToSearchedItem(CWnd* pPropWnd, CTypedPtrList<CObList, CuIpmTreeFastItem*>& rIpmTreeFastItemList, BOOL bAutomated) { CfIpmFrame* pIpmFrame = NULL; if (bAutomated) { ASSERT (pPropWnd->IsKindOf(RUNTIME_CLASS(CfIpmFrame))); pIpmFrame = (CfIpmFrame*)pPropWnd; } else { pIpmFrame = (CfIpmFrame*)pPropWnd->GetParentFrame(); ASSERT (pIpmFrame->IsKindOf(RUNTIME_CLASS(CfIpmFrame))); } ASSERT (pIpmFrame); // Get selected item handle HTREEITEM hItem = 0; if (bAutomated) { hItem = 0; // Will force search on all root items } else { hItem = pIpmFrame->GetSelectedItem(); ASSERT (hItem); } // Loop on fastitemlist POSITION pos = rIpmTreeFastItemList.GetHeadPosition(); while (pos) { CuIpmTreeFastItem* pFastItem = rIpmTreeFastItemList.GetNext (pos); hItem = pIpmFrame->FindSearchedItem(pFastItem, hItem); if (!hItem) { ASSERT (FALSE); return FALSE; } } pIpmFrame->SelectItem(hItem); return TRUE; }
void CvIpmLeft::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { IPMUPDATEPARAMS ups; NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; CdIpmDoc* pDoc = (CdIpmDoc *)GetDocument(); try { ASSERT(pDoc); if (!pDoc) return; if (pDoc->GetLockDisplayRightPane()) return; CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); ASSERT (pFrame); if (!pFrame) return; if (!pFrame->IsAllViewCreated()) return; CuDlgIpmTabCtrl* pTabDlg = (CuDlgIpmTabCtrl*)pFrame->GetTabDialog(); if (!pTabDlg) return; CWaitCursor doWaitCursor ; // // Notify the container of sel change: CIpmCtrl* pIpmCtrl = (CIpmCtrl*)pFrame->GetParent(); if (pIpmCtrl) pIpmCtrl->ContainerNotifySelChange(); memset (&ups, 0, sizeof (ups)); CTreeCtrl& treeCtrl = GetTreeCtrl(); CTreeItem* pItem = (CTreeItem*)treeCtrl.GetItemData (pNMTreeView->itemNew.hItem); if (pItem->IsNoItem() || pItem->IsErrorItem()) { pTabDlg->DisplayPage (NULL); *pResult = 0; return; } if (pItem->ItemDisplaysNoPage()) { CString caption = pItem->ItemNoPageCaption(); pTabDlg->DisplayPage (NULL, caption); *pResult = 0; return; } if (pItem->HasReplicMonitor()) { pDoc->InitializeReplicator(pItem->GetDBName()); } int nImage = -1, nSelectedImage = -1; CImageList* pImageList = treeCtrl.GetImageList (TVSIL_NORMAL); HICON hIcon = NULL; int nImageCount = pImageList? pImageList->GetImageCount(): 0; if (pImageList && treeCtrl.GetItemImage(pNMTreeView->itemNew.hItem, nImage, nSelectedImage)) { if (nImage < nImageCount) hIcon = pImageList->ExtractIcon(nImage); } CuPageInformation* pPageInfo = pItem->GetPageInformation(); 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); } catch(CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); } catch(CResourceException* e) { AfxMessageBox (IDS_E_LOAD_DLG); e->Delete(); } catch(...) { AfxMessageBox (IDS_E_CONSTRUCT_PROPERTY); } *pResult = 0; }
BOOL CdIpmDoc::UpdateDisplay() { TRACE0("CdIpmDoc::UpdateDisplay()\n"); try { m_pTreeGD->RefreshAllTreeBranches(); // refresh left pane IPMUPDATEPARAMS ups; memset (&ups, 0, sizeof (ups)); CTreeItem* pItem = NULL; CTreeCtrl* pTree = m_pTreeGD->GetPTree(); ASSERT (pTree); HTREEITEM hSelectedItem = pTree->GetSelectedItem(); if (!hSelectedItem) return FALSE; pItem = (CTreeItem*)pTree->GetItemData(hSelectedItem); ASSERT (pItem); if (pItem->IsNoItem() || pItem->IsErrorItem()) { m_pTabDialog->DisplayPage (NULL); } else if (pItem->ItemDisplaysNoPage()) { CString caption = pItem->ItemNoPageCaption(); m_pTabDialog->DisplayPage (NULL, caption); } else { int nImage = -1, nSelectedImage = -1; CImageList* pImageList = pTree->GetImageList (TVSIL_NORMAL); HICON hIcon = NULL; int nImageCount = pImageList? pImageList->GetImageCount(): 0; if (pImageList && pTree->GetItemImage(hSelectedItem, nImage, nSelectedImage)) { if (nImage < nImageCount) hIcon = pImageList->ExtractIcon(nImage); } CuPageInformation* pPageInfo = pItem->GetPageInformation(); CString strItem = pItem->GetRightPaneTitle(); ups.nType = pItem->GetType(); ups.pStruct = pItem->GetPTreeItemData()? pItem->GetPTreeItemData()->GetDataPtr(): NULL; ups.pSFilter= m_pTreeGD->GetPSFilter(); pPageInfo->SetUpdateParam (&ups); pPageInfo->SetTitle ((LPCTSTR)strItem, pItem, this); pPageInfo->SetImage (hIcon); m_pTabDialog->DisplayPage (pPageInfo); } // Replicator Monitor special management // ASSUMES we did not change the current item! BOOL bReplMonWasOn = (m_hReplMonHandle != -1) ? TRUE: FALSE; BOOL bReplMonToBeOn = pItem->HasReplicMonitor(); // 3 cases : // - on to off ---> replicator has been uninstalled // - off to on ---> replicator has been installed // - on to on, or off to off: state has not changed if (bReplMonWasOn && !bReplMonToBeOn) { BOOL bOK = TerminateReplicator(); ASSERT (bOK); } else if (!bReplMonWasOn && bReplMonToBeOn) { CString csDbName = pItem->GetDBName(); BOOL bOK = InitializeReplicator(csDbName); ASSERT (bOK); } // // Refresh right pane CfIpmFrame* pIpmFrame = (CfIpmFrame*)pTree->GetParentFrame(); UpdateAllViews((CView *)pIpmFrame->GetLeftPane()); } catch(CMemoryException* e) { theApp.OutOfMemoryMessage(); e->Delete(); return FALSE; } catch(CResourceException* e) { //_T("Cannot load dialog box"); AfxMessageBox (IDS_E_LOAD_DLG); e->Delete(); return FALSE; } catch(...) { //_T("Cannot construct the property pane"); AfxMessageBox (IDS_E_CONSTRUCT_PROPERTY); return FALSE; } return TRUE; }
void CvIpmLeft::OnSelchanging(NMHDR* pNMHDR, LRESULT* pResult) { CTreeCtrl& tree = GetTreeCtrl(); CdIpmDoc* pDoc = (CdIpmDoc *)GetDocument(); ASSERT(pDoc); *pResult = 0; // default to allow selchange try { // Manage "update all after load on first action" if (!pDoc) return; if (pDoc->GetPTreeGD()->CurrentlyLoading()) return; if (pDoc->GetLockDisplayRightPane()) return; if (pDoc->ManageMonSpecialState() || m_bProhibitActionOnTreeCtrl) { *pResult = 1; return; } NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM hItem = pNMTreeView->itemNew.hItem; CTreeItem *pItem; pItem = (CTreeItem *)tree.GetItemData(hItem); if (pItem) { if (!pItem->CompleteStruct()) { //"Structure Not Completed" AfxMessageBox(IDS_E_STRUCTURE, MB_OK | MB_ICONEXCLAMATION); *pResult = 1; // prevent selchange return; } // Manage old item replicator dbevents HTREEITEM hOldItem = pNMTreeView->itemOld.hItem; if (hOldItem) { CTreeItem *pOldItem; pOldItem = (CTreeItem *)tree.GetItemData(hOldItem); ASSERT (pOldItem); if (pOldItem) { // Cannot rely on "if (!pOldItem->ItemDisplaysNoPage())" // because replication can have been installed/uninstalled since then // ---> must terminate or not according to m_ReplMonHandle value if (pOldItem->HasReplicMonitor()) { pDoc->TerminateReplicator(); } } } // Notify current page on the right that we are about to leave it CfIpmFrame* pFrame = (CfIpmFrame*)GetParentFrame(); ASSERT (pFrame); if (pFrame) { if (pFrame->IsAllViewCreated()) { CuDlgIpmTabCtrl* pTabDlg = (CuDlgIpmTabCtrl*)pFrame->GetTabDialog(); if (pTabDlg) pTabDlg->NotifyPageSelChanging(); } } } } catch (...) { AfxMessageBox (IDS_E_CONSTRUCT_PROPERTY); } }
LONG CuDlgReplicationServerPageStartupSetting::OnUpdateData (WPARAM wParam, LPARAM lParam) { int iret,ires,irestype, nNodeHdl = -1; UCHAR DBAUsernameOntarget[MAXOBJECTNAME]; UCHAR buf[EXTRADATASIZE]; UCHAR extradata[EXTRADATASIZE]; LPUCHAR parentstrings [MAXPLEVEL]; CString cDefNumSvr,cDefDbName,cLocal; CString strMsg,strMsg1; LPIPMUPDATEPARAMS pUps = (LPIPMUPDATEPARAMS)lParam; m_pSvrDta = (LPREPLICSERVERDATAMIN)pUps->pStruct; EnableButtons(); // // Specialize the OnUpdateData: if (!m_pSvrDta->m_bRefresh) return 0L; m_pSvrDta->m_bRefresh = FALSE; CdIpmDoc* pIpmDoc = NULL; CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame(); ASSERT(pIpmFrame); if (pIpmFrame) { pIpmDoc = pIpmFrame->GetIpmDoc(); ASSERT (pIpmDoc); } if (!pIpmDoc) return 0L; nNodeHdl = LIBMON_OpenNodeStruct (m_pSvrDta->LocalDBNode); if (nNodeHdl == -1) { strMsg.LoadString(IDS_MAX_NB_CONNECT); // _T("Maximum number of connections has been reached" strMsg1.LoadString (IDS_E_READ_FILE); // " - Cannot read file." strMsg += _T("\n") + strMsg1; MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL); return 0L; } // Temporary for activate a session ires = DOMGetFirstObject (nNodeHdl, OT_DATABASE, 0, NULL, FALSE, NULL, buf, NULL, NULL); cDefDbName.Format(_T("%s::%s"), m_pSvrDta->LocalDBNode,m_pSvrDta->LocalDBName); // //Get DBA user name for this database parentstrings[0]=m_pSvrDta->LocalDBName; parentstrings[1]=NULL; memset (DBAUsernameOntarget,'\0',sizeof(DBAUsernameOntarget)); iret = DOMGetObjectLimitedInfo( nNodeHdl, parentstrings [0], (UCHAR *)"", OT_DATABASE, 0, parentstrings, TRUE, &irestype, buf, DBAUsernameOntarget, extradata ); if (iret != RES_SUCCESS) { LIBMON_CloseNodeStruct(nNodeHdl); //wsprintf((char *)buf,"DBA owner on database : %s not found. Read file aborted.",parentstrings[0]); strMsg.Format(IDS_F_DB_OWNER,parentstrings[0]); MessageBox(strMsg, NULL, MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL); return 0L; } LIBMON_CloseNodeStruct(nNodeHdl); m_csDBAOwner=DBAUsernameOntarget; cDefNumSvr.Format(_T("%d"),m_pSvrDta->serverno); if (m_csDBAOwner.IsEmpty() ||cDefNumSvr.IsEmpty()||cDefDbName.IsEmpty()) { return 0L; } Cleanup(); m_cListCtrl.DeleteAllItems(); CString csVnodeAndUsers; // Read default flags on "LocalDBNode (user:XXX)" csVnodeAndUsers.Format(_T("%s%s%s%s"), m_pSvrDta->LocalDBNode, LPUSERPREFIXINNODENAME, (LPCTSTR)m_csDBAOwner, LPUSERSUFFIXINNODENAME); nNodeHdl = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers); if (nNodeHdl == -1) { strMsg.LoadString (IDS_MAX_NB_CONNECT); // _T("Maximum number of connections has been reached" strMsg1.LoadString (IDS_E_READ_FILE); // " - Cannot read file." strMsg += _T("\n") + strMsg1; MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL); return 0L; } memset (DBAUsernameOntarget,'\0',sizeof(DBAUsernameOntarget)); iret = DOMGetObjectLimitedInfo( nNodeHdl, parentstrings [0], (UCHAR *)"", OT_DATABASE, 0, parentstrings, TRUE, &irestype, buf, DBAUsernameOntarget, extradata ); if (iret != RES_SUCCESS) { LIBMON_CloseNodeStruct(nNodeHdl); //wsprintf((char *)buf,"DBA owner on database : %s not found. Read file aborted.",parentstrings[0]); strMsg.Format(IDS_F_DB_OWNER,parentstrings[0]); MessageBox(strMsg, NULL, MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL); return 0L; } m_FlagsList.DefineAllFlagsWithDefaultValues(nNodeHdl , cDefNumSvr, cDefDbName, m_csDBAOwner); LIBMON_CloseNodeStruct(nNodeHdl); // Read Runrepl.opt from "LocalDBNode (user:XXX)" or From "RunNode" if (lstrcmp((char *)m_pSvrDta->LocalDBNode,(char *)m_pSvrDta->RunNode) == 0) csVnodeAndUsers.Format(_T("%s%s%s%s"), m_pSvrDta->LocalDBNode, LPUSERPREFIXINNODENAME, (LPCTSTR)m_csDBAOwner, LPUSERSUFFIXINNODENAME); else csVnodeAndUsers = m_pSvrDta->RunNode; nNodeHdl = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers); if (nNodeHdl == -1) { strMsg.LoadString(IDS_MAX_NB_CONNECT); // _T("Maximum number of connections has been reached" strMsg1.LoadString (IDS_E_READ_FILE); // " - Cannot read file." strMsg += _T("\n") + strMsg1; MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL); return 0L; } CWaitCursor hourglass; // Read file Runrepl.opt and fill m_FlagsList. iret = GetReplicServerParams ( pIpmDoc, m_pSvrDta, &m_FlagsList ); LIBMON_CloseNodeStruct (nNodeHdl); CaReplicationItem* pItem = NULL; while (!m_FlagsList.IsEmpty()) { pItem = m_FlagsList.RemoveHead(); if (pItem->IsDisplay()) AddItem (pItem); else delete pItem; } EnableButtons(); return 0L; }