You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
340 lines
14 KiB
C
340 lines
14 KiB
C
2 years ago
|
// XTPCalendarResourcesManager.h: interface for the
|
||
|
// CXTPCalendarResourcesManager class.
|
||
|
//
|
||
|
// This file is a part of the XTREME CALENDAR MFC class library.
|
||
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
||
|
//
|
||
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
//
|
||
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
// SINGLE COMPUTER.
|
||
|
//
|
||
|
// CONTACT INFORMATION:
|
||
|
// support@codejock.com
|
||
|
// http://www.codejock.com
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#if !defined(_XTPCALENDAR_RESOURCES_MANAGER_H_)
|
||
|
#define _XTPCALENDAR_RESOURCES_MANAGER_H_
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
|
||
|
class CXTPCalendarResourcesManager;
|
||
|
class CCalendarResourcesDlg;
|
||
|
class CXTPCalendarResource;
|
||
|
|
||
|
XTP_DEFINE_SMART_PTR_INTERNAL(CXTPCalendarResource)
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary: This class is a wrapper for CXTPCalendarResource class.
|
||
|
// It is needed for easier processing in scope of CXTPCalendarResourcesManager
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCalendarResourceDescription : public CXTPCmdTarget
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_DYNAMIC(CXTPCalendarResourceDescription)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
public:
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default object constructor.
|
||
|
//-------------------------------------------------------------------------
|
||
|
CXTPCalendarResourceDescription();
|
||
|
|
||
|
BOOL m_bEnabled; // This flag indicates is resource enabled.
|
||
|
BOOL m_bGenerateName; // This flag indicates that resource name should be generated from the schedule(s) name(s).
|
||
|
|
||
|
CXTPCalendarResourcePtr m_ptrResource; // A smart pointer to the resource object.
|
||
|
|
||
|
protected:
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// This class is used as helper to manage calendar resources (and schedules)
|
||
|
// data configurations.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPCalendarResourcesManager : public CXTPCmdTarget
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_DYNCREATE(CXTPCalendarResourcesManager)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
public:
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default object constructor.
|
||
|
//-------------------------------------------------------------------------
|
||
|
CXTPCalendarResourcesManager();
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default object destructor.
|
||
|
//-------------------------------------------------------------------------
|
||
|
virtual ~CXTPCalendarResourcesManager();
|
||
|
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This enum specify a data provider flags.
|
||
|
//-------------------------------------------------------------------------
|
||
|
enum XTPEnumCalendarDataProviderFlags
|
||
|
{
|
||
|
xtpCalendarDPFUnknown = 0, // Zero value flag
|
||
|
xtpCalendarDPF_CreateIfNotExists = 0x001, // Call Create method of data provider if Open method returns FALSE.
|
||
|
xtpCalendarDPF_SaveOnDestroy = 0x010, // Call Save method of data provider on Resources Manager destroy.
|
||
|
xtpCalendarDPF_CloseOnDestroy = 0x020, // Call Close method of data provider on Resources Manager destroy.
|
||
|
};
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Add a new data provider to data providers collection using
|
||
|
// specified Calendar connection string.
|
||
|
// Parameters:
|
||
|
// pcszConnectionString - A text Calendar connection string.
|
||
|
// eDPFlags - Additional flags to control data provider creation/Opening and destruction/Closing.
|
||
|
// Returns:
|
||
|
// TRUE if operation is successful, FALSE otherwise.
|
||
|
// See Also:
|
||
|
// SetDataProvider, XTPEnumCalendarDataProviderFlags,
|
||
|
// CXTPCalendarControl::CreateDataProvider, CXTPCalendarData overview.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL AddDataProvider(LPCTSTR pcszConnectionString, int eDPFlags = xtpCalendarDPF_CreateIfNotExists);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set a new data provider to data providers collection using
|
||
|
// specified Calendar connection string.
|
||
|
// Parameters:
|
||
|
// nIndex - Index of the data provider in the collection.
|
||
|
// pcszConnectionString - A text Calendar connection string.
|
||
|
// eDPFlags - Additional flags to control data provider creation/Opening and destruction/Closing.
|
||
|
// Returns:
|
||
|
// TRUE if operation is successful, FALSE otherwise.
|
||
|
// See Also:
|
||
|
// AddDataProvider, XTPEnumCalendarDataProviderFlags,
|
||
|
// CXTPCalendarControl::CreateDataProvider, CXTPCalendarData overview.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL SetDataProvider(int nIndex, LPCTSTR pcszConnectionString, int eDPFlags = xtpCalendarDPF_CreateIfNotExists);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieve data providers count in the collection.
|
||
|
// Returns:
|
||
|
// Data providers count.
|
||
|
// See Also:
|
||
|
// GetDataProvider, AddDataProvider, SetDataProvider, RemoveDataProvider.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetDataProvidersCount() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieve data provider at specified index.
|
||
|
// Parameters:
|
||
|
// nIndex - Zero based data provider index in the collection.
|
||
|
// Returns:
|
||
|
// Data provider at specified index.
|
||
|
// See Also:
|
||
|
// GetDataProvidersCount, AddDataProvider, SetDataProvider, RemoveDataProvider.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarData* GetDataProvider(int nIndex) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Remove data provider at specified index.
|
||
|
// Parameters:
|
||
|
// nIndex - Zero based data provider index in the collection.
|
||
|
// See Also:
|
||
|
// GetDataProvidersCount, GetDataProvider, AddDataProvider, SetDataProvider.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void RemoveDataProvider(int nIndex);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to find data provider by connection string.
|
||
|
// Parameters:
|
||
|
// pcszConnectionString - A text Calendar connection string.
|
||
|
// pnIndex - A pointer to receive data provider index in the collection.
|
||
|
// Returns:
|
||
|
// Pointer to a data provider with specified connection string if such
|
||
|
// presents in the collection, NULL otherwise.
|
||
|
// See Also: GetDataProvider_ConnStr
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarData* GetDataProvider(LPCTSTR pcszConnectionString, int* pnIndex = NULL) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieve a text Calendar connection string for data provider at
|
||
|
// specified index.
|
||
|
// Parameters:
|
||
|
// nIndex - Zero based data provider index in the collection.
|
||
|
// Returns:
|
||
|
// A text Calendar connection string.
|
||
|
// See Also: GetDataProvider
|
||
|
//-----------------------------------------------------------------------
|
||
|
CString GetDataProvider_ConnStr(int nIndex) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Add a new data resource to calendar resources collection.
|
||
|
// Parameters:
|
||
|
// pcszName - Resource name string.
|
||
|
// bEnabled - Is resource enabled.
|
||
|
// Returns:
|
||
|
// TRUE if operation is successful, FALSE otherwise.
|
||
|
// See Also:
|
||
|
// GetResourcesCount, GetResource, RemoveResource, MoveResource.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL AddResource(LPCTSTR pcszName, BOOL bEnabled);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieve calendar data resources count in the collection.
|
||
|
// Returns:
|
||
|
// Calendar data resources count in the collection.
|
||
|
// See Also:
|
||
|
// AddResource, GetResource, RemoveResource, MoveResource.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetResourcesCount() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieve resource at specified index.
|
||
|
// Parameters:
|
||
|
// nIndex - Zero based resource index in the collection.
|
||
|
// Returns:
|
||
|
// Calendar resource at specified index.
|
||
|
// See Also:
|
||
|
// AddResource, GetResourcesCount, RemoveResource, MoveResource.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPCalendarResourceDescription* GetResource(int nIndex) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Remove resource at specified index.
|
||
|
// Parameters:
|
||
|
// nIndex - Zero based resource index in the collection.
|
||
|
// See Also:
|
||
|
// AddResource, GetResourcesCount, GetResource, MoveResource.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void RemoveResource(int nIndex);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Move resource to a new position in the collection.
|
||
|
// Parameters:
|
||
|
// nIndex - Current zero based resource index in the collection.
|
||
|
// nNewIndex - A new index to move resource to.
|
||
|
// See Also:
|
||
|
// AddResource, GetResourcesCount, GetResource, RemoveResource.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void MoveResource(int nIndex, int nNewIndex);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method reads or writes data providers and resources configuration
|
||
|
// from or to an storage.
|
||
|
// Parameters:
|
||
|
// pPX - A CXTPPropExchange object to serialize to or from.
|
||
|
// See Also:
|
||
|
// SaveCfg, LoadCfg.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DoExchangeCfg(CXTPPropExchange* pPX);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method writes data providers and resources configuration to
|
||
|
// a specified file.
|
||
|
// Parameters:
|
||
|
// pcszFile - A file name to store configuration.
|
||
|
// Returns:
|
||
|
// TRUE if operation is successful, FALSE otherwise.
|
||
|
// See Also: LoadCfg, DoExchangeCfg.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL SaveCfg(LPCTSTR pcszFile);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method loads data providers and resources configuration from
|
||
|
// a specified file.
|
||
|
// Parameters:
|
||
|
// pcszFile - A file name to load configuration.
|
||
|
// Returns:
|
||
|
// TRUE if operation is successful, FALSE otherwise.
|
||
|
// See Also: SaveCfg, DoExchangeCfg.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL LoadCfg(LPCTSTR pcszFile);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set the active configuration (enabled resources) to calendar control.
|
||
|
// Parameters:
|
||
|
// pCalendar - A pointer to calendar control.
|
||
|
// See Also:
|
||
|
// CXTPCalendarControl::SetResources
|
||
|
//-----------------------------------------------------------------------
|
||
|
void ApplyToCalendar(CXTPCalendarControl* pCalendar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Remove all resources and all data providers.
|
||
|
// Remarks:
|
||
|
// Data providers will be saved and closed if this was specified for them.
|
||
|
// See Also:
|
||
|
// XTPEnumCalendarDataProviderFlags
|
||
|
//-----------------------------------------------------------------------
|
||
|
void RemoveAll();
|
||
|
|
||
|
protected:
|
||
|
CXTPCalendarPtrCollectionT<CXTPCalendarData> m_arDataProviders; // Data providers collection.
|
||
|
CXTPCalendarPtrCollectionT<CXTPCalendarResourceDescription> m_arResources; // Resources collection.
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method save data providers and resources configuration to
|
||
|
// a storage.
|
||
|
// Parameters:
|
||
|
// pPX - A CXTPPropExchange object to serialize to.
|
||
|
// See Also: _Load, LoadCfg, SaveCfg, DoExchangeCfg.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void _Save(CXTPPropExchange* pPX);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method loads data providers and resources configuration from
|
||
|
// a storage.
|
||
|
// Parameters:
|
||
|
// pPX - A CXTPPropExchange object to serialize from.
|
||
|
// See Also: _Save, LoadCfg, SaveCfg, DoExchangeCfg.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void _Load(CXTPPropExchange* pPX);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to Save and Close data provider if these
|
||
|
// actions were specified in AddDataProvider or SetDataProvider
|
||
|
// methods.
|
||
|
// Parameters:
|
||
|
// pData - A pointer to data provider object.
|
||
|
// See Also:
|
||
|
// AddDataProvider, SetDataProvider, XTPEnumCalendarDataProviderFlags.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void _SaveCloseDPifNeed(CXTPCalendarData* pData);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // !defined(_XTPCALENDAR_RESOURCES_MANAGER_H_)
|