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.
689 lines
27 KiB
C++
689 lines
27 KiB
C++
// XTPCalendarResource.h: interface for the CXTPCalendarResource 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(_XTPCALENDARRESOURCE_H_)
|
|
#define _XTPCALENDARRESOURCE_H_
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class CXTPCalendarControl;
|
|
class CXTPCalendarData;
|
|
class CXTPNotifyConnection;
|
|
class CXTPCalendarCustomProperties;
|
|
class CXTPPropExchange;
|
|
class CXTPCalendarEvents;
|
|
class CXTPCalendarEvent;
|
|
|
|
XTP_DEFINE_SMART_PTR_INTERNAL(CXTPCalendarEvents)
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// Calendar Schedule is a characteristic of the Calendar Event, which
|
|
// describes a belonging of the Event to a particular Schedule (which
|
|
// could be people schedule, common resource schedule, etc).
|
|
//
|
|
// This class implements base properties of the Schedule and operations
|
|
// on it.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarSchedule : public CXTPCmdTarget
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarSchedule)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
// Construct CXTPCalendarSchedule object.
|
|
// Parameters:
|
|
// uScheduleID - A numeric positive ID of the schedule.
|
|
// pcszScheduleName - A string name of the schedule (could be a name
|
|
// of the person, etc)
|
|
// See Also: ~CXTPCalendarSchedule
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarSchedule(UINT uScheduleID = 0, LPCTSTR pcszScheduleName = _T(""));
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles member items deallocation.
|
|
// See Also: CXTPCalendarSchedule
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarSchedule();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain a unique schedule ID.
|
|
// Returns:
|
|
// A UINT unique id.
|
|
// See Also: CXTPCalendarSchedule, SetID
|
|
//-----------------------------------------------------------------------
|
|
UINT GetID() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain the schedule name.
|
|
// Returns:
|
|
// A CString object that contains the schedule name text.
|
|
// See Also: SetName
|
|
//-----------------------------------------------------------------------
|
|
CString GetName() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set a new ID value for a schedule.
|
|
// Parameters:
|
|
// uScheduleID - A DWORD that contains the id value.
|
|
// See Also: GetID
|
|
//-----------------------------------------------------------------------
|
|
void SetID(UINT uScheduleID);
|
|
|
|
#ifdef _BUSINESS_MODEL_
|
|
UINT GetSecType() const;
|
|
void SetSecType(UINT uScheduleSec);
|
|
#endif
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set the schedule name text.
|
|
// Parameters:
|
|
// pcszScheduleName - An LPCTSTR object that contains the string of text.
|
|
// See Also: GetName
|
|
//-----------------------------------------------------------------------
|
|
void SetName(LPCTSTR pcszScheduleName);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Get custom (named, user defined) properties collection.
|
|
// Returns:
|
|
// A pointer to CXTPCalendarCustomProperties object.
|
|
// See Also:
|
|
// CXTPCalendarCustomProperties.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarCustomProperties* GetCustomProperties() const;
|
|
|
|
protected:
|
|
CString m_strScheduleName; // Stores Schedule Name
|
|
UINT m_uScheduleID; // Stores numeric positive ID of the schedule
|
|
|
|
#ifdef _BUSINESS_MODEL_
|
|
UINT m_uScheduleSec; // Stores Schedule Security Type
|
|
#endif
|
|
|
|
CXTPCalendarCustomProperties* m_pCustomProperties; // Stores custom properties collection for this Schedule
|
|
|
|
protected:
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents a simple array collection of CXTPCalendarSchedule
|
|
// objects.
|
|
// Remarks:
|
|
// Array indexes always start at position 0.
|
|
//
|
|
// As with a C array, the access time for indexed element of this
|
|
// array is constant and is independent of the array size.
|
|
//
|
|
// See Also: CArray overview, CXTPCalendarSchedule overview.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarSchedules : public CXTPCalendarPtrCollectionT<CXTPCalendarSchedule>
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarSchedules)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default collection constructor.
|
|
// See Also: ~CXTPCalendarSchedules()
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarSchedules();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default collection destructor.
|
|
// Remarks:
|
|
// Handles member item deallocation. Decreases reference of all
|
|
// stored CXTPCalendarSchedule objects.
|
|
// See Also: RemoveAll()
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarSchedules();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Creates and adds a new schedule object by its name.
|
|
// Parameters:
|
|
// pcszScheduleName - String with the schedule name.
|
|
// Returns: TRUE if added successfully; FALSE otherwise.
|
|
// See Also: RemoveSchedule
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL AddNewSchedule(LPCTSTR pcszScheduleName);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Removes a schedule object from the array by its ID.
|
|
// Parameters:
|
|
// uScheduleID - An ID of the schedule.
|
|
// Returns: TRUE if object was found and removed from the array;
|
|
// FALSE otherwise.
|
|
// See Also: AddNewSchedule
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL RemoveSchedule(UINT uScheduleID);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Returns a name of the schedule by its numeric ID.
|
|
// Parameters:
|
|
// uScheduleID - An ID of the schedule.
|
|
// Returns:
|
|
// A LPCTSTR value specifying the schedule name.
|
|
// See Also: SetScheduleName
|
|
//-----------------------------------------------------------------------
|
|
virtual LPCTSTR GetScheduleName(UINT uScheduleID) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds schedule index in the internal array by its ID.
|
|
// Parameters:
|
|
// uScheduleID - Label ID
|
|
// Returns:
|
|
// Schedule index in the internal label array.
|
|
//-----------------------------------------------------------------------
|
|
virtual int FindIndex(UINT uScheduleID) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Sets a new schedule name by its numeric ID.
|
|
// Parameters:
|
|
// uScheduleID - An ID of the schedule
|
|
// pcszNewName - String of text for the new name of the schedule
|
|
// See Also: GetScheduleName
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetScheduleName(UINT uScheduleID, LPCTSTR pcszNewName);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Store/Load a schedule using the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Source or destination CXTPPropExchange data object reference.
|
|
// Remarks:
|
|
// This member function is used to store or load schedule data to or
|
|
// from a storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
protected:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds next available ID which does not exist in the array.
|
|
// Returns:
|
|
// Available ID which does not exist in the array.
|
|
// Remarks:
|
|
// Function found max ID and returns it incremented by one.
|
|
//-----------------------------------------------------------------------
|
|
virtual UINT _GetNextID() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Load a schedule from the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Source CXTPPropExchange data object reference.
|
|
// Remarks:
|
|
// This member function is used to load schedule data
|
|
// from a specified storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void _Load(CXTPPropExchange* pPX);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Store a schedule to the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Destination CXTPPropExchange data object reference.
|
|
// Remarks:
|
|
// This member function is used to store schedule data to
|
|
// a storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void _Save(CXTPPropExchange* pPX);
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// Class CXTPCalendarResource represents a calendar for some subject like
|
|
// a person, a shared resource, or even a group of persons or resources.
|
|
//
|
|
// Remarks:
|
|
//
|
|
// Each resource is to be drawn in the separate column on the calendar view.
|
|
// Each resource should have its own DataProvider. For example, events
|
|
// for peoples could be stored inside the Memory data provider (somebody's
|
|
// own or temporary events), and for other resources - inside a Database
|
|
// data provider (those events are not changed by the user). So, there is
|
|
// a possibility to use any combination of data providers in the same control.
|
|
//
|
|
// See Also: CXTPCalendarControl, CXTPCalendarData
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarResource : public CXTPCmdTarget
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNCREATE(CXTPCalendarResource)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
// Construct CXTPCalendarResource object.
|
|
// Parameters:
|
|
// pCalendarCtrl - Pointer to the parent Calendar control.
|
|
// See Also: ~CXTPCalendarResource
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarResource(CXTPCalendarControl* pCalendarCtrl = NULL);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles member items deallocation.
|
|
// See Also: CXTPCalendarResource
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarResource();
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// data provider related
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function obtains a pointer to the current data
|
|
// provider instance.
|
|
// Remarks:
|
|
// Call this member function to obtain the data provider object
|
|
// currently used by this calendar control.
|
|
// Returns:
|
|
// A CXTPCalendarData pointer to the associated data provider object.
|
|
// See Also: CXTPCalendarData overview, SetDataProvider
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarData* GetDataProvider() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function sets the custom data provider for the control.
|
|
// Parameters:
|
|
// pDataProvider - Pointer to the custom data provider object.
|
|
// bCloseDataProviderWhenDestroy - If this parameter TRUE the Close method
|
|
// of data provided will be called on this
|
|
// resource destruction.
|
|
// Remarks:
|
|
// Call this member function to set the custom data provider
|
|
// that is currently used by this calendar control. Note that
|
|
// custom data provider must be a descendant of CXTPCalendarData.
|
|
// See Also: CXTPCalendarData overview, GetDataProvider
|
|
//-----------------------------------------------------------------------
|
|
void SetDataProvider(CXTPCalendarData* pDataProvider, BOOL bCloseDataProviderWhenDestroy = FALSE);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to get the collection of the day's
|
|
// events for this resource. All events from the applied schedules
|
|
// will be included.
|
|
// Parameters:
|
|
// dtDay - A COleDateTime object that contains the day's date.
|
|
// Returns:
|
|
// A pointer to a CXTPCalendarEvents object that contains the
|
|
// collection of the day's events.
|
|
// See Also: CXTPCalendarEvents
|
|
//-----------------------------------------------------------------------
|
|
virtual CXTPCalendarEventsPtr RetrieveDayEvents(COleDateTime dtDay);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to get the collection of all schedules
|
|
// ID's for this resource.
|
|
// Returns:
|
|
// A pointer to CUIntArray collection which contains numeric ID's
|
|
// for all schedules existing in this resource.
|
|
// See Also:
|
|
// CUIntArray overview, IsSchedulesSetEmpty, ExistsScheduleID
|
|
//-----------------------------------------------------------------------
|
|
virtual CUIntArray* GetSchedules();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function determines whether a schedule with the
|
|
// specified ID exists or not.
|
|
// Parameters:
|
|
// uScheduleID - A numeric ID of the schedule to check.
|
|
// bReturnTrueIfSchedulesSetEmpty - TRUE by default.
|
|
// If there are no any schedules specified inside this resource,
|
|
// the Calendar will show (and process in other way) all events.
|
|
// Returns: TRUE if a schedule ID exists in the Schedules collection for
|
|
// this resource; FALSE otherwise.
|
|
// See Also: GetSchedules, IsSchedulesSetEmpty
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL ExistsScheduleID(UINT uScheduleID, BOOL bReturnTrueIfSchedulesSetEmpty = TRUE);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function used to remove events which are not from this
|
|
// resource.
|
|
// Parameters:
|
|
// pEvents - An events collection to be filtered.
|
|
// See Also: ExistsScheduleID
|
|
//-----------------------------------------------------------------------
|
|
void FilterEventsByScheduleID(CXTPCalendarEvents* pEvents);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to check whether schedules set in this
|
|
// resource is empty or not.
|
|
// Returns:
|
|
// TRUE when schedules set is empty for this resource;
|
|
// FALSE if at least 1 schedule exists.
|
|
// See Also: GetSchedules, ExistsScheduleID
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL IsSchedulesSetEmpty() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function returns a string name of this resource object
|
|
// Returns:
|
|
// A string with the name of the resource object.
|
|
// See Also: SetName
|
|
//-----------------------------------------------------------------------
|
|
virtual CString GetName() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function applies a new name to the resource object.
|
|
// Parameters:
|
|
// pcszResourceName - A string with the new name for the resource
|
|
// See Also: GetName
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetName(LPCTSTR pcszResourceName);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function returns a color of this resource object
|
|
// Returns: A COLORREF with the color of the resource object.
|
|
// See Also: SetColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetColor() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function applies a new color to the resource object.
|
|
// Parameters:
|
|
// color - A COLORREF with the new color for the resource
|
|
// See Also: GetColor
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetColor(COLORREF color);
|
|
|
|
protected:
|
|
CString m_strResourceName; // Text name of the resource
|
|
CXTPCalendarControl* m_pCalendarCtrl; // Parent Calendar control
|
|
CXTPCalendarData* m_pDataProvider; // Associated data provider
|
|
CUIntArray m_arScheduleIDs; // which schedules are used for this resource.
|
|
COLORREF m_Color; //color of resource
|
|
|
|
BOOL m_bCloseDataProviderWhenDestroy; // If TRUE - call Close() method if the data provider when control is destroyed.
|
|
|
|
protected:
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents a simple array collection of CXTPCalendarResource
|
|
// objects.
|
|
// See Also: CXTPCalendarPtrCollectionT
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarResources : public CXTPCalendarPtrCollectionT<CXTPCalendarResource>
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNCREATE(CXTPCalendarResources)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default collection constructor.
|
|
// See Also: ~CXTPCalendarResources()
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarResources();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default collection destructor.
|
|
// Remarks:
|
|
// Handles member item deallocation. Decreases reference of all
|
|
// stored CXTPCalendarResource objects.
|
|
// See Also: RemoveAll()
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarResources();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function used to remove events which are not from this
|
|
// resource.
|
|
// Parameters:
|
|
// pEvent - pointer to CXTPCalendarEvent
|
|
// Returns:
|
|
// A pointer to the calendar resource.
|
|
// See Also: ExistsScheduleID
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarResource* Find(CXTPCalendarEvent* pEvent) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function used to remove events which are not from this
|
|
// resource.
|
|
// Parameters:
|
|
// dtDay - COleDateTime.
|
|
// Returns:
|
|
// A calendar events pointer object.
|
|
// See Also: ExistsScheduleID
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventsPtr RetrieveDayEvents(COleDateTime dtDay) const;
|
|
|
|
protected:
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class implements CXTPCalendarResource functionality with addition
|
|
// of notifications mechanism implemented by CXTPNotifySink.
|
|
// See also:
|
|
// CXTPCalendarResource overview, CXTPNotifySink overview.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarResourcesNf : public CXTPCalendarResources,
|
|
private CXTPNotifySinkBase
|
|
{
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
// Construct CXTPCalendarResourcesNf object.
|
|
// See Also: ~CXTPCalendarResourcesNf
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarResourcesNf();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles member items deallocation.
|
|
// See Also: CXTPCalendarResourcesNf
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarResourcesNf();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Obtain a pointer to the notification connection object.
|
|
// Remarks:
|
|
// Used to subscribe (Advice) for notification events from the
|
|
// control.
|
|
// Returns:
|
|
// Connection object pointer.
|
|
// See Also: CXTPNotifyConnection overview,
|
|
// IXTPNotificationSink overview
|
|
//-----------------------------------------------------------------------
|
|
CXTPNotifyConnection* GetConnection() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Rebuilds notification connection objects after changes in resources
|
|
// configuration.
|
|
// Call this member function after advising to notifications from
|
|
// connection pointers of the CXTPCalendarResourcesNf object
|
|
// See Also: GetConnection, GetResourcesGroupedByDP
|
|
//-----------------------------------------------------------------------
|
|
virtual void ReBuildInternalData();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to retrieve a resources collection
|
|
// only for unique data providers.
|
|
// Remarks:
|
|
// This method returns a collection of temporary resources objects
|
|
// having only unique data providers.
|
|
// It could be useful to retrieve a complete collection of events for
|
|
// further processing from all data providers in scope of resources
|
|
// collection, and in order not to retrieve duplicate events.
|
|
// Returns:
|
|
// A pointer to the internal resources collection which is rebuilt
|
|
// during the ReBuildInternalData method execution.
|
|
// See Also: ReBuildInternalData
|
|
//-----------------------------------------------------------------------
|
|
virtual const CXTPCalendarResources* GetResourcesGroupedByDP() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to retrieve a resource object for specified
|
|
// data provider.
|
|
// Remarks:
|
|
// This method returns a resource from temporary intermal collection.
|
|
// Parameters:
|
|
// pData - pointer to CXTPCalendarData.
|
|
// Returns:
|
|
// A pointer to the internal resource from collection which is rebuilt
|
|
// during the ReBuildInternalData method execution.
|
|
// See Also: GetResourcesGroupedByDP, ReBuildInternalData
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarResource* FindByDataProvider(CXTPCalendarData* pData) const;
|
|
protected:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function catches all the events from the associated
|
|
// data provider and forwards it to CXTPCalendarResourcesNf
|
|
// subscribers.
|
|
// Parameters:
|
|
// dwNotifyCode - Events notification code
|
|
// wParam - First user's parameter.
|
|
// lParam - Second user's parameter.
|
|
// dwFlags - Unused parameter.
|
|
//-----------------------------------------------------------------------
|
|
virtual void OnEvent(XTP_NOTIFY_CODE dwNotifyCode, WPARAM wParam, LPARAM lParam,
|
|
DWORD dwFlags);
|
|
private:
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
static CXTPCalendarResource* AFX_CDECL FindByDataProvider(const CXTPCalendarResources* pResources, CXTPCalendarData* pData);
|
|
|
|
CXTPCalendarResources m_arResourcesGroupedByDP;
|
|
|
|
class CXTPNotifyConnection_internal : public CXTPNotifyConnection
|
|
{
|
|
public:
|
|
using CXTPNotifyConnection::CONNECTION_DESCRIPTOR;
|
|
using CXTPNotifyConnection::m_arrConnections;
|
|
};
|
|
CXTPNotifyConnection_internal* m_pConnection;
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
AFX_INLINE UINT CXTPCalendarSchedule::GetID() const {
|
|
return m_uScheduleID;
|
|
}
|
|
AFX_INLINE CString CXTPCalendarSchedule::GetName() const {
|
|
return m_strScheduleName;
|
|
}
|
|
AFX_INLINE void CXTPCalendarSchedule::SetID(UINT uScheduleID) {
|
|
m_uScheduleID = uScheduleID;
|
|
}
|
|
AFX_INLINE void CXTPCalendarSchedule::SetName(LPCTSTR pcszScheduleName) {
|
|
ASSERT(pcszScheduleName);
|
|
m_strScheduleName = pcszScheduleName ? pcszScheduleName : _T("");
|
|
}
|
|
#ifdef _BUSINESS_MODEL_
|
|
AFX_INLINE UINT CXTPCalendarSchedule::GetSecType() const {
|
|
return m_uScheduleSec;
|
|
}
|
|
AFX_INLINE void CXTPCalendarSchedule::SetSecType(UINT uScheduleSec){
|
|
m_uScheduleSec = uScheduleSec;
|
|
}
|
|
#endif
|
|
|
|
AFX_INLINE CUIntArray* CXTPCalendarResource::GetSchedules() {
|
|
return &m_arScheduleIDs;
|
|
}
|
|
AFX_INLINE BOOL CXTPCalendarResource::IsSchedulesSetEmpty() const {
|
|
return m_arScheduleIDs.GetSize() == 0;
|
|
}
|
|
AFX_INLINE CXTPCalendarData* CXTPCalendarResource::GetDataProvider() const {
|
|
ASSERT(this);
|
|
return this ? m_pDataProvider : NULL;
|
|
}
|
|
AFX_INLINE CString CXTPCalendarResource::GetName() const {
|
|
return m_strResourceName;
|
|
}
|
|
AFX_INLINE void CXTPCalendarResource::SetName(LPCTSTR pcszResourceName) {
|
|
ASSERT(pcszResourceName);
|
|
m_strResourceName = pcszResourceName ? pcszResourceName : m_strResourceName;
|
|
}
|
|
AFX_INLINE COLORREF CXTPCalendarResource::GetColor() const {
|
|
return m_Color;
|
|
}
|
|
AFX_INLINE void CXTPCalendarResource::SetColor(COLORREF color) {
|
|
m_Color = color;
|
|
}
|
|
AFX_INLINE CXTPNotifyConnection* CXTPCalendarResourcesNf::GetConnection() const {
|
|
return m_pConnection;
|
|
}
|
|
AFX_INLINE const CXTPCalendarResources* CXTPCalendarResourcesNf::GetResourcesGroupedByDP() const {
|
|
return &m_arResourcesGroupedByDP;
|
|
}
|
|
AFX_INLINE CXTPCalendarResource* CXTPCalendarResourcesNf::FindByDataProvider(CXTPCalendarData* pData) const {
|
|
return FindByDataProvider(GetResourcesGroupedByDP(), pData);
|
|
}
|
|
AFX_INLINE CXTPCalendarCustomProperties* CXTPCalendarSchedule::GetCustomProperties() const {
|
|
return m_pCustomProperties;
|
|
}
|
|
|
|
#endif // !defined(_XTPCALENDARRESOURCE_H_)
|