mirror of
				https://github.com/OPM/ResInsight.git
				synced 2025-02-25 18:55:39 -06:00 
			
		
		
		
	Use PtrField as placeholder for current legend config
Set previous current legend to obsolete When reading a file < 1.3.7.-dev, copy current legend config into legend list
This commit is contained in:
		@@ -34,12 +34,11 @@ RimEclipseCellColors::RimEclipseCellColors()
 | 
			
		||||
{
 | 
			
		||||
    CAF_PDM_InitObject("Result Slot", "", "", "");
 | 
			
		||||
 | 
			
		||||
    CAF_PDM_InitFieldNoDefault(&legendConfig, "LegendDefinition", "Legend Definition", "", "", "");
 | 
			
		||||
    this->legendConfig = new RimLegendConfig();
 | 
			
		||||
    this->legendConfig.uiCapability()->setUiHidden(true);
 | 
			
		||||
    this->legendConfig.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
    CAF_PDM_InitFieldNoDefault(&obsoleteField_legendConfig, "LegendDefinition", "Legend Definition", "", "", "");
 | 
			
		||||
    this->obsoleteField_legendConfig.uiCapability()->setUiHidden(true);
 | 
			
		||||
    this->obsoleteField_legendConfig.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
    this->obsoleteField_legendConfig.xmlCapability()->setIOWritable(false);
 | 
			
		||||
 | 
			
		||||
    // MODTODO
 | 
			
		||||
    CAF_PDM_InitFieldNoDefault(&m_legendConfigData, "ResultVarLegendDefinitionList", "", "", "", "");
 | 
			
		||||
    m_legendConfigData.uiCapability()->setUiHidden(true);
 | 
			
		||||
    m_legendConfigData.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
@@ -48,6 +47,10 @@ RimEclipseCellColors::RimEclipseCellColors()
 | 
			
		||||
    this->ternaryLegendConfig = new RimTernaryLegendConfig();
 | 
			
		||||
    this->ternaryLegendConfig.uiCapability()->setUiHidden(true);
 | 
			
		||||
    this->ternaryLegendConfig.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
 | 
			
		||||
    CAF_PDM_InitFieldNoDefault(&m_legendConfigPtrField, "LegendDefinitionPtrField", "Legend Definition PtrField", "", "", "");
 | 
			
		||||
    this->m_legendConfigPtrField.uiCapability()->setUiHidden(true);
 | 
			
		||||
    this->m_legendConfigPtrField.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
@@ -55,7 +58,7 @@ RimEclipseCellColors::RimEclipseCellColors()
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
RimEclipseCellColors::~RimEclipseCellColors()
 | 
			
		||||
{
 | 
			
		||||
    delete legendConfig();
 | 
			
		||||
    delete obsoleteField_legendConfig();
 | 
			
		||||
    delete ternaryLegendConfig();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -94,26 +97,35 @@ void RimEclipseCellColors::changeLegendConfig(QString resultVarNameOfNewLegend)
 | 
			
		||||
    {
 | 
			
		||||
        this->ternaryLegendConfig.uiCapability()->setUiHidden(false);
 | 
			
		||||
        this->ternaryLegendConfig.uiCapability()->setUiChildrenHidden(false);
 | 
			
		||||
        this->legendConfig.uiCapability()->setUiHidden(true);
 | 
			
		||||
        this->legendConfig.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
        this->m_legendConfigPtrField.uiCapability()->setUiHidden(true);
 | 
			
		||||
        this->m_legendConfigPtrField.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        this->ternaryLegendConfig.uiCapability()->setUiHidden(true);
 | 
			
		||||
        this->ternaryLegendConfig.uiCapability()->setUiChildrenHidden(true);
 | 
			
		||||
 | 
			
		||||
        if (this->legendConfig()->resultVariableName() != resultVarNameOfNewLegend)
 | 
			
		||||
        bool found = false;
 | 
			
		||||
 | 
			
		||||
        QString legendResultVariable;
 | 
			
		||||
 | 
			
		||||
        if (this->m_legendConfigPtrField())
 | 
			
		||||
        {
 | 
			
		||||
            legendResultVariable = this->m_legendConfigPtrField()->resultVariableName();
 | 
			
		||||
        }
 | 
			
		||||
        else if (obsoleteField_legendConfig)
 | 
			
		||||
        {
 | 
			
		||||
            // Use resultVariableName from obsolete legend config if present
 | 
			
		||||
            legendResultVariable = obsoleteField_legendConfig->resultVariableName();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!this->m_legendConfigPtrField() || legendResultVariable != resultVarNameOfNewLegend)
 | 
			
		||||
        {
 | 
			
		||||
            bool found = false;
 | 
			
		||||
            for (size_t i = 0; i < m_legendConfigData.size(); i++)
 | 
			
		||||
            {
 | 
			
		||||
                if (m_legendConfigData[i]->resultVariableName() == resultVarNameOfNewLegend)
 | 
			
		||||
                {
 | 
			
		||||
                    RimLegendConfig* newLegend = m_legendConfigData[i];
 | 
			
		||||
 | 
			
		||||
                    m_legendConfigData.erase(i);
 | 
			
		||||
                    m_legendConfigData.push_back(this->legendConfig());
 | 
			
		||||
                    this->legendConfig = newLegend;
 | 
			
		||||
                    this->m_legendConfigPtrField = m_legendConfigData[i];
 | 
			
		||||
                    found = true;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
@@ -122,18 +134,18 @@ void RimEclipseCellColors::changeLegendConfig(QString resultVarNameOfNewLegend)
 | 
			
		||||
            // Not found ?
 | 
			
		||||
            if (!found)
 | 
			
		||||
            {
 | 
			
		||||
                 RimLegendConfig* newLegend = new RimLegendConfig;
 | 
			
		||||
                 newLegend->setReservoirView(m_reservoirView);
 | 
			
		||||
                 newLegend->resultVariableName = resultVarNameOfNewLegend;
 | 
			
		||||
                 m_legendConfigData.push_back(this->legendConfig());
 | 
			
		||||
                 this->legendConfig = newLegend;
 | 
			
		||||
                    RimLegendConfig* newLegend = new RimLegendConfig;
 | 
			
		||||
                    newLegend->setReservoirView(m_reservoirView);
 | 
			
		||||
                    newLegend->resultVariableName = resultVarNameOfNewLegend;
 | 
			
		||||
                    m_legendConfigData.push_back(newLegend);
 | 
			
		||||
 | 
			
		||||
                    this->m_legendConfigPtrField = newLegend;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
        this->legendConfig.uiCapability()->setUiHidden(false);
 | 
			
		||||
        this->legendConfig.uiCapability()->setUiChildrenHidden(false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
        this->m_legendConfigPtrField.uiCapability()->setUiHidden(false);
 | 
			
		||||
        this->m_legendConfigPtrField.uiCapability()->setUiChildrenHidden(false);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
@@ -143,9 +155,15 @@ void RimEclipseCellColors::initAfterRead()
 | 
			
		||||
{
 | 
			
		||||
    RimEclipseResultDefinition::initAfterRead();
 | 
			
		||||
 | 
			
		||||
    if (this->legendConfig()->resultVariableName == "")
 | 
			
		||||
    if (this->m_legendConfigPtrField() && this->m_legendConfigPtrField()->resultVariableName == "")
 | 
			
		||||
    {
 | 
			
		||||
        this->legendConfig()->resultVariableName = this->resultVariable();
 | 
			
		||||
        this->m_legendConfigPtrField()->resultVariableName = this->resultVariable();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (obsoleteField_legendConfig)
 | 
			
		||||
    {
 | 
			
		||||
        // The current legend config is NOT stored in <ResultVarLegendDefinitionList> in ResInsight up to v 1.3.7-dev
 | 
			
		||||
        m_legendConfigData.push_back(obsoleteField_legendConfig);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    changeLegendConfig(this->resultVariable());
 | 
			
		||||
@@ -159,14 +177,11 @@ void RimEclipseCellColors::setReservoirView(RimEclipseView* ownerReservoirView)
 | 
			
		||||
    RimEclipseResultDefinition::setReservoirView(ownerReservoirView);
 | 
			
		||||
 | 
			
		||||
    m_reservoirView = ownerReservoirView;
 | 
			
		||||
    this->legendConfig()->setReservoirView(ownerReservoirView);
 | 
			
		||||
    std::list<caf::PdmPointer<RimLegendConfig> >::iterator it;
 | 
			
		||||
 | 
			
		||||
    // MODTODO
 | 
			
		||||
    //     for (it = m_legendConfigData.v().begin(); it != m_legendConfigData.v().end(); ++it)
 | 
			
		||||
//     {
 | 
			
		||||
//         (*it)->setReservoirView(ownerReservoirView);
 | 
			
		||||
//     }
 | 
			
		||||
    for (size_t i = 0; i < m_legendConfigData.size(); i++)
 | 
			
		||||
    {
 | 
			
		||||
        m_legendConfigData[i]->setReservoirView(ownerReservoirView);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this->ternaryLegendConfig()->setReservoirView(ownerReservoirView);
 | 
			
		||||
}
 | 
			
		||||
@@ -181,3 +196,11 @@ void RimEclipseCellColors::setResultVariable(const QString& val)
 | 
			
		||||
    this->changeLegendConfig(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
/// 
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
RimLegendConfig* RimEclipseCellColors::legendConfig()
 | 
			
		||||
{
 | 
			
		||||
    return m_legendConfigPtrField;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@
 | 
			
		||||
 | 
			
		||||
#include "cafPdmChildArrayField.h"
 | 
			
		||||
#include "cafPdmChildField.h"
 | 
			
		||||
#include "cafPdmPtrField.h"
 | 
			
		||||
 | 
			
		||||
class RimTernaryLegendConfig;
 | 
			
		||||
 | 
			
		||||
@@ -33,7 +34,7 @@ class RimTernaryLegendConfig;
 | 
			
		||||
///  
 | 
			
		||||
///  
 | 
			
		||||
//==================================================================================================
 | 
			
		||||
class RimEclipseCellColors :  public RimEclipseResultDefinition
 | 
			
		||||
class RimEclipseCellColors : public RimEclipseResultDefinition
 | 
			
		||||
{
 | 
			
		||||
    CAF_PDM_HEADER_INIT;
 | 
			
		||||
public:
 | 
			
		||||
@@ -41,7 +42,9 @@ public:
 | 
			
		||||
    virtual ~RimEclipseCellColors();
 | 
			
		||||
 | 
			
		||||
    virtual void setReservoirView(RimEclipseView* ownerReservoirView);
 | 
			
		||||
    caf::PdmChildField<RimLegendConfig*> legendConfig;
 | 
			
		||||
 | 
			
		||||
    RimLegendConfig* legendConfig();
 | 
			
		||||
 | 
			
		||||
    caf::PdmChildField<RimTernaryLegendConfig*> ternaryLegendConfig;
 | 
			
		||||
 | 
			
		||||
    // Overridden methods
 | 
			
		||||
@@ -55,9 +58,9 @@ protected:
 | 
			
		||||
private:
 | 
			
		||||
    void changeLegendConfig(QString resultVarNameOfNewLegend);
 | 
			
		||||
 | 
			
		||||
    // MODTODO
 | 
			
		||||
    // Possibly replace with PdmChildArrayField
 | 
			
		||||
    //caf::PdmField<std::list<caf::PdmPointer<RimLegendConfig> > >    m_legendConfigData;
 | 
			
		||||
    caf::PdmChildArrayField<RimLegendConfig*>    m_legendConfigData;
 | 
			
		||||
    caf::PdmChildArrayField<RimLegendConfig*>   m_legendConfigData;
 | 
			
		||||
    caf::PdmPtrField<RimLegendConfig*>            m_legendConfigPtrField;
 | 
			
		||||
 | 
			
		||||
    caf::PdmChildField<RimLegendConfig*>        obsoleteField_legendConfig;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user