00001
00007 #ifndef _FullPlotVisualizer_h
00008 #define _FullPlotVisualizer_h
00009
00010
00011
00012
00013
00014
00015
00016
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
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
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
00066
00067
00068
00069 void SetFitIteration(bool toggle);
00070
00071
00072
00075 virtual wxString Name() const;
00076
00077
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
00137
00138
00139
00140
00141
00142 #endif // _FullPlotVisualizer_h