|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000 - 2001.
//
// File: PolicyStoreDlg.h
//
// Contents: Dialog boxes for Creating/Opening Policy Store
//
// History: 07-26-2001 Hiteshr Created
//
//----------------------------------------------------------------------------
/******************************************************************************
Class: CSortListCtrl Purpose:Subclases ListCtrl class and handles initialization and sorting ******************************************************************************/ class CSortListCtrl : public CListCtrl { public: CSortListCtrl(UINT uiFlags, BOOL bActionItem, COL_FOR_LV *pColForLv, BOOL bCheckBox = FALSE) :m_iSortDirection(1), m_iLastColumnClick(0), m_uiFlags(uiFlags), m_bActionItem(bActionItem), m_pColForLv(pColForLv), m_bCheckBox(bCheckBox) { ASSERT(m_pColForLv); }
void Initialize(); void Sort();
protected: afx_msg void OnListCtrlColumnClicked(NMHDR* pNotifyStruct, LRESULT* pResult); private: int m_iSortDirection; int m_iLastColumnClick; UINT m_uiFlags; //Contains info on columns of listctrl
BOOL m_bActionItem; //Is Item data in listentries is ActionItem.
//if False its of type CBaseAz*
COL_FOR_LV *m_pColForLv; BOOL m_bCheckBox; //LVS_EX_CHECKBOXES style is used
WTL::CImageList m_imageList; DECLARE_MESSAGE_MAP() };
class CHelpEnabledDialog: public CDialog { public: CHelpEnabledDialog(UINT nIDTemplate) :CDialog(nIDTemplate), m_nDialogId(nIDTemplate) { }
INT_PTR DoModal();
protected: afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); afx_msg BOOL OnHelp(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() private: ULONG m_nDialogId; };
/******************************************************************************
Class: CNewBaseDlg Purpose: Base Dialog Class For creation of new objects ******************************************************************************/ class CNewBaseDlg : public CHelpEnabledDialog { public: CNewBaseDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode * pBaseContainerNode, IN ATTR_MAP* pAttrMap, IN ULONG IDD_DIALOG, IN OBJECT_TYPE_AZ eObjectType); ~CNewBaseDlg();
protected: virtual BOOL OnInitDialog(); afx_msg void OnEditChangeName(); virtual void OnOK();
//This Function should be implemented by derived classes which want to
//implement object type specific properties
virtual HRESULT SetObjectTypeSpecificProperties(IN CBaseAz* /*pBaseAz*/, OUT BOOL& /*bErrorDisplayed*/){return S_OK;} virtual VOID DisplayError(HRESULT hr); HRESULT CreateObjectNodeAndAddToUI(CBaseAz* pBaseAz); CString GetNameText();
void SetNameText(const CString& strName);
CRoleRootData* GetRootData() { return static_cast<CRoleRootData*>(m_pComponentData->GetRootData()); } CComponentDataObject* GetComponentData(){return m_pComponentData;} CBaseContainerNode* GetBaseContainerNode(){return m_pBaseContainerNode;} CContainerAz* GetContainerAzObject() { CBaseContainerNode* pBaseContainerNode = GetBaseContainerNode(); if(pBaseContainerNode) { return pBaseContainerNode->GetContainerAzObject(); } return NULL; }
DECLARE_MESSAGE_MAP()
private: CComponentDataObject* m_pComponentData; CBaseContainerNode * m_pBaseContainerNode; //Type of object created by this new dialog
OBJECT_TYPE_AZ m_eObjectType; ATTR_MAP* m_pAttrMap; };
/******************************************************************************
Class: CNewApplicationDlg Purpose: Dlg Class for creating new application ******************************************************************************/ class CNewApplicationDlg: public CNewBaseDlg { public: CNewApplicationDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode* pBaseContainerNode); ~CNewApplicationDlg(); private: DECLARE_MESSAGE_MAP() };
/******************************************************************************
Class: CNewScopeDlg Purpose: Dlg Class for creating new scope ******************************************************************************/ class CNewScopeDlg: public CNewBaseDlg { public: CNewScopeDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode* pApplicationContainer); ~CNewScopeDlg();
private: DECLARE_MESSAGE_MAP() };
/******************************************************************************
Class: CNewGroupDlg Purpose: Dlg Class for creating new group ******************************************************************************/ class CNewGroupDlg: public CNewBaseDlg {
public: CNewGroupDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode* pApplicationContainer); ~CNewGroupDlg(); private: virtual BOOL OnInitDialog();
//Helper Functions For Creation of New Object
virtual HRESULT SetObjectTypeSpecificProperties(CBaseAz* pBaseAz, BOOL& bSilent);
DECLARE_MESSAGE_MAP() };
/******************************************************************************
Class: CNewTaskDlg Purpose: Dlg Class for creating new Task/Role Definition ******************************************************************************/ class CNewTaskDlg: public CNewBaseDlg { public: CNewTaskDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode* pApplicationContainer, IN ULONG IDD_DIALOG, IN BOOL bRoleDefinition); ~CNewTaskDlg();
private: virtual BOOL OnInitDialog(); afx_msg void OnButtonAdd(); afx_msg void OnButtonRemove();
afx_msg void OnButtonEditScript(); afx_msg void OnListCtrlItemChanged(NMHDR* /*pNotifyStruct*/, LRESULT* pResult); afx_msg void OnListCtrlItemDeleted(NMHDR* /*pNotifyStruct*/, LRESULT* pResult);
virtual VOID DisplayError(HRESULT hr);
void SetRemoveButton();
//Helper Functions For Creation of New Object
virtual HRESULT SetObjectTypeSpecificProperties(CBaseAz* pBaseAz, BOOL& bSilent);
CButton* GetRemoveButton(){return (CButton*)GetDlgItem(IDC_REMOVE);}
DECLARE_MESSAGE_MAP()
CSortListCtrl m_listCtrl;
BOOL m_bRoleDefinition; CString m_strFilePath; CString m_strScript; CString m_strScriptLanguage; };
/******************************************************************************
Class: CNewOperationDlg Purpose: Dlg Class for creating new Operation ******************************************************************************/ class CNewOperationDlg: public CNewBaseDlg {
public: CNewOperationDlg(IN CComponentDataObject* pComponentData, IN CBaseContainerNode* pBaseContainerNode); ~CNewOperationDlg(); private: DECLARE_MESSAGE_MAP() };
class CNewAuthorizationStoreDlg: public CNewBaseDlg { public: CNewAuthorizationStoreDlg(CComponentDataObject* pComponentData); ~CNewAuthorizationStoreDlg();
private: virtual BOOL OnInitDialog(); virtual void OnOK(); afx_msg void OnButtonBrowse();
afx_msg void OnRadioChange();
ULONG GetStoreType(); DECLARE_MESSAGE_MAP()
//User can switch between AD and XML store type.
//These two variable stores the last setting of radio button
//and text box. These are used to toggle the textbox values as
//user toggle the radio buttons.
CString m_strLastStoreName; LONG m_lLastRadioSelection; BOOL m_bADAvailable; };
class COpenAuthorizationStoreDlg: public CNewBaseDlg { public: COpenAuthorizationStoreDlg(CComponentDataObject* pComponentData); ~COpenAuthorizationStoreDlg();
private: virtual BOOL OnInitDialog(); virtual void OnOK(); afx_msg void OnButtonBrowse(); afx_msg void OnRadioChange();
ULONG GetStoreType();
DECLARE_MESSAGE_MAP()
//User can switch between AD and XML store type.
//These two variable stores the last setting of radio button
//and text box. These are used to toggle the textbox values as
//user toggle the radio buttons.
CString m_strLastStoreName; LONG m_lLastRadioSelection; BOOL m_bADAvailable;
};
/******************************************************************************
Class: CScriptDialog Purpose: Dialog for Reading the script ******************************************************************************/ class CScriptDialog : public CHelpEnabledDialog { public: CScriptDialog(BOOL bReadOnly, CAdminManagerNode& adminManagerNode, CString& strFileName, CString& strScriptLanguage, CString& strScript); ~CScriptDialog();
virtual BOOL OnInitDialog(); void OnOK();
BOOL IsDirty(){ return m_bDirty;}
private: afx_msg void OnBrowse();
afx_msg void OnReload();
afx_msg void OnClear();
afx_msg void OnRadioChange();
afx_msg void OnEditChangePath();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
BOOL ReloadScript(const CString& strFileName);
void MatchRadioWithExtension(const CString& strFileName);
DECLARE_MESSAGE_MAP()
//DATA MEMBERS
BOOL m_bDirty;
//These is refrence to strings passed by client. We change them only
//if ok is pressed
CString& m_strRetFileName; CString& m_strRetScriptLanguage; CString& m_strRetScript;
//We work on these strings during the lifetime of dialog
CString m_strFileName; CString m_strScriptLanguage; CString m_strScript; BOOL m_bReadOnly; BOOL m_bInit; CAdminManagerNode& m_adminManagerNode; };
//+----------------------------------------------------------------------------
// Function:GetAuthorizationScriptData
// Synopsis:Gets the authorization script data for a Task
//-----------------------------------------------------------------------------
HRESULT GetAuthorizationScriptData(IN CTaskAz& refTaskAz, OUT CString& strFilePath, OUT CString& strScriptLanguage, OUT CString& strScript);
//+----------------------------------------------------------------------------
// Function:SaveAuthorizationScriptData
// Synopsis:Saves the authorization script information for a task
//-----------------------------------------------------------------------------
HRESULT SaveAuthorizationScriptData(IN HWND hWnd, IN CTaskAz& refTaskAz, IN const CString& strFilePath, IN const CString& strScriptLanguage, IN const CString& strScript, IN BOOL& bErrorDisplayed);
//+----------------------------------------------------------------------------
// Function:GetScriptData
// Synopsis:Displays the script Dialog. Dialog is initialized with info
// passed to the function and any changes made are returned.
//-----------------------------------------------------------------------------
BOOL GetScriptData(IN BOOL bReadOnly, IN CAdminManagerNode& adminManagerNode, IN OUT CString& strFilePath, IN OUT CString& strScriptLanguage, IN OUT CString& strScript);
/******************************************************************************
Class: COptionDlg Purpose: Dialog for Selecting authorization manager options ******************************************************************************/ class COptionDlg : public CHelpEnabledDialog { public: COptionDlg(IN BOOL & refDeveloperMode) :CHelpEnabledDialog(IDD_OPTIONS), m_refDeveloperMode(refDeveloperMode) { }
void OnOK();
BOOL OnInitDialog(); private: BOOL& m_refDeveloperMode; DECLARE_MESSAGE_MAP() };
|