VisualizerFactory.h

00001 
00010 #ifndef _VisualizerFactory_h
00011 #define _VisualizerFactory_h
00012 
00013 // SYSTEM INCLUDES
00014 //
00015 
00016 // PROJECT INCLUDES
00017 //
00018 
00019 // LOCAL INCLUDES
00020 //
00021 #include "../CountedPtr.h"
00022 #include "../Result.h"
00023 
00024 #include "ResultLayer.h"
00025 #include "TextIterationVisualizer.h"
00026 #include "TextVisualizer.h"
00027 #include "Visualizer.h"
00028 #include "FullPlotVisualizer.h"
00029 
00030 
00031 // FORWARD REFERENCES
00032 //
00033 
00034 
00035 class VisualizerFactory
00036 {
00037 public:
00038 
00040     typedef vector<Visualizer*> VisualizerContainer;
00041 
00042 // LIFECYCLE
00043 
00044 // OPERATORS
00045 
00046 // OPERATIONS
00047 
00062     static VisualizerContainer CreateVisualizers(wxWindow*      pParent,
00063                                                  const Result&  result);
00064 
00065 
00071     static void*        RegisterTextVisualizer
00072                             (IterationData::IterationDataIdType     id,
00073                              const TextIterationVisualizer::Creator function);
00074 
00078     static void*        RegisterFullPlotVisualizer
00079                             (IterationData::IterationDataIdType     id,
00080                              const ResultLayer::Creator             creator);
00081 
00085     static void*        RegisterIterationValueVisualizer
00086                             (IterationData::IterationDataIdType);
00087 
00088 // ACCESS
00089 // INQUIRY
00090 
00091 protected:
00092 
00094     class VisualizerCreators
00095     {
00096     public:
00098         VisualizerCreators();
00099 
00101         void Merge(const VisualizerCreators& creators);
00102 
00104         bool IsEmpty() const;
00106         bool IsComplete() const;
00107 
00108     // DATA
00109 
00111         TextIterationVisualizer::Creator    mTextCreator;
00112         ResultLayer::Creator                mFullPlotCreator;
00113         bool                                mIterationValueFlag;
00114         // TODO: pozostałe
00115     }; // VisualizerCreators
00116 
00120     typedef map<IterationData::IterationDataIdType,
00121                 VisualizerCreators>                 CreatorMapType;
00122 
00123     static CreatorMapType&         CreatorMap();
00124 private:
00125 };
00126 
00127 // INLINE METHODS
00128 //
00129 
00130 // EXTERNAL REFERENCES
00131 //
00132 
00133 #endif  // _VisualizerFactory_h

Wygenerowano Fri Sep 29 21:04:49 2006 dla EduOptim2 programem  doxygen 1.4.6