#2243 Summary Plot : Add control flags for auto title for name, acronym and unit

This commit is contained in:
Magne Sjaastad 2017-12-11 16:41:18 +01:00
parent 6e4449960f
commit e7c08223b6
4 changed files with 116 additions and 31 deletions

View File

@ -59,6 +59,8 @@ CAF_PDM_SOURCE_INIT(RimSummaryAxisProperties, "SummaryYAxisProperties");
//--------------------------------------------------------------------------------------------------
RimSummaryAxisProperties::RimSummaryAxisProperties()
{
// clang-format off
CAF_PDM_InitObject("Y-Axis Properties", ":/LeftAxis16x16.png", "", "");
CAF_PDM_InitField(&m_isActive, "Active", true, "Active", "", "", "");
@ -68,6 +70,11 @@ RimSummaryAxisProperties::RimSummaryAxisProperties()
m_name.uiCapability()->setUiHidden(true);
CAF_PDM_InitField(&isAutoTitle, "AutoTitle", true, "Auto Title", "", "", "");
CAF_PDM_InitField(&m_displayLongName, "DisplayLongName", true, "Title Names", "", "", "");
CAF_PDM_InitField(&m_displayShortName, "DisplayShortName", false, "Title Acronymes", "", "", "");
CAF_PDM_InitField(&m_displayUnitText, "DisplayUnitText", true, "Title Units", "", "", "");
CAF_PDM_InitFieldNoDefault(&customTitle, "CustomTitle", "Title", "", "", "");
CAF_PDM_InitFieldNoDefault(&titlePositionEnum, "TitlePosition", "Title Position", "", "", "");
CAF_PDM_InitField(&titleFontSize, "FontSize", 11, "Font Size", "", "", "");
@ -86,6 +93,8 @@ RimSummaryAxisProperties::RimSummaryAxisProperties()
CAF_PDM_InitField(&isLogarithmicScaleEnabled, "LogarithmicScale", false, "Logarithmic Scale", "", "", "");
updateOptionSensitivity();
// clang-format on
}
//--------------------------------------------------------------------------------------------------
@ -148,6 +157,20 @@ void RimSummaryAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUi
caf::PdmUiGroup& titleGroup = *(uiOrdering.addNewGroup("Axis Title"));
titleGroup.add(&isAutoTitle);
titleGroup.add(&customTitle);
if (isAutoTitle())
{
titleGroup.add(&m_displayShortName);
titleGroup.add(&m_displayLongName);
titleGroup.add(&m_displayUnitText);
customTitle.uiCapability()->setUiReadOnly(true);
}
else
{
customTitle.uiCapability()->setUiReadOnly(false);
}
titleGroup.add(&titlePositionEnum);
titleGroup.add(&titleFontSize);
@ -164,6 +187,7 @@ void RimSummaryAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUi
scaleGroup.add(&visibleRangeMin);
scaleGroup.add(&visibleRangeMax);
scaleGroup.add(&valuesFontSize);
uiOrdering.skipRemainingFields(true);
}
@ -198,6 +222,38 @@ RiaDefines::PlotAxis RimSummaryAxisProperties::plotAxisType() const
return RiaDefines::PLOT_AXIS_LEFT;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryAxisProperties::useAutoTitle() const
{
return isAutoTitle();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryAxisProperties::showDescription() const
{
return m_displayLongName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryAxisProperties::showAcronym() const
{
return m_displayShortName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryAxisProperties::showUnitText() const
{
return m_displayUnitText();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -61,7 +61,11 @@ public:
QwtPlot::Axis qwtPlotAxisType() const;
RiaDefines::PlotAxis plotAxisType() const;
caf::PdmField<bool> isAutoTitle;
bool useAutoTitle() const;
bool showDescription() const;
bool showAcronym() const;
bool showUnitText() const;
caf::PdmField<QString> customTitle;
caf::PdmField<int> titleFontSize;
caf::PdmField< caf::AppEnum< AxisTitlePositionType > > titlePositionEnum;
@ -89,7 +93,13 @@ private:
void updateOptionSensitivity();
private:
caf::PdmField<bool> m_isActive;
caf::PdmField<bool> m_isActive;
caf::PdmField<bool> isAutoTitle;
caf::PdmField<bool> m_displayShortName;
caf::PdmField<bool> m_displayLongName;
caf::PdmField<bool> m_displayUnitText;
caf::PdmField<QString> m_name;
QwtPlot::Axis m_axis;
};

View File

@ -26,6 +26,7 @@
#include "RimAsciiDataCurve.h"
#include "RiuSummaryQwtPlot.h"
#include "RiuSummaryVectorDescriptionMap.h"
#include "qwt_plot_curve.h"
#include "qwt_scale_draw.h"
@ -124,7 +125,7 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
{
QString axisTitle = m_axisProperties->customTitle;
if (m_axisProperties->isAutoTitle) axisTitle = autoAxisTitle();
if (m_axisProperties->useAutoTitle()) axisTitle = autoAxisTitle();
QwtText axisTitleY = qwtPlot->axisTitle(m_axisProperties->qwtPlotAxisType());
@ -200,35 +201,55 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
//--------------------------------------------------------------------------------------------------
QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const
{
std::map<std::string, std::set<std::string> > unitToQuantityNameMap;
std::map<std::string, std::set<std::string>> unitToQuantityNameMap;
if (m_axisProperties->plotAxisType() == RiaDefines::PLOT_AXIS_BOTTOM)
for (RimSummaryCurve* rimCurve : m_summaryCurves)
{
for (RimSummaryCurve* rimCurve : m_summaryCurves)
{
std::string quantityName = rimCurve->summaryAddressX().quantityName();
if (rimCurve->summaryAddressX().category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
{
quantityName = shortCalculationName(quantityName);
}
RifEclipseSummaryAddress sumAddress;
std::string unitText;
unitToQuantityNameMap[rimCurve->unitNameX()].insert(quantityName);
if (m_axisProperties->plotAxisType() == RiaDefines::PLOT_AXIS_BOTTOM)
{
sumAddress = rimCurve->summaryAddressX();
unitText = rimCurve->unitNameX();
}
}
else
{
for (RimSummaryCurve* rimCurve : m_summaryCurves)
else if (rimCurve->axisY() == this->m_axisProperties->plotAxisType())
{
if (rimCurve->axisY() == this->m_axisProperties->plotAxisType())
sumAddress = rimCurve->summaryAddressY();
unitText = rimCurve->unitNameY();
}
else
{
continue;
}
std::string quantityNameForDisplay;
{
std::string quantityName = sumAddress.quantityName();
if (sumAddress.category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
{
std::string quantityName = rimCurve->summaryAddressY().quantityName();
if (rimCurve->summaryAddressY().category() == RifEclipseSummaryAddress::SUMMARY_CALCULATED)
quantityNameForDisplay = shortCalculationName(quantityName);
}
else
{
if (m_axisProperties->showDescription())
{
quantityName = shortCalculationName(quantityName);
quantityNameForDisplay = RiuSummaryVectorDescriptionMap::instance()->fieldInfo(quantityName);
}
unitToQuantityNameMap[rimCurve->unitNameY()].insert(quantityName);
if (m_axisProperties->showAcronym())
{
if (!quantityNameForDisplay.empty())
{
quantityNameForDisplay += " ";
}
quantityNameForDisplay += quantityName;
}
}
unitToQuantityNameMap[unitText].insert(quantityNameForDisplay);
}
}
@ -239,20 +260,19 @@ QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const
{
if (m_axisProperties->scaleFactor() != 1.0)
{
int exponent = std::log10(m_axisProperties->scaleFactor());
int exponent = std::log10(m_axisProperties->scaleFactor());
scaleFactorText = QString(" x 10<sup>%1</sup> ").arg(QString::number(exponent));
}
}
for ( auto unitIt : unitToQuantityNameMap )
for (auto unitIt : unitToQuantityNameMap)
{
for (const auto &quantIt: unitIt.second)
for (const auto& quantIt : unitIt.second)
{
assembledYAxisText += QString::fromStdString(quantIt) + " ";
}
if (!unitIt.first.empty())
if (m_axisProperties->showUnitText() && !unitIt.first.empty())
{
assembledYAxisText += "[" + QString::fromStdString(unitIt.first) + scaleFactorText + "] ";
}

View File

@ -776,15 +776,15 @@ void RimSummaryPlot::updateBottomXAxis()
QwtPlot::Axis qwtAxis = QwtPlot::xBottom;
RimSummaryAxisProperties* yAxisProperties = m_bottomAxisProperties();
RimSummaryAxisProperties* bottomAxisProperties = m_bottomAxisProperties();
if (yAxisProperties->isActive())
if (bottomAxisProperties->isActive())
{
m_qwtPlot->enableAxis(qwtAxis, true);
std::set<QString> timeHistoryQuantities;
RimSummaryPlotYAxisFormatter calc(yAxisProperties,
RimSummaryPlotYAxisFormatter calc(bottomAxisProperties,
visibleSummaryCurvesForAxis(RiaDefines::PLOT_AXIS_BOTTOM),
visibleAsciiDataCurvesForAxis(RiaDefines::PLOT_AXIS_BOTTOM),
timeHistoryQuantities);
@ -805,7 +805,6 @@ void RimSummaryPlot::updateCaseNameHasChanged()
{
m_summaryCurveCollection->updateCaseNameHasChanged();
}
}
//--------------------------------------------------------------------------------------------------