/* * AxisLegendManager.hh * * Created on: 23 jan. 2015 * Author: AKKA */ #ifndef AXISLEGENDMANAGER_HH_ #define AXISLEGENDMANAGER_HH_ #include "PanelPlotOutput.hh" #include "ParamMgr.hh" #include "XYPlot.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(PanelPlotOutput *plot); static void setAxisLegendForSeries(PanelPlotOutput *plot, boost::shared_ptr &pAxis, AxisParamsComponents &axisParamsComponents, std::vector insertionOrder, std::string legendPrefix=""); 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); static std::string getTransformedUnits(const std::string &rawUnit); 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, std::vector &insertionOrder); 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); static std::string transformPower(std::string &unit, std::string pattern); }; } #endif