void CuDlgDBEventPane01::UpdateControl() { CView* pView = (CView*)GetParent(); ASSERT (pView); CDbeventDoc* pDoc = (CDbeventDoc*)pView->GetDocument(); ASSERT (pDoc); CWnd* pSplitter = pView->GetParent(); ASSERT (pSplitter); CDbeventFrame* pFrame = (CDbeventFrame*)pSplitter->GetParent(); ASSERT (pFrame); // // Remark: // InitializeDBEvent() is called on the CBN_SELCHANGE of Database ComboBox. CString strNone; if (strNone.LoadString (IDS_DATABASE_NONE) == 0) strNone = "<None>"; if (pDoc->m_strDBName == "" || pDoc->m_strDBName == strNone) return; // Load ... // Initialize the new Database. if (DBETraceInit (pDoc->m_hNode, (LPUCHAR)(LPCTSTR)pDoc->m_strDBName , pFrame->m_hWnd, &(pDoc->m_nHandle)) == RES_SUCCESS) { pDoc->m_bDBInit = TRUE; m_strCurrentDB = pDoc->m_strDBName; } else { pDoc->m_bDBInit = FALSE; pDoc->m_nHandle = -1; BfxMessageBox (VDBA_MfcResourceString(IDS_E_INITIALIZE_DB_EVENT));//"Error while initializing the Database for DB Event Registration" } if (pDoc->m_bDBInit) { int index; CTypedPtrList<CObList, CuDataRegisteredDBevent*>& listDBEvent = pDoc->m_listRegisteredDBEvent; POSITION pos = listDBEvent.GetHeadPosition(); while (pos != NULL) { CuDataRegisteredDBevent* dbe = listDBEvent.GetNext (pos); index = m_cListDBEvent.AddString (dbe->m_strDBEvent); if (index != LB_ERR) { LPTSTR lpszOwner = new TCHAR [dbe->m_strOwner.GetLength() +1]; lstrcpy (lpszOwner, (LPTSTR)(LPCTSTR)dbe->m_strOwner); m_cListDBEvent.SetItemData (index, (DWORD)lpszOwner); if (dbe->m_bRegistered) { if (DBETraceRegister (pDoc->m_nHandle, (LPUCHAR)(LPCTSTR)dbe->m_strDBEvent, (LPUCHAR)(LPCTSTR)dbe->m_strOwner) != RES_SUCCESS) BfxMessageBox (VDBA_MfcResourceString(IDS_E_REGISTERING_DB_EVENT));//"Error while Registering DB Event" else m_cListDBEvent.SetCheck (index, 1); } } } } }
BOOL CuDlgDBEventPane02::OnMaxLineChange (int nMax) { CView* pView = (CView*)GetParent(); ASSERT (pView); CDbeventDoc* pDoc = (CDbeventDoc*)pView->GetDocument(); ASSERT (pDoc); int nCount = m_cListRaisedDBEvent.GetItemCount(); if (nCount > nMax) { int i, diff = nCount - nMax; if (pDoc->m_bClearFirst) { for (i=0; i<diff; i++) m_cListRaisedDBEvent.DeleteItem (0); } else { //CString strMsg = "New value is smaller than actual number of lines,\n" // "and 'Clear First When Max Reached is not checked'.\n" // "Previous value is kept"; BfxMessageBox (VDBA_MfcResourceString(IDS_E_NEW_VALUE), MB_OK|MB_ICONEXCLAMATION); return FALSE; } } return TRUE; }
void CuDlgDBEventPane01::OnRefresh() { TRACE0 ("CuDlgDBEventPane01::OnRefresh() ...\n"); int nCount, i, index =CB_ERR; CString strItem; CView* pView = (CView*)GetParent(); ASSERT (pView); CDbeventDoc* pDoc = (CDbeventDoc*)pView->GetDocument(); ASSERT (pDoc); // // Refresh data of this Window // Refresh the DB Events of One Database. CString strNone; strNone.LoadString (IDS_DATABASE_NONE); if (pDoc->m_strDBName == strNone || pDoc->m_strDBName == "") return; CCheckListBox list; list.Create (WS_CHILD|LBS_HASSTRINGS|LBS_OWNERDRAWFIXED, CRect (0,0, 10, 10), this, (UINT)-1); ASSERT (IsWindow (list.m_hWnd)); InitializeDBEvent (m_strCurrentDB, &list); nCount = m_cListDBEvent.GetCount(); for (i = 0; i < nCount; i++) { if (m_cListDBEvent.GetCheck(i) == 1) { m_cListDBEvent.GetText (i, strItem); index = list.FindStringExact (-1, strItem); if (index == LB_ERR) { CString msg; AfxFormatString1 (msg, IDS_DBECHECKED_HASBEEN_REMOVED, (LPCTSTR)strItem); BfxMessageBox (msg); } else { list.SetCheck (index, 1); } } } CleanListBox (&m_cListDBEvent); m_cListDBEvent.ResetContent (); nCount = list.GetCount(); for (i = 0; i < nCount; i++) { list.GetText (i, strItem); index = m_cListDBEvent.AddString (strItem); if (index != LB_ERR) { LPTSTR lpszOwner = (LPTSTR)list.GetItemData (i); m_cListDBEvent.SetItemData (i, (DWORD)lpszOwner); if (list.GetCheck (i) == 1) m_cListDBEvent.SetCheck (index, 1); } } }
LONG CuDlgDBEventPane02::OnDbeventTraceIncoming (WPARAM wParam, LPARAM lParam) { LPRAISEDDBE lpStruct = (LPRAISEDDBE)lParam; CView* pView = (CView*)GetParent(); ASSERT (pView); CDbeventDoc* pDoc = (CDbeventDoc*)pView->GetDocument(); ASSERT (pDoc); CSplitterWnd* pSplitter = (CSplitterWnd*)pView->GetParent(); ASSERT (pSplitter); CDbeventFrame* pFrame = (CDbeventFrame*)pSplitter->GetParent(); ASSERT (pFrame); if (!pFrame->GetPaneRegisteredDBEvent()->Find ((LPCTSTR)lpStruct->DBEventName, (LPCTSTR)lpStruct->DBEventOwner)) { IncomingDBEvent ( pDoc, "r", (LPCTSTR)lpStruct->StrTimeStamp, (LPCTSTR)lpStruct->DBEventName, (LPCTSTR)lpStruct->DBEventOwner, (LPCTSTR)lpStruct->DBEventText, "*"); } else { IncomingDBEvent ( pDoc, "r", (LPCTSTR)lpStruct->StrTimeStamp, (LPCTSTR)lpStruct->DBEventName, (LPCTSTR)lpStruct->DBEventOwner, (LPCTSTR)lpStruct->DBEventText); } if (pDoc->m_bPopupOnRaise) { CString strMsg; strMsg.GetBuffer (520); TCHAR tchszAll [80]; StringWithOwner ((LPUCHAR)lpStruct->DBEventName, (LPUCHAR)lpStruct->DBEventOwner, (LPUCHAR)tchszAll); //"%s: Database Event %s '%s' was raised on node %s." strMsg.Format (IDS_I_DB_EVENT_RAISED, (LPCTSTR)lpStruct->StrTimeStamp, (LPCTSTR)tchszAll, (LPCTSTR)lpStruct->DBEventText, (LPCTSTR)GetVirtNodeName (pDoc->m_hNode)); BfxMessageBox (strMsg); } return RES_SUCCESS; }
LONG CuDlgIpmDetailLocation::OnUpdateData (WPARAM wParam, LPARAM lParam) { int ires = RES_ERR, nNodeHandle = (int)wParam; LPIPMUPDATEPARAMS pUps = (LPIPMUPDATEPARAMS)lParam; ASSERT (pUps); switch (pUps->nIpmHint) { case 0: case FILTER_IPM_EXPRESS_REFRESH: break; default: return 0L; } try { ResetDisplay(); if (pUps->nIpmHint != FILTER_IPM_EXPRESS_REFRESH) { memset (&m_locStruct, 0, sizeof (m_locStruct)); m_locStruct = *(LPLOCATIONDATAMIN)pUps->pStruct; } CuStatisticPieDoc* pDoc = (CuStatisticPieDoc*)m_pDlgFrame->GetDoc(); CuPieInfoData* pPieInfo = pDoc->GetPieInfo(); if (Pie_Create(pPieInfo, nNodeHandle, (LPLOCATIONDATAMIN)&m_locStruct, TRUE)) { m_pDlgFrame->DrawLegend (&m_cListLegend, TRUE); } else { //CString strMsg = _T("Location Space Statistic error"); BfxMessageBox (VDBA_MfcResourceString(IDS_E_LOCATION_SPACE), MB_ICONEXCLAMATION|MB_OK); pPieInfo->Cleanup(); m_cListLegend.ResetContent(); } pDoc->UpdateAllViews (NULL); } catch (CMemoryException* e) { VDBA_OutOfMemoryMessage(); e->Delete(); } return 0L; }
void CuDlgDBEventPane01::OnCheckChange() { CDbeventFrame* pFrame; CView* pView; CDbeventDoc* pDoc; int nCheck, index = LB_ERR; CString strItem; CString strTime; LPTSTR lpszOwner; CTime time = CTime::GetCurrentTime(); strTime = time.Format ("%c"); index = m_cListDBEvent.GetCaretIndex(); if (index == LB_ERR) return; pView = (CView*)GetParent(); ASSERT (pView); pDoc = (CDbeventDoc*)pView->GetDocument(); ASSERT (pDoc); CWnd* pSplitter = pView->GetParent(); ASSERT (pSplitter); pFrame = (CDbeventFrame*)pSplitter->GetParent(); ASSERT (pFrame); if (!pDoc->m_bDBInit) { BfxMessageBox (VDBA_MfcResourceString(IDS_E_DB_EVENT_REGISTER));//"DBEvent Initialization Failure: Unable to register." nCheck = m_cListDBEvent.GetCheck (index); if (nCheck == 1) m_cListDBEvent.SetCheck (index, 0); // Stay unckecked return; } CuDlgDBEventPane02* pRaisePanel = pFrame->GetPaneRaisedDBEvent(); ASSERT (pRaisePanel); m_cListDBEvent.GetText (index, strItem); lpszOwner = (LPTSTR)m_cListDBEvent.GetItemData (index); nCheck = m_cListDBEvent.GetCheck (index); if (nCheck == 1) { if (DBETraceRegister (pDoc->m_nHandle, (LPUCHAR)(LPCTSTR)strItem, (LPUCHAR)lpszOwner) != RES_SUCCESS) { BfxMessageBox (VDBA_MfcResourceString(IDS_E_REGISTERING_DB_EVENT));//"Error while Registering DB Event" m_cListDBEvent.SetCheck (index, 0); // Stay unckecked return; } CString st1; st1.Format (IDS_DBEVENT_CHECK, (LPCTSTR)strItem);//"<Check %s>" pRaisePanel->IncomingDBEvent (pDoc, "?", strTime, st1, "", ""); } else if (nCheck == 0) { CString st1; int ans = DBETraceUnRegister (pDoc->m_nHandle, (LPUCHAR)(LPCTSTR)strItem, (LPUCHAR)lpszOwner); if (ans != RES_SUCCESS && ans != RES_MOREDBEVENT) { BfxMessageBox (VDBA_MfcResourceString(IDS_E_UNREGISTERING_DB_EVENT));//"Error while unregistering DB Event" m_cListDBEvent.SetCheck (index, 1); // Stay ckecked st1.Format (IDS_E_UNCHECK, (LPCTSTR)strItem);//"<ERROR in Uncheck %s>" pRaisePanel->IncomingDBEvent (pDoc, "?", strTime, st1, "", ""); return; } st1.Format (IDS_I_UNCHECK, (LPCTSTR)strItem);//"<Uncheck %s>" pRaisePanel->IncomingDBEvent (pDoc, "?", strTime, st1, "", ""); } }
void CuDlgDBEventPane02::IncomingDBEvent ( CDbeventDoc* pDoc, LPCTSTR strNum, LPCTSTR strTime, LPCTSTR strDbe, LPCTSTR strOwner, LPCTSTR strText, LPCTSTR strExtra) { CString strLine; int diff, nCount, index; nCount = m_cListRaisedDBEvent.GetItemCount (); if (nCount >= pDoc->m_nMaxLine) { // // Special State ??? if (m_bSpecial) return; diff = nCount - pDoc->m_nMaxLine; if (pDoc->m_bClearFirst) { for (int i=0; i<=diff; i++) m_cListRaisedDBEvent.DeleteItem (i); } else { int answ; //"Cannot continue. DB Event Trace is interrupted until\n" //"you clear the list, change the max lines, or\n" //"check the 'Clear First When Max Reached' check box."; CString strMsg = VDBA_MfcResourceString(IDS_E_DB_EVENT_TRACE); // // DB Event is raised ... CTime time = CTime::GetCurrentTime(); CString strTf = time.Format ("%c"); if (lstrlen (strNum) > 0 && lstrcmpi (strNum, "r") == 0) { //"DB Event was raised, but the list is full. Clear first entry in the list ?"; CString msg = VDBA_MfcResourceString(IDS_E_DB_EVENT_RAISED); answ = BfxMessageBox (msg, MB_YESNO|MB_ICONQUESTION); if (answ == IDNO) { m_bSpecial = TRUE; BfxMessageBox (strMsg, MB_OK); strLine = ""; index = m_cListRaisedDBEvent.InsertItem (nCount, (LPTSTR)(LPCTSTR)strLine, 0); m_cListRaisedDBEvent.SetItemText (index, 1, (LPTSTR)(LPCTSTR)strTf); m_cListRaisedDBEvent.SetItemText (index, 2, VDBA_MfcResourceString(IDS_INTERRUPTED));//"<Interrupted>" return; } } // // User registers or unregisters DB Event... else if (lstrlen (strNum) > 0 && lstrcmpi (strNum, "?") == 0) {//"The list is full. Clear first entry in the list ?" CString msg = VDBA_MfcResourceString(IDS_E_DB_EVENT_LIST_FULL); answ = BfxMessageBox (msg, MB_YESNO|MB_ICONQUESTION); if (answ == IDNO) { BfxMessageBox (strMsg, MB_OK); m_bSpecial = TRUE; strLine = ""; index = m_cListRaisedDBEvent.InsertItem (nCount, (LPTSTR)(LPCTSTR)strLine, 0); m_cListRaisedDBEvent.SetItemText (index, 1, (LPTSTR)(LPCTSTR)strTf); m_cListRaisedDBEvent.SetItemText (index, 2, VDBA_MfcResourceString(IDS_INTERRUPTED));//"<Interrupted>" return; } } // // Fill up the list while loading .... else {//"The list is full. Clear first entry in the list ?" CString msg = VDBA_MfcResourceString(IDS_E_DB_EVENT_LIST_FULL); answ = BfxMessageBox (msg, MB_YESNO|MB_ICONQUESTION); if (answ == IDNO) { m_bSpecial = TRUE; BfxMessageBox (strMsg, MB_OK); } if (nCount == pDoc->m_nMaxLine) { // We have add the line "<Interrupted>" // We cannot add the line "<Restarted>" so we just return; return; } } if (answ == IDYES) { for (int i=0; i<=diff; i++) m_cListRaisedDBEvent.DeleteItem (i); } } } else { m_bSpecial = FALSE; } if (lstrlen (strNum) > 0) { if (lstrcmpi (strNum, "?") == 0 || lstrcmpi (strNum, "r") == 0) { // // Define the line number; pDoc->m_nCounter2++; if (pDoc->m_nCounter2 < 0) { pDoc->m_nCounter1++; pDoc->m_nCounter2 = 1; } if (pDoc->m_nCounter1 == 1) { strLine.Format ("%4d", pDoc->m_nCounter2); } else { strLine.Format ("%d/%d", pDoc->m_nCounter1, pDoc->m_nCounter2); } index = m_cListRaisedDBEvent.InsertItem (nCount, (LPTSTR)(LPCTSTR)strLine, 0); } else index = m_cListRaisedDBEvent.InsertItem (nCount, (LPTSTR)(LPCTSTR)strNum, 0); } else index = m_cListRaisedDBEvent.InsertItem (nCount, (LPTSTR)"", 0); // // Add the Time m_cListRaisedDBEvent.SetItemText (index, 1, (LPTSTR)strTime); // // Add the DBEvent if (strExtra) { CString strStar = strExtra; strStar += strDbe; m_cListRaisedDBEvent.SetItemText (index, 2, (LPTSTR)(LPCTSTR)strStar); } else m_cListRaisedDBEvent.SetItemText (index, 2, (LPTSTR)strDbe); // // Add the Owner m_cListRaisedDBEvent.SetItemText (index, 3, (LPTSTR)strOwner); // // Add the Text m_cListRaisedDBEvent.SetItemText (index, 4, (LPTSTR)strText); }