00001 00002 // Name: ganttdataset.h 00003 // Purpose: gantt dataset declaration 00004 // Author: Moskvichev Andrey V. 00005 // Created: 2009/03/23 00006 // Copyright: (c) 2008-2010 Moskvichev Andrey V. 00007 // Licence: wxWidgets licence 00009 00010 #ifndef GANTTDATASET_H_ 00011 #define GANTTDATASET_H_ 00012 00013 //#include <wx/dataset.h> 00014 #include <wx/category/categorydataset.h> 00015 00016 class GanttRenderer; 00017 class GanttDataset; 00018 00023 class WXDLLIMPEXP_FREECHART GanttDatasetDateHelper : public DateTimeDataset 00024 { 00025 public: 00026 GanttDatasetDateHelper(GanttDataset *ganttDataset); 00027 virtual ~GanttDatasetDateHelper(); 00028 00029 virtual time_t GetDate(size_t index); 00030 00031 virtual size_t GetCount(); 00032 00033 private: 00034 GanttDataset *m_ganttDataset; 00035 }; 00036 00040 class WXDLLIMPEXP_FREECHART GanttDataset : public CategoryDataset 00041 { 00042 DECLARE_CLASS(GanttDataset) 00043 public: 00049 GanttDataset(size_t dateCount); 00050 virtual ~GanttDataset(); 00051 00052 virtual DateTimeDataset *AsDateTimeDataset(); 00053 00058 virtual size_t GetCount() = 0; 00059 00066 virtual time_t GetStart(size_t index, size_t serie) = 0; 00067 00074 virtual time_t GetEnd(size_t index, size_t serie) = 0; 00075 00081 virtual size_t GetCount(size_t serie); 00082 00083 virtual time_t GetMinStart(); 00084 00085 virtual time_t GetMaxEnd(); 00086 00087 time_t GetDateInterval(); 00088 00089 size_t GetDateCount(); 00090 00091 GanttRenderer *GetRenderer() 00092 { 00093 return (GanttRenderer *) m_renderer; 00094 } 00095 00096 private: 00097 GanttDatasetDateHelper m_dateHelper; 00098 00099 size_t m_dateCount; 00100 }; 00101 00102 #endif /* GANTTDATASET_H_ */