Example #1
0
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);
                }
            }
        }
    }
}
Example #2
0
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;
}
Example #3
0
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);
        }
    }
}
Example #4
0
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;
}
Example #5
0
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;
}
Example #6
0
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, "", "");
    }
}
Example #7
0
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);
}