GME  13
GMEViolationDialog.h
Go to the documentation of this file.
00001 //###############################################################################################################################################
00002 //
00003 //      Object Constraint Language Generic Manager
00004 //      GMEViolationDialog.h
00005 //
00006 //###############################################################################################################################################
00007 
00008 #if !defined(AFX_GMEVIOLATIONDIALOG_H__6D74A53B_13E1_40AD_AD4A_C4D71881F0F7__INCLUDED_)
00009 #define AFX_GMEVIOLATIONDIALOG_H__6D74A53B_13E1_40AD_AD4A_C4D71881F0F7__INCLUDED_
00010 
00011 #if _MSC_VER > 1000
00012 #pragma once
00013 #endif // _MSC_VER > 1000
00014 
00015 #include "GMEConstraintEx.h"
00016 #include "ConstraintManager.h"
00017 #include "Gme.h"
00018 
00019 namespace OclGmeCM {
00020         struct EvaluationRecord;
00021         #include <string>
00022 
00023 
00024 //##############################################################################################################################################
00025 //
00026 //      C L A S S : CViolationDialog <<< + CDialog
00027 //
00028 //==============================================================================================================================================
00029 //
00030 //      D E S C R I P T I O N :
00031 //
00032 //##############################################################################################################################################
00033 
00034 class CViolationDialog : public CDialog
00035 {
00036 
00037 // D I A L O G   E X T E N S I O N   B Y   I M P L E M E N T O R   B E G I N
00038 // ============================================================
00039 
00040 
00041 private :
00042         CComPtr<IMgaProject>                    m_spProject;
00043         CComPtr<IGMEOLEApp>                             m_oleapp;
00044 
00045         CImageList                                              m_lstErrorImages;
00046         CImageList                                              m_lstConstraintImages;
00047         CImageList                                              m_lstLineImages;
00048         std::vector<EvaluationRecord>   m_vecRecords;
00049         bool                                                    m_bAbort;
00050         bool                                                    m_bOK;
00051         bool                                                    m_bExpanded;
00052         int                                                             m_iSelected;
00053         int                                                     m_iSelectedConstraint;
00054         int                                                             m_iSelectedError;
00055         int                                                             m_iSelectedVariable;
00056         CComPtr<IUnknown> m_gotopunk;
00057 
00058 public :
00059         void GetGotoPunk(IUnknown ** ppunk) 
00060         {
00061                 *ppunk=NULL; 
00062                 if (m_gotopunk) 
00063                         m_gotopunk.CopyTo(ppunk); 
00064         }
00065         void AddItem( const EvaluationRecord& item );
00066         void EnableAbort();
00067         void EnableOK();
00068         bool IsExpanded() const;
00069 
00070 private :
00071         void addFunctions();
00072         void SelectConstraint( bool bNext );
00073         void SelectError( bool bNext );
00074         void DisplayErrorItem();
00075         void GotoObject();
00076         void DisplayConstraintItem();
00077         void RefreshWidgets( bool bNewConstraint );
00078         void SortConstraints( int iColumn );
00079         static int CALLBACK CompareConstraint( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort );
00080 
00081 // D I A L O G   E X T E N S I O N   B Y   I M P L E M E N T O R   E N D
00082 // ============================================================
00083 
00084 
00085 // Construction
00086 public:
00087         CViolationDialog( bool bExpanded, CWnd* pParent, IMgaProject *project);   // standard constructor
00088 
00089 // Dialog Data
00090         //{{AFX_DATA(CViolationDialog)
00091         enum { IDD = IDD_VIOLATION_DIALOG };
00092         CStatic m_lblConstraint;
00093         CButton m_frmMessage;
00094         CButton m_btnPrevious;
00095         CButton m_btnNext;
00096         CButton m_btnExpand;
00097         CTabCtrl        m_tabPages;
00098         CStatic         m_lblGeneralMessage;
00099         CListCtrl       m_lstObjects;
00100         CButton m_btnAbort;
00101         CListCtrl       m_lstExpression;
00102         CListCtrl       m_lstErrors;
00103         CListCtrl       m_lstConstraints;
00104         CStatic         m_imgLarge;
00105         CButton m_btnClose;
00106         //}}AFX_DATA
00107 
00108 
00109 // Overrides
00110         // ClassWizard generated virtual function overrides
00111         //{{AFX_VIRTUAL(CViolationDialog)
00112         public:
00113         virtual BOOL PreTranslateMessage(MSG* pMsg);
00114         protected:
00115         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
00116         //}}AFX_VIRTUAL
00117 
00118 // Implementation
00119 protected:
00120 
00121         // Generated message map functions
00122         //{{AFX_MSG(CViolationDialog)
00123         virtual BOOL OnInitDialog();
00124         afx_msg void OnClickClose();
00125         afx_msg void OnKeyDownConstraints(NMHDR* pNMHDR, LRESULT* pResult);
00126         afx_msg void OnClickAbort();
00127         afx_msg void OnClickConstraints(NMHDR* pNMHDR, LRESULT* pResult);
00128         afx_msg void OnClickErrors(NMHDR* pNMHDR, LRESULT* pResult);
00129         afx_msg void OnClickVariable(NMHDR* pNMHDR, LRESULT* pResult);
00130         afx_msg void OnKeyDownErrors(NMHDR* pNMHDR, LRESULT* pResult);
00131         afx_msg void OnSelectionChangedTab(NMHDR* pNMHDR, LRESULT* pResult);
00132         afx_msg void OnClickExpand();
00133         afx_msg void OnClickNext();
00134         afx_msg void OnClickPrevious();
00135         afx_msg void OnClickConstraintsColumn(NMHDR* pNMHDR, LRESULT* pResult);
00136         //}}AFX_MSG
00137         DECLARE_MESSAGE_MAP()
00138 };
00139 
00140 //{{AFX_INSERT_LOCATION}}
00141 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
00142 
00143 }; // namespace OclGmeCM
00144 
00145 #endif // !defined(AFX_GMEVIOLATIONDIALOG_H__6D74A53B_13E1_40AD_AD4A_C4D71881F0F7__INCLUDED_)