FullPlotVisualizer.h

00001 
00007 #ifndef _FullPlotVisualizer_h
00008 #define _FullPlotVisualizer_h
00009 
00010 // SYSTEM INCLUDES
00011 //
00012 
00013 // PROJECT INCLUDES
00014 //
00015 
00016 // LOCAL INCLUDES
00017 //
00018 #include "PlotControl.h"
00019 #include "PlotStatus.h"
00020 #include "PlotToolbar.h"
00021 #include "ResultLayer.h"
00022 #include "TextIterationVisualizer.h"
00023 #include "Visualizer.h"
00024 
00025 // FORWARD REFERENCES
00026 //
00027 
00028 
00029 class FullPlotVisualizer
00030     : public Visualizer
00031 {
00032     enum {
00033         ID_LIST_ITERATIONS = 0,
00034         ID_BUTTON_NEXT,
00035         ID_BUTTON_PREVIOUS
00036     };
00037 public:
00038 // LIFECYCLE
00039 
00048     FullPlotVisualizer(
00049             wxWindow*                                   pParent,
00050             const Result&                               result,
00051             const ResultLayer::Creator                  resultLayerCreator,
00052             auto_ptr<const TextIterationVisualizer>     apTextIterationVisualizer);
00053 
00054 
00057     ~FullPlotVisualizer(void);
00058 
00059 
00060     void OnIterationSelect(wxCommandEvent& event);
00061 
00062     void OnNext(wxCommandEvent& event);
00063     void OnPrevious(wxCommandEvent& event);
00064 
00065 // OPERATORS
00066 
00067 // OPERATIONS
00068 
00069     void    SetFitIteration(bool toggle);
00070 
00071 // ACCESS
00072 
00075     virtual wxString        Name() const;
00076 
00077 // INQUIRY
00078 
00079     bool        IsFitIteration() const;
00080 
00081 protected:
00082 private:
00083 
00089     void        SelectIteration(unsigned selectionIndex, bool select);
00090 
00094     void        FitIteration();
00095 
00096     void        FillIterationList(wxListBox* pListBox, const Result& result)
00097                         const;
00098 
00099     void        SetUpStatusAndIterationControlPanel(
00100                         wxPanel*        pPanel,
00101                         PlotStatus*     pPlotStatus,
00102                         wxStaticText*   pStaticIteration);
00103 
00104     wxPanel*    SetUpPlotPanel(wxWindow*            pParent,
00105                                ResultLayer::Creator resultLayerCreator);
00106 
00107     void        SetUpToolbarTools(PlotToolbar *pToolbar);
00108 
00109     CountedPtr<ResultLayer>                     mcpResultPlotLayer;
00110     CountedPtr<PlotLayer>                       mcpFunctionPlotLayer;
00111     auto_ptr<const TextIterationVisualizer>     mapTextIterationVisualizer;
00112 
00113     wxSplitterWindow*   mpTopBottomSplitter;    
00114     wxSplitterWindow*   mpPlotListSplitter;     
00115     wxSplitterWindow*   mpStatusTextSplitter;   
00116 
00117     PlotControl*        mpPlotControl;          
00118     wxListBox*          mpListIterations;       
00119     wxTextCtrl*         mpTextIteration;        
00120     PlotStatus*         mpPlotStatus;           
00121     wxStaticText*       mpStaticIteration;      
00122 
00123     wxButton*           mpButtonNext;       
00124     wxButton*           mpButtonPrevious;   
00125 
00126     const static wxString   mName;              
00127     const static unsigned   mIterationListWidth;
00128 
00129     const static unsigned   mTextIterationDefaultHeight;
00130 
00131     bool        mFitIteration;  
00132 
00133     DECLARE_EVENT_TABLE();
00134 };
00135 
00136 // INLINE METHODS
00137 //
00138 
00139 // EXTERNAL REFERENCES
00140 //
00141 
00142 #endif  // _FullPlotVisualizer_h

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