XTPCalendarResourcesManager.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:14k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarResourcesManager.h: interface for the
  2. // CXTPCalendarResourcesManager class.
  3. //
  4. // This file is a part of the XTREME CALENDAR MFC class library.
  5. // (c)1998-2008 Codejock Software, All Rights Reserved.
  6. //
  7. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  8. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  9. // CONSENT OF CODEJOCK SOFTWARE.
  10. //
  11. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  12. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  13. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  14. // SINGLE COMPUTER.
  15. //
  16. // CONTACT INFORMATION:
  17. // support@codejock.com
  18. // http://www.codejock.com
  19. //
  20. /////////////////////////////////////////////////////////////////////////////
  21. //{{AFX_CODEJOCK_PRIVATE
  22. #if !defined(_XTPCALENDAR_RESOURCES_MANAGER_H_)
  23. #define _XTPCALENDAR_RESOURCES_MANAGER_H_
  24. //}}AFX_CODEJOCK_PRIVATE
  25. #if _MSC_VER > 1000
  26. #pragma once
  27. #endif // _MSC_VER > 1000
  28. #include "XTPCalendarResource.h"
  29. //===========================================================================
  30. //class _XTP_EXT_CLASS
  31. class CXTPCalendarResourcesManager;
  32. class CCalendarResourcesDlg;
  33. //===========================================================================
  34. // Summary: This class is a wrapper for CXTPCalendarResource class.
  35. //          It is needed for easier processing in scope of CXTPCalendarResourcesManager
  36. //===========================================================================
  37. class _XTP_EXT_CLASS CXTPCalendarResourceDescription : public CXTPCmdTarget
  38. {
  39. //{{AFX_CODEJOCK_PRIVATE
  40. DECLARE_DYNAMIC(CXTPCalendarResourceDescription)
  41. //}}AFX_CODEJOCK_PRIVATE
  42. public:
  43. //-------------------------------------------------------------------------
  44. // Summary:
  45. //     Default object constructor.
  46. //-------------------------------------------------------------------------
  47. CXTPCalendarResourceDescription();
  48. BOOL    m_bEnabled;         // This flag indicates is resource enabled.
  49. BOOL    m_bGenerateName;    // This flag indicates that resource name should be generated from the schedule(s) name(s).
  50. CXTPCalendarResourcePtr m_ptrResource;  // A smart pointer to the resource object.
  51. protected:
  52. };
  53. //===========================================================================
  54. // Summary:
  55. //     This class is used as helper to manage calendar resources (and schedules)
  56. //     data configurations.
  57. //===========================================================================
  58. class _XTP_EXT_CLASS CXTPCalendarResourcesManager : public CXTPCmdTarget
  59. {
  60. //{{AFX_CODEJOCK_PRIVATE
  61. DECLARE_DYNCREATE(CXTPCalendarResourcesManager)
  62. //}}AFX_CODEJOCK_PRIVATE
  63. public:
  64. //-------------------------------------------------------------------------
  65. // Summary:
  66. //     Default object constructor.
  67. //-------------------------------------------------------------------------
  68. CXTPCalendarResourcesManager();
  69. //-------------------------------------------------------------------------
  70. // Summary:
  71. //     Default object destructor.
  72. //-------------------------------------------------------------------------
  73. virtual ~CXTPCalendarResourcesManager();
  74. //-------------------------------------------------------------------------
  75. // Summary:
  76. //     This enum specify a data provider flags.
  77. //-------------------------------------------------------------------------
  78. enum XTPEnumCalendarDataProviderFlags
  79. {
  80. xtpCalendarDPFUnknown               = 0,     // Zero value flag
  81. xtpCalendarDPF_CreateIfNotExists    = 0x001, // Call Create method of data provider if Open method returns FALSE.
  82. xtpCalendarDPF_SaveOnDestroy        = 0x010, // Call Save method of data provider on Resources Manager destroy.
  83. xtpCalendarDPF_CloseOnDestroy       = 0x020, // Call Close method of data provider on Resources Manager destroy.
  84. };
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     Add a new data provider to data providers collection using
  88. //     specified Calendar connection string.
  89. // Parameters:
  90. //     pcszConnectionString - A text Calendar connection string.
  91. //     eDPFlags             - Additional flags to control data provider creation/Opening and destruction/Closing.
  92. // Returns:
  93. //     TRUE if operation is successful, FALSE otherwise.
  94. // See Also:
  95. //     SetDataProvider, XTPEnumCalendarDataProviderFlags,
  96. //     CXTPCalendarControl::CreateDataProvider, CXTPCalendarData overview.
  97. //-----------------------------------------------------------------------
  98. BOOL AddDataProvider(LPCTSTR pcszConnectionString, int eDPFlags = xtpCalendarDPF_CreateIfNotExists);
  99. //-----------------------------------------------------------------------
  100. // Summary:
  101. //     Set a new data provider to data providers collection using
  102. //     specified Calendar connection string.
  103. // Parameters:
  104. //     nIndex               - Index of the data provider in the collection.
  105. //     pcszConnectionString - A text Calendar connection string.
  106. //     eDPFlags             - Additional flags to control data provider creation/Opening and destruction/Closing.
  107. // Returns:
  108. //     TRUE if operation is successful, FALSE otherwise.
  109. // See Also:
  110. //     AddDataProvider, XTPEnumCalendarDataProviderFlags,
  111. //     CXTPCalendarControl::CreateDataProvider, CXTPCalendarData overview.
  112. //-----------------------------------------------------------------------
  113. BOOL SetDataProvider(int nIndex, LPCTSTR pcszConnectionString, int eDPFlags = xtpCalendarDPF_CreateIfNotExists);
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     Retrieve data providers count in the collection.
  117. // Returns:
  118. //     Data providers count.
  119. // See Also:
  120. //     GetDataProvider, AddDataProvider, SetDataProvider, RemoveDataProvider.
  121. //-----------------------------------------------------------------------
  122. int GetDataProvidersCount() const;
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //     Retrieve data provider at specified index.
  126. // Parameters:
  127. //     nIndex - Zero based data provider index in the collection.
  128. // Returns:
  129. //     Data provider at specified index.
  130. // See Also:
  131. //     GetDataProvidersCount, AddDataProvider, SetDataProvider, RemoveDataProvider.
  132. //-----------------------------------------------------------------------
  133. CXTPCalendarData* GetDataProvider(int nIndex);
  134. //-----------------------------------------------------------------------
  135. // Summary:
  136. //     Remove data provider at specified index.
  137. // Parameters:
  138. //     nIndex - Zero based data provider index in the collection.
  139. // See Also:
  140. //     GetDataProvidersCount, GetDataProvider, AddDataProvider, SetDataProvider.
  141. //-----------------------------------------------------------------------
  142. void RemoveDataProvider(int nIndex);
  143. //-----------------------------------------------------------------------
  144. // Summary:
  145. //     Call this method to find data provider by connection string.
  146. // Parameters:
  147. //     pcszConnectionString - A text Calendar connection string.
  148. //     pnIndex              - A pointer to receive data provider index in the collection.
  149. // Returns:
  150. //     Pointer to a data provider with specified connection string if such
  151. //     presents in the collection, NULL otherwise.
  152. // See Also: GetDataProvider_ConnStr
  153. //-----------------------------------------------------------------------
  154. CXTPCalendarData* GetDataProvider(LPCTSTR pcszConnectionString, int* pnIndex = NULL);
  155. //-----------------------------------------------------------------------
  156. // Summary:
  157. //     Retrieve a text Calendar connection string for data provider at
  158. //     specified index.
  159. // Parameters:
  160. //     nIndex - Zero based data provider index in the collection.
  161. // Returns:
  162. //     A text Calendar connection string.
  163. // See Also: GetDataProvider
  164. //-----------------------------------------------------------------------
  165. CString GetDataProvider_ConnStr(int nIndex);
  166. //-----------------------------------------------------------------------
  167. // Summary:
  168. //     Add a new data resource to calendar resources collection.
  169. // Parameters:
  170. //     pcszName - Resource name string.
  171. //     bEnabled - Is resource enabled.
  172. // Returns:
  173. //     TRUE if operation is successful, FALSE otherwise.
  174. // See Also:
  175. //     GetResourcesCount, GetResource, RemoveResource, MoveResource.
  176. //-----------------------------------------------------------------------
  177. BOOL AddResource(LPCTSTR pcszName, BOOL bEnabled);
  178. //-----------------------------------------------------------------------
  179. // Summary:
  180. //     Retrieve calendar data resources count in the collection.
  181. // Returns:
  182. //     Calendar data resources count in the collection.
  183. // See Also:
  184. //     AddResource, GetResource, RemoveResource, MoveResource.
  185. //-----------------------------------------------------------------------
  186. int GetResourcesCount() const;
  187. //-----------------------------------------------------------------------
  188. // Summary:
  189. //     Retrieve resource at specified index.
  190. // Parameters:
  191. //     nIndex - Zero based resource index in the collection.
  192. // Returns:
  193. //     Calendar resource at specified index.
  194. // See Also:
  195. //     AddResource, GetResourcesCount, RemoveResource, MoveResource.
  196. //-----------------------------------------------------------------------
  197. CXTPCalendarResourceDescription* GetResource(int nIndex);
  198. //-----------------------------------------------------------------------
  199. // Summary:
  200. //     Remove resource at specified index.
  201. // Parameters:
  202. //     nIndex - Zero based resource index in the collection.
  203. // See Also:
  204. //     AddResource, GetResourcesCount, GetResource, MoveResource.
  205. //-----------------------------------------------------------------------
  206. void RemoveResource(int nIndex);
  207. //-----------------------------------------------------------------------
  208. // Summary:
  209. //     Move resource to a new position in the collection.
  210. // Parameters:
  211. //     nIndex    - Current zero based resource index in the collection.
  212. //     nNewIndex - A new index to move resource to.
  213. // See Also:
  214. //     AddResource, GetResourcesCount, GetResource, RemoveResource.
  215. //-----------------------------------------------------------------------
  216. void MoveResource(int nIndex, int nNewIndex);
  217. //-----------------------------------------------------------------------
  218. // Summary:
  219. //     This method reads or writes data providers and resources configuration
  220. //     from or to an storage.
  221. // Parameters:
  222. //     pPX - A CXTPPropExchange object to serialize to or from.
  223. // See Also:
  224. //     SaveCfg, LoadCfg.
  225. //-----------------------------------------------------------------------
  226. void DoExchangeCfg(CXTPPropExchange* pPX);
  227. //-----------------------------------------------------------------------
  228. // Summary:
  229. //     This method writes data providers and resources configuration to
  230. //     a specified file.
  231. // Parameters:
  232. //     pcszFile - A file name to store configuration.
  233. // Returns:
  234. //     TRUE if operation is successful, FALSE otherwise.
  235. // See Also: LoadCfg, DoExchangeCfg.
  236. //-----------------------------------------------------------------------
  237. BOOL SaveCfg(LPCTSTR pcszFile);
  238. //-----------------------------------------------------------------------
  239. // Summary:
  240. //     This method loads data providers and resources configuration from
  241. //     a specified file.
  242. // Parameters:
  243. //     pcszFile - A file name to load configuration.
  244. // Returns:
  245. //     TRUE if operation is successful, FALSE otherwise.
  246. // See Also: SaveCfg, DoExchangeCfg.
  247. //-----------------------------------------------------------------------
  248. BOOL LoadCfg(LPCTSTR pcszFile);
  249. //-----------------------------------------------------------------------
  250. // Summary:
  251. //     Set the active configuration (enabled resources) to calendar control.
  252. // Parameters:
  253. //     pCalendar - A pointer to calendar control.
  254. // See Also:
  255. //     CXTPCalendarControl::SetResources
  256. //-----------------------------------------------------------------------
  257. void ApplyToCalendar(CXTPCalendarControl* pCalendar);
  258. //-----------------------------------------------------------------------
  259. // Summary:
  260. //     Remove all resources and all data providers.
  261. // Remarks:
  262. //     Data providers will be saved and closed if this was specified for them.
  263. // See Also:
  264. //     XTPEnumCalendarDataProviderFlags
  265. //-----------------------------------------------------------------------
  266. void RemoveAll();
  267. protected:
  268. CXTPCalendarPtrCollectionT<CXTPCalendarData> m_arDataProviders;             // Data providers collection.
  269. CXTPCalendarPtrCollectionT<CXTPCalendarResourceDescription> m_arResources;  // Resources collection.
  270. //-----------------------------------------------------------------------
  271. // Summary:
  272. //     This method save data providers and resources configuration to
  273. //     a storage.
  274. // Parameters:
  275. //     pPX - A CXTPPropExchange object to serialize to.
  276. // See Also: _Load, LoadCfg, SaveCfg, DoExchangeCfg.
  277. //-----------------------------------------------------------------------
  278. void _Save(CXTPPropExchange* pPX);
  279. //-----------------------------------------------------------------------
  280. // Summary:
  281. //     This method loads data providers and resources configuration from
  282. //     a storage.
  283. // Parameters:
  284. //     pPX - A CXTPPropExchange object to serialize from.
  285. // See Also: _Save, LoadCfg, SaveCfg, DoExchangeCfg.
  286. //-----------------------------------------------------------------------
  287. void _Load(CXTPPropExchange* pPX);
  288. //-----------------------------------------------------------------------
  289. // Summary:
  290. //     This method is called to Save and Close data provider if these
  291. //     actions were specified in AddDataProvider or SetDataProvider
  292. //     methods.
  293. // Parameters:
  294. //     pData - A pointer to data provider object.
  295. // See Also:
  296. //     AddDataProvider, SetDataProvider, XTPEnumCalendarDataProviderFlags.
  297. //-----------------------------------------------------------------------
  298. void _SaveCloseDPifNeed(CXTPCalendarData* pData);
  299. protected:
  300. };
  301. #endif // !defined(_XTPCALENDAR_RESOURCES_MANAGER_H_)