/* * AxisLegendManager.hh * * Created on: 23 jan. 2015 * Author: AKKA */ #ifndef AXISLEGENDMANAGER_HH_ #define AXISLEGENDMANAGER_HH_ #include "PanelPlotOutput.hh" #include "XYPlot.hh" #include "ParamMgr.hh" using namespace AMDA::Info; namespace plot { class ParameterIndexComponentColor { public: ParameterIndexComponentColor(int dim1Index, int dim2Index, Color& color) : _dim1Index(dim1Index) , _dim2Index(dim2Index), _color(color){ } ParameterIndexComponentColor(AMDA::Common::ParameterIndexComponent index, Color& color) : _dim1Index(index.getDim1Index()), _dim2Index(index.getDim2Index()), _color(color) { } ParameterIndexComponentColor(const ParameterIndexComponentColor& index) : _dim1Index(index._dim1Index), _dim2Index(index._dim2Index), _color(index._color) { } const Color& getColor() const { return _color; } void setColor(Color& color) { _color = color; } int getDim1Index() { return _dim1Index; } int getDim2Index() { return _dim2Index; } private: int _dim1Index; int _dim2Index; Color _color; }; class AxisLegendManager { public: typedef std::map > AxisParamsComponents; static void configureYAxisLegendForSpectro(PanelPlotOutput* plot); static void configureYAxisLegendForSeries(PanelPlotOutput* plot); static void configureColorAxisLegendForSpectro(PanelPlotOutput* plot); static void configureColorAxisLegendForSeries(PanelPlotOutput* plot); static void configureXAxisLegendForSeries(XYPlot* plot); static void setAxisLegendForSeries(PanelPlotOutput* plot, boost::shared_ptr& pAxis, AxisParamsComponents& axisParamsComponents); static void setAxisLegendForSpectro(PanelPlotOutput* plot, boost::shared_ptr& pAxis, std::string originalParamId); static void setAxisLegendForTable(PanelPlotOutput* plot, boost::shared_ptr& pAxis, std::string originalParamId, std::string paramId, AMDA::Common::ParameterIndexComponentList& indexes, int relatedDim); private: static void addInfoPart(std::string& legend, std::string info); static void addIndexPart(std::string& legend, ParameterIndexComponentColor& index); static void addIndexPart(std::string& legend, int index); static void addBoundsPart(std::string& legend, PLFLT min, PLFLT max); static void addBreakLine(std::string& legend); static void pushComponentInList(std::string paramId, ParameterIndexComponentColor& index, AxisParamsComponents& axisParamsComponents); static std::string getParamLegend(AMDA::Info::ParamInfoSPtr paramInfo, ParameterIndexComponentColor& index); //static std::string getParamLegend(AMDA::Info::ParamInfoSPtr paramInfo, int index); static std::string getMissionInstrumentInfo(AMDA::Info::ParamInfoSPtr paramInfo); static std::string getMissionInfo(AMDA::Info::ParamInfoSPtr paramInfo); }; } #endif