#3182 Clean up well log plot names

This commit is contained in:
Gaute Lindkvist 2018-08-07 13:34:13 +02:00
parent c869ce4430
commit a2c3c9d03f
24 changed files with 833 additions and 468 deletions

View File

@ -90,23 +90,8 @@ void RicNewWellBoreStabilityPlotFeature::onActionTriggered(bool isChecked)
progInfo.setProgressDescription("Creating plot and formation track");
progInfo.setNextProgressIncrement(2);
RimGeoMechCase* geoMechCase = geoMechView->geoMechCase();
double rkb = 0.0;
double tvdmsl = 0.0;
RigWellPath* wellPathGeometry = selectedWellPath->wellPathGeometry();
if (wellPathGeometry)
{
rkb = wellPathGeometry->rkbDiff();
const std::vector<cvf::Vec3d>& wellPathPoints = wellPathGeometry->wellPathPoints();
if (!wellPathPoints.empty())
{
tvdmsl = std::abs(wellPathPoints.front()[2]);
}
}
QString timeStepName = geoMechCase->timeStepName(view->currentTimeStep());
QString plotNameFormat("Well Bore Stability %1, %2, Air gap: %3 m, Water Depth: %4 m");
QString plotName = plotNameFormat.arg(selectedWellPath->name()).arg(timeStepName).arg(rkb).arg(tvdmsl);
QString plotName("Well Bore Stability");
RimWellLogPlot* plot = RicNewWellLogPlotFeatureImpl::createWellLogPlot(false, plotName);
createFormationTrack(plot, selectedWellPath, geoMechCase);
progInfo.incrementProgressAndUpdateNextStep(3, "Creating casing shoe size track");
@ -116,11 +101,12 @@ void RicNewWellBoreStabilityPlotFeature::onActionTriggered(bool isChecked)
progInfo.incrementProgressAndUpdateNextStep(15, "Creating angles track");
createAnglesTrack(plot, selectedWellPath, geoMechView);
progInfo.incrementProgressAndUpdateNextStep(5, "Updating all tracks");
plot->enableAutoName(true);
plot->setPlotTitleVisible(true);
plot->setTrackLegendsVisible(true);
plot->setTrackLegendsHorizontal(true);
plot->setDepthType(RimWellLogPlot::TRUE_VERTICAL_DEPTH);
plot->setDepthAutoZoom(true);
plot->setDepthAutoZoom(true);
RicNewWellLogPlotFeatureImpl::updateAfterCreation(plot);
progInfo.incrementProgress();

View File

@ -108,7 +108,11 @@ ${CMAKE_CURRENT_LIST_DIR}/Rim3dWellLogExtractionCurve.h
${CMAKE_CURRENT_LIST_DIR}/Rim3dWellLogRftCurve.h
${CMAKE_CURRENT_LIST_DIR}/RimVirtualPerforationResults.h
${CMAKE_CURRENT_LIST_DIR}/RimLegendConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogCurveNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogPlotNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogExtractionCurveNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogFileCurveNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogRftCurveNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimWellLogCurveCommonDataSource.h
)
@ -222,7 +226,11 @@ ${CMAKE_CURRENT_LIST_DIR}/Rim3dWellLogExtractionCurve.cpp
${CMAKE_CURRENT_LIST_DIR}/Rim3dWellLogRftCurve.cpp
${CMAKE_CURRENT_LIST_DIR}/RimVirtualPerforationResults.cpp
${CMAKE_CURRENT_LIST_DIR}/RimLegendConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogCurveNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogPlotNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogExtractionCurveNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogFileCurveNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogRftCurveNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimWellLogCurveCommonDataSource.cpp
)

View File

@ -27,7 +27,7 @@
#include "cvfObject.h"
#include "cvfVector3.h"
#include "RimWellLogCurveNameConfig.h"
#include "RimNameConfig.h"
class Riv3dWellLogCurveGeometryGenerator;
@ -35,7 +35,7 @@ class Riv3dWellLogCurveGeometryGenerator;
///
///
//==================================================================================================
class Rim3dWellLogCurve : public caf::PdmObject, public RimCurveNameConfigHolderInterface
class Rim3dWellLogCurve : public caf::PdmObject, public RimNameConfigHolderInterface
{
CAF_PDM_HEADER_INIT;

View File

@ -33,7 +33,7 @@
#include "RimEclipseCase.h"
#include "RimGeoMechCase.h"
#include "Rim3dView.h"
#include "RimWellLogCurveNameConfig.h"
#include "RimWellLogExtractionCurveNameConfig.h"
#include "RimCase.h"
#include "RimEclipseCase.h"
#include "RimEclipseCellColors.h"

View File

@ -20,7 +20,7 @@
#include "RigWellLogFile.h"
#include "RimWellLogCurveNameConfig.h"
#include "RimWellLogFileCurveNameConfig.h"
#include "RimWellLogFile.h"
#include "RimWellLogFileChannel.h"
#include "RimWellPath.h"

View File

@ -21,7 +21,7 @@
#include "RifReaderEclipseRft.h"
#include "RigWellLogCurveData.h"
#include "RimWellLogCurveNameConfig.h"
#include "RimWellLogRftCurveNameConfig.h"
#include "RimEclipseResultCase.h"
#include "RimTools.h"
#include "RimWellPath.h"

View File

@ -0,0 +1,155 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// + m_addWellName {m_fieldValue=true m_defaultFieldValue=true } caf::PdmField<bool>
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimProject.h"
#include "RimNameConfig.h"
#include "Rim3dWellLogCurve.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimNameConfig, "RimCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimNameConfig::RimNameConfig(const RimNameConfigHolderInterface* configHolder /*= nullptr*/)
: m_configHolder(configHolder)
{
CAF_PDM_InitObject("Curve Name Generator", "", "", "");
CAF_PDM_InitField(&m_isUsingAutoName, "IsUsingAutoName", true, "Add Automatic Name Tags", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_customName, "CustomCurveName", "Custom Name Part", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_autoName, "AutoCurveName", "Full Curve Name", "", "", "");
m_autoName.registerGetMethod(this, &RimNameConfig::autoName);
m_autoName.xmlCapability()->disableIO();
m_autoName.uiCapability()->setUiReadOnly(true);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimNameConfig::~RimNameConfig()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimNameConfig::isUsingAutoName() const
{
return m_isUsingAutoName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimNameConfig::setUsingAutoName(bool useAutoName)
{
m_isUsingAutoName = useAutoName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimNameConfig::customName() const
{
return m_customName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimNameConfig::nameField()
{
return &m_autoName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimNameConfig::name() const
{
return m_autoName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmUiGroup* RimNameConfig::createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
caf::PdmUiGroup* nameGroup = uiOrdering.addNewGroup("Curve Name");
nameGroup->add(&m_customName);
nameGroup->add(&m_autoName);
nameGroup->add(&m_isUsingAutoName);
return nameGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimNameConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
updateAllSettings();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimNameConfig::autoName() const
{
return m_configHolder->createAutoName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimNameConfig::setCustomName(const QString& name)
{
m_customName = name;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimNameConfig::updateAllSettings()
{
m_isUsingAutoName.uiCapability()->updateConnectedEditors();
m_autoName.uiCapability()->updateConnectedEditors();
m_customName.uiCapability()->updateConnectedEditors();
RimNameConfigHolderInterface* holder;
this->firstAncestorOrThisOfTypeAsserted(holder);
holder->updateHolder();
caf::PdmObject* pdmObject = dynamic_cast<caf::PdmObject*>(holder);
if (pdmObject)
{
pdmObject->updateConnectedEditors();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimNameConfig::initAfterRead()
{
updateAllSettings();
}

View File

@ -0,0 +1,70 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmProxyValueField.h"
//==================================================================================================
///
///
//==================================================================================================
class RimNameConfigHolderInterface
{
public:
virtual QString createAutoName() const = 0;
virtual void updateHolder() {}
};
//==================================================================================================
///
///
//==================================================================================================
class RimNameConfig : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimNameConfig(const RimNameConfigHolderInterface* configHolder = nullptr);
virtual ~RimNameConfig();
bool isUsingAutoName() const;
void setUsingAutoName(bool useAutoName);
QString customName() const;
void setCustomName(const QString& name);
caf::PdmFieldHandle* nameField();
QString name() const;
virtual caf::PdmUiGroup* createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
QString autoName() const;
virtual void updateAllSettings();
virtual void initAfterRead() override;
protected:
caf::PdmField<bool> m_isUsingAutoName;
caf::PdmField<QString> m_customName;
caf::PdmProxyValueField<QString> m_autoName;
const RimNameConfigHolderInterface* m_configHolder;
};

View File

@ -20,6 +20,7 @@
#include "RimEnsembleCurveSet.h"
#include "RimEnsembleCurveSetCollection.h"
#include "RimNameConfig.h"
#include "RimSummaryCrossPlot.h"
#include "RimSummaryCurve.h"
#include "RimSummaryCurveCollection.h"
@ -152,7 +153,7 @@ void RimPlotCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, con
else if (changedField == &m_curveName)
{
m_customCurveName = m_curveName;
updateCurveNameAndUpdatePlotLegend();
updateCurveNameAndUpdatePlotLegendAndTitle();
}
else if (&m_curveColor == changedField
|| &m_curveThickness == changedField
@ -182,7 +183,7 @@ void RimPlotCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, con
m_customCurveName = createCurveAutoName();
}
updateCurveNameAndUpdatePlotLegend();
updateCurveNameAndUpdatePlotLegendAndTitle();
}
else if (changedField == &m_showLegend)
{
@ -259,13 +260,14 @@ void RimPlotCurve::initAfterRead()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotCurve::updateCurvePresentation(bool updatePlotLegend)
void RimPlotCurve::updateCurvePresentation(bool updatePlotLegendAndTitle)
{
this->updateCurveVisibility(updatePlotLegend);
this->updateCurveVisibility(updatePlotLegendAndTitle);
if (updatePlotLegend)
if (updatePlotLegendAndTitle)
{
this->updateCurveNameAndUpdatePlotLegend();
this->updateCurveNameAndUpdatePlotLegendAndTitle();
this->updatePlotTitle();
}
else
{
@ -351,7 +353,7 @@ void RimPlotCurve::setCurveVisiblity(bool visible)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotCurve::updateCurveNameAndUpdatePlotLegend()
void RimPlotCurve::updateCurveNameAndUpdatePlotLegendAndTitle()
{
if (m_isUsingAutoName)
{
@ -393,6 +395,19 @@ void RimPlotCurve::updateOptionSensitivity()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotCurve::updatePlotTitle()
{
RimNameConfigHolderInterface* nameConfigHolder = nullptr;
this->firstAncestorOrThisOfType(nameConfigHolder);
if (nameConfigHolder)
{
nameConfigHolder->updateHolder();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -92,7 +92,7 @@ public:
bool isCurveVisible() const;
void setCurveVisiblity(bool visible);
void updateCurveNameAndUpdatePlotLegend();
void updateCurveNameAndUpdatePlotLegendAndTitle();
void updateCurveNameNoLegendUpdate();
QString curveName() const { return m_curveName; }
@ -115,9 +115,10 @@ protected:
virtual void updateZoomInParentPlot() = 0;
virtual void onLoadDataAndUpdate(bool updateParentPlot) = 0;
virtual void initAfterRead() override;
void updateCurvePresentation(bool updatePlotLegend);
void updateCurvePresentation(bool updatePlotLegendAndTitle);
void updateOptionSensitivity();
void updatePlotTitle();
protected:

View File

@ -1,275 +0,0 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// + m_addWellName {m_fieldValue=true m_defaultFieldValue=true } caf::PdmField<bool>
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimProject.h"
#include "RimWellLogCurveNameConfig.h"
#include "Rim3dWellLogCurve.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimCurveNameConfig, "RimCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCurveNameConfig::RimCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder /*= nullptr*/)
: m_configHolder(configHolder)
{
CAF_PDM_InitObject("Curve Name Generator", "", "", "");
CAF_PDM_InitField(&m_isUsingAutoName, "IsUsingAutoName", true, "Generate Name Automatically", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_customName, "CustomCurveName", "Curve Name", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_autoName, "AutoCurveName", "Curve Name", "", "", "");
m_autoName.registerGetMethod(this, &RimCurveNameConfig::autoName);
m_autoName.registerSetMethod(this, &RimCurveNameConfig::setCustomName);
m_autoName.xmlCapability()->disableIO();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCurveNameConfig::~RimCurveNameConfig()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimCurveNameConfig::isUsingAutoName() const
{
return m_isUsingAutoName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimCurveNameConfig::nameField()
{
if (isUsingAutoName())
{
return &m_autoName;
}
return &m_customName;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimCurveNameConfig::name() const
{
if (isUsingAutoName())
{
return m_autoName();
}
return m_customName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmUiGroup* RimCurveNameConfig::createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
caf::PdmUiGroup* nameGroup = uiOrdering.addNewGroup("Curve Name");
nameGroup->add(&m_isUsingAutoName);
return nameGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCurveNameConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
if (changedField == &m_customName)
{
m_isUsingAutoName = false;
}
if (changedField == &m_isUsingAutoName && !isUsingAutoName())
{
m_customName = m_configHolder->createAutoName();
}
updateAllSettings();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimCurveNameConfig::autoName() const
{
return m_configHolder->createAutoName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCurveNameConfig::setCustomName(const QString& name)
{
m_isUsingAutoName = false;
m_customName = name;
updateAllSettings();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCurveNameConfig::updateAllSettings()
{
m_isUsingAutoName.uiCapability()->updateConnectedEditors();
m_autoName.uiCapability()->updateConnectedEditors();
m_customName.uiCapability()->updateConnectedEditors();
RimCurveNameConfigHolderInterface* holder;
this->firstAncestorOrThisOfTypeAsserted(holder);
holder->updateHolder();
caf::PdmObject* pdmObject = dynamic_cast<caf::PdmObject*>(holder);
if (pdmObject)
{
pdmObject->updateConnectedEditors();
}
}
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogExtractionCurveNameConfig, "RimWellLogExtractionCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogExtractionCurveNameConfig::RimWellLogExtractionCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder)
: RimCurveNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log Extraction Curve Name Generator", "", "", "");
CAF_PDM_InitField(&m_addCaseName, "AddCaseName", false, "Add Case Name To Auto Name", "", "", "");
CAF_PDM_InitField(&m_addProperty, "AddProperty", true, "Add Property Type To Auto Name", "", "", "");
CAF_PDM_InitField(&m_addWellName, "AddWellName", true, "Add Well Name To Auto Name", "", "", "");
CAF_PDM_InitField(&m_addTimestep, "AddTimeStep", true, "Add Time Step To Auto Name", "", "", "");
CAF_PDM_InitField(&m_addDate, "AddDate", true, "Add Date To Auto Name", "", "", "");
m_customName = "Extraction Curve";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmUiGroup* RimWellLogExtractionCurveNameConfig::createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
caf::PdmUiGroup* nameGroup = RimCurveNameConfig::createUiGroup(uiConfigName, uiOrdering);
nameGroup->add(&m_addCaseName);
nameGroup->add(&m_addProperty);
nameGroup->add(&m_addWellName);
nameGroup->add(&m_addTimestep);
nameGroup->add(&m_addDate);
return nameGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addCaseName() const
{
return m_addCaseName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addProperty() const
{
return m_addProperty();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addWellName() const
{
return m_addWellName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addTimeStep() const
{
return m_addTimestep();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addDate() const
{
return m_addDate();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurveNameConfig::updateAllSettings()
{
m_addCaseName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addProperty.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addWellName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addTimestep.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addDate.uiCapability()->setUiReadOnly(!isUsingAutoName());
RimCurveNameConfig::updateAllSettings();
}
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogFileCurveNameConfig, "RimWellLogFileCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogFileCurveNameConfig::RimWellLogFileCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder)
: RimCurveNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log File Curve Name Generator", "", "", "");
m_customName = "Las Curve";
}
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogRftCurveNameConfig, "RimWellLogRftCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogRftCurveNameConfig::RimWellLogRftCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder)
: RimCurveNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log Rft Curve Name Generator", "", "", "");
m_customName = "Rft Curve";
}

View File

@ -1,116 +0,0 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmProxyValueField.h"
//==================================================================================================
///
///
//==================================================================================================
class RimCurveNameConfigHolderInterface
{
public:
virtual QString createAutoName() const = 0;
virtual void updateHolder() {}
};
//==================================================================================================
///
///
//==================================================================================================
class RimCurveNameConfig : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder = nullptr);
virtual ~RimCurveNameConfig();
bool isUsingAutoName() const;
caf::PdmFieldHandle* nameField();
QString name() const;
virtual caf::PdmUiGroup* createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
QString autoName() const;
void setCustomName(const QString& name);
virtual void updateAllSettings();
protected:
caf::PdmField<bool> m_isUsingAutoName;
caf::PdmField<QString> m_customName;
caf::PdmProxyValueField<QString> m_autoName;
const RimCurveNameConfigHolderInterface* m_configHolder;
};
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogExtractionCurveNameConfig : public RimCurveNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogExtractionCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder = nullptr);
virtual caf::PdmUiGroup* createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
bool addCaseName() const;
bool addProperty() const;
bool addWellName() const;
bool addTimeStep() const;
bool addDate() const;
protected:
virtual void updateAllSettings();
private:
caf::PdmField<bool> m_addCaseName;
caf::PdmField<bool> m_addProperty;
caf::PdmField<bool> m_addWellName;
caf::PdmField<bool> m_addTimestep;
caf::PdmField<bool> m_addDate;
};
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogFileCurveNameConfig : public RimCurveNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogFileCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder = nullptr);
};
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogRftCurveNameConfig : public RimCurveNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogRftCurveNameConfig(const RimCurveNameConfigHolderInterface* configHolder = nullptr);
};

View File

@ -302,7 +302,7 @@ void RimWellLogExtractionCurve::fieldChangedByUi(const caf::PdmFieldHandle* chan
changedField == &m_addDateToCurveName)
{
this->uiCapability()->updateConnectedEditors();
updateCurveNameAndUpdatePlotLegend();
updateCurveNameAndUpdatePlotLegendAndTitle();
}
}

View File

@ -0,0 +1,113 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimWellLogExtractionCurveNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogExtractionCurveNameConfig, "RimWellLogExtractionCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogExtractionCurveNameConfig::RimWellLogExtractionCurveNameConfig(const RimNameConfigHolderInterface* configHolder)
: RimNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log Extraction Curve Name Generator", "", "", "");
CAF_PDM_InitField(&m_addCaseName, "AddCaseName", false, "Add Case Name", "", "", "");
CAF_PDM_InitField(&m_addProperty, "AddProperty", true, "Add Property Type", "", "", "");
CAF_PDM_InitField(&m_addWellName, "AddWellName", true, "Add Well Name", "", "", "");
CAF_PDM_InitField(&m_addTimestep, "AddTimeStep", true, "Add Time Step", "", "", "");
CAF_PDM_InitField(&m_addDate, "AddDate", true, "Add Date", "", "", "");
m_customName = "Extraction Curve";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmUiGroup* RimWellLogExtractionCurveNameConfig::createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
caf::PdmUiGroup* nameGroup = RimNameConfig::createUiGroup(uiConfigName, uiOrdering);
nameGroup->add(&m_addCaseName);
nameGroup->add(&m_addProperty);
nameGroup->add(&m_addWellName);
nameGroup->add(&m_addTimestep);
nameGroup->add(&m_addDate);
return nameGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addCaseName() const
{
return m_addCaseName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addProperty() const
{
return m_addProperty();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addWellName() const
{
return m_addWellName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addTimeStep() const
{
return m_addTimestep();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogExtractionCurveNameConfig::addDate() const
{
return m_addDate();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurveNameConfig::updateAllSettings()
{
m_addCaseName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addProperty.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addWellName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addTimestep.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addDate.uiCapability()->setUiReadOnly(!isUsingAutoName());
RimNameConfig::updateAllSettings();
}

View File

@ -0,0 +1,52 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RimNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogExtractionCurveNameConfig : public RimNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogExtractionCurveNameConfig(const RimNameConfigHolderInterface* configHolder = nullptr);
virtual caf::PdmUiGroup* createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
bool addCaseName() const;
bool addProperty() const;
bool addWellName() const;
bool addTimeStep() const;
bool addDate() const;
protected:
virtual void updateAllSettings();
private:
caf::PdmField<bool> m_addCaseName;
caf::PdmField<bool> m_addProperty;
caf::PdmField<bool> m_addWellName;
caf::PdmField<bool> m_addTimestep;
caf::PdmField<bool> m_addDate;
};

View File

@ -0,0 +1,37 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimWellLogFileCurveNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogFileCurveNameConfig, "RimWellLogFileCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogFileCurveNameConfig::RimWellLogFileCurveNameConfig(const RimNameConfigHolderInterface* configHolder)
: RimNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log File Curve Name Generator", "", "", "");
m_customName = "Las Curve";
}

View File

@ -0,0 +1,34 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RimNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogFileCurveNameConfig : public RimNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogFileCurveNameConfig(const RimNameConfigHolderInterface* configHolder = nullptr);
};

View File

@ -22,6 +22,7 @@
#include "RiaApplication.h"
#include "RigWellLogCurveData.h"
#include "RigWellPath.h"
#include "RimGeoMechCase.h"
#include "RimEclipseCase.h"
@ -80,7 +81,7 @@ RimWellLogPlot::RimWellLogPlot()
m_viewer = nullptr;
CAF_PDM_InitField(&m_userName, "PlotDescription", QString("Well Log Plot"),"Name", "", "", "");
CAF_PDM_InitField(&m_userName_OBSOLETE, "PlotDescription", QString(""),"Name", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_commonDataSource, "CommonDataSource", "Common Data Source", "", "Change the Data Source of All Curves in the Plot", "");
m_commonDataSource = new RimWellLogCurveCommonDataSource;
@ -108,7 +109,10 @@ RimWellLogPlot::RimWellLogPlot()
m_tracks.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_nameConfig, "NameConfig", "", "", "", "");
m_nameConfig = new RimWellLogExtractionCurveNameConfig(this);
m_nameConfig = new RimWellLogPlotNameConfig(this);
m_nameConfig.uiCapability()->setUiTreeHidden(true);
m_nameConfig.uiCapability()->setUiTreeChildrenHidden(true);
m_nameConfig->setUsingAutoName(false);
m_minAvailableDepth = HUGE_VAL;
m_maxAvailableDepth = -HUGE_VAL;
@ -169,11 +173,6 @@ void RimWellLogPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
{
updateDepthZoom();
}
else if (changedField == &m_userName)
{
updateMdiWindowTitle();
updatePlotTitle();
}
else if ( changedField == &m_depthType )
{
RimWellAllocationPlot* wellAllocPlot;
@ -439,6 +438,14 @@ void RimWellLogPlot::setDepthAutoZoom(bool on)
m_isAutoScaleDepthEnabled.uiCapability()->updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogPlot::enableAutoName(bool enableAutoName)
{
m_nameConfig->setUsingAutoName(enableAutoName);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -613,39 +620,78 @@ void RimWellLogPlot::uiOrderingForPlotSettings(caf::PdmUiOrdering& uiOrdering)
//--------------------------------------------------------------------------------------------------
QString RimWellLogPlot::createAutoName() const
{
RimCase* commonCase = m_commonDataSource->caseToApply();
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(commonCase);
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(commonCase);
QStringList generatedCurveName;
if (m_nameConfig->addWellName())
generatedCurveName.push_back(m_nameConfig->customName());
if (m_nameConfig->isUsingAutoName())
{
RimWellPath* wellPath = m_commonDataSource->wellPathToApply();
if (wellPath && !wellPath->name().isEmpty())
RimCase* commonCase = m_commonDataSource->caseToApply();
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(commonCase);
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(commonCase);
RimWellPath* commonWellPath = m_commonDataSource->wellPathToApply();
QStringList generatedProperties;
if (m_nameConfig->addCaseName() && commonCase)
{
generatedCurveName.push_back(wellPath->name());
generatedProperties.push_back(commonCase->caseUserDescription());
}
else if (!m_commonDataSource->simWellNameToApply().isEmpty())
if (m_nameConfig->addWellName())
{
generatedCurveName.push_back(m_commonDataSource->simWellNameToApply());
if (commonWellPath && !commonWellPath->name().isEmpty())
{
generatedProperties.push_back(commonWellPath->name());
}
else if (!m_commonDataSource->simWellNameToApply().isEmpty())
{
generatedProperties.push_back(m_commonDataSource->simWellNameToApply());
}
}
if (m_nameConfig->addTimeStep())
{
if (commonCase && m_commonDataSource->timeStepToApply() != -1)
{
generatedProperties.push_back(commonCase->timeStepName(m_commonDataSource->timeStepToApply()));
}
}
if (m_nameConfig->addAirGap())
{
if (commonWellPath)
{
RigWellPath* wellPathGeometry = commonWellPath->wellPathGeometry();
if (wellPathGeometry)
{
double rkb = wellPathGeometry->rkbDiff();
generatedProperties.push_back(QString("Air Gap = %1 m").arg(rkb));
}
}
}
if (m_nameConfig->addWaterDepth())
{
if (commonWellPath)
{
RigWellPath* wellPathGeometry = commonWellPath->wellPathGeometry();
if (wellPathGeometry)
{
const std::vector<cvf::Vec3d>& wellPathPoints = wellPathGeometry->wellPathPoints();
if (!wellPathPoints.empty())
{
double tvdmsl = std::abs(wellPathPoints.front()[2]);
generatedProperties.push_back(QString("Water Depth = %1 m").arg(tvdmsl));
}
}
}
}
if (!generatedProperties.empty())
{
generatedCurveName.push_back(generatedProperties.join(", "));
}
}
if (m_nameConfig->addCaseName() && commonCase)
{
generatedCurveName.push_back(commonCase->caseUserDescription());
}
if (m_nameConfig->addDate())
{
if (commonCase && m_commonDataSource->timeStepToApply() != -1)
{
generatedCurveName.push_back(commonCase->timeStepName(m_commonDataSource->timeStepToApply()));
}
}
return m_userName + QString(": ") + generatedCurveName.join(", ");
return generatedCurveName.join(": ");
}
//--------------------------------------------------------------------------------------------------
@ -653,6 +699,7 @@ QString RimWellLogPlot::createAutoName() const
//--------------------------------------------------------------------------------------------------
void RimWellLogPlot::updateHolder()
{
this->m_commonDataSource->updateDefaultOptions();
this->updatePlotTitle();
}
@ -671,7 +718,6 @@ void RimWellLogPlot::depthZoomMinMax(double* minimumDepth, double* maximumDepth)
//--------------------------------------------------------------------------------------------------
void RimWellLogPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
uiOrdering.add(&m_userName);
m_commonDataSource->uiOrdering(uiConfigName, uiOrdering);
uiOrderingForDepthAxis(uiOrdering);
uiOrderingForPlotSettings(uiOrdering);
@ -811,7 +857,7 @@ void RimWellLogPlot::detachAllCurves()
//--------------------------------------------------------------------------------------------------
void RimWellLogPlot::setDescription(const QString& description)
{
m_userName = description;
m_nameConfig->setCustomName(description);
}
//--------------------------------------------------------------------------------------------------
@ -819,7 +865,7 @@ void RimWellLogPlot::setDescription(const QString& description)
//--------------------------------------------------------------------------------------------------
QString RimWellLogPlot::description() const
{
return m_userName();
return createAutoName();
}
//--------------------------------------------------------------------------------------------------
@ -852,6 +898,10 @@ void RimWellLogPlot::deleteViewWidget()
void RimWellLogPlot::initAfterRead()
{
m_commonDataSource->updateDefaultOptions();
if (!m_userName_OBSOLETE().isEmpty())
{
m_nameConfig->setCustomName(m_userName_OBSOLETE());
}
}
//--------------------------------------------------------------------------------------------------
@ -1046,7 +1096,8 @@ void RimWellLogPlot::updatePlotTitle()
{
if (m_viewer)
{
m_viewer->setPlotTitle(this->windowTitle());
m_viewer->setPlotTitle(this->createAutoName());
}
}

View File

@ -27,7 +27,7 @@
#include "RiaDefines.h"
#include "RimViewWindow.h"
#include "RimWellLogCurveNameConfig.h"
#include "RimWellLogPlotNameConfig.h"
#include <QPointer>
@ -42,7 +42,7 @@ class RimWellPltPlot;
///
///
//==================================================================================================
class RimWellLogPlot : public RimViewWindow, public RimCurveNameConfigHolderInterface
class RimWellLogPlot : public RimViewWindow, public RimNameConfigHolderInterface
{
CAF_PDM_HEADER_INIT;
@ -110,7 +110,7 @@ public:
virtual void zoomAll() override;
void setDepthAutoZoom(bool on);
void enableAutoName(bool enableAutoName);
QString asciiDataForPlotExport() const;
@ -152,7 +152,7 @@ private:
void updatePlotTitle();
private:
caf::PdmField<QString> m_userName;
caf::PdmField<QString> m_userName_OBSOLETE;
caf::PdmChildField<RimWellLogCurveCommonDataSource*> m_commonDataSource;
caf::PdmChildArrayField<RimWellLogTrack*> m_tracks;
@ -168,7 +168,7 @@ private:
caf::PdmField<bool> m_showTrackLegends;
caf::PdmField<bool> m_trackLegendsHorizontal;
caf::PdmChildField<RimWellLogExtractionCurveNameConfig*> m_nameConfig;
caf::PdmChildField<RimWellLogPlotNameConfig*> m_nameConfig;
double m_minAvailableDepth;
double m_maxAvailableDepth;

View File

@ -0,0 +1,111 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimWellLogPlotNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogPlotNameConfig, "RimWellLogPlotNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogPlotNameConfig::RimWellLogPlotNameConfig(const RimNameConfigHolderInterface* configHolder)
: RimNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log Plot Name Generator", "", "", "");
CAF_PDM_InitField(&m_addCaseName, "AddCaseName", true, "Add Case Name", "", "", "");
CAF_PDM_InitField(&m_addWellName, "AddWellName", true, "Add Well Name", "", "", "");
CAF_PDM_InitField(&m_addTimestep, "AddTimeStep", true, "Add Time Step", "", "", "");
CAF_PDM_InitField(&m_addAirGap, "AddAirGap", true, "Add Air Gap", "", "", "");
CAF_PDM_InitField(&m_addWaterDepth, "AddWaterDepth", true, "Add Water Depth To Auto Name", "", "", "");
m_customName = "Well Log Plot";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmUiGroup* RimWellLogPlotNameConfig::createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
caf::PdmUiGroup* nameGroup = RimNameConfig::createUiGroup(uiConfigName, uiOrdering);
nameGroup->add(&m_addCaseName);
nameGroup->add(&m_addWellName);
nameGroup->add(&m_addTimestep);
nameGroup->add(&m_addAirGap);
nameGroup->add(&m_addWaterDepth);
return nameGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogPlotNameConfig::addCaseName() const
{
return m_addCaseName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogPlotNameConfig::addWellName() const
{
return m_addWellName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogPlotNameConfig::addTimeStep() const
{
return m_addTimestep();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogPlotNameConfig::addAirGap() const
{
return m_addAirGap();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimWellLogPlotNameConfig::addWaterDepth() const
{
return m_addWaterDepth();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogPlotNameConfig::updateAllSettings()
{
m_addCaseName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addWellName.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addTimestep.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addAirGap.uiCapability()->setUiReadOnly(!isUsingAutoName());
m_addWaterDepth.uiCapability()->setUiReadOnly(!isUsingAutoName());
RimNameConfig::updateAllSettings();
}

View File

@ -0,0 +1,52 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RimNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogPlotNameConfig : public RimNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogPlotNameConfig(const RimNameConfigHolderInterface* configHolder = nullptr);
virtual caf::PdmUiGroup* createUiGroup(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
bool addCaseName() const;
bool addWellName() const;
bool addTimeStep() const;
bool addAirGap() const;
bool addWaterDepth() const;
protected:
virtual void updateAllSettings();
private:
caf::PdmField<bool> m_addCaseName;
caf::PdmField<bool> m_addWellName;
caf::PdmField<bool> m_addTimestep;
caf::PdmField<bool> m_addAirGap;
caf::PdmField<bool> m_addWaterDepth;
};

View File

@ -0,0 +1,37 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimWellLogRftCurveNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
CAF_PDM_SOURCE_INIT(RimWellLogRftCurveNameConfig, "RimWellLogRftCurveNameConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellLogRftCurveNameConfig::RimWellLogRftCurveNameConfig(const RimNameConfigHolderInterface* configHolder)
: RimNameConfig(configHolder)
{
CAF_PDM_InitObject("Well Log Rft Curve Name Generator", "", "", "");
m_customName = "Rft Curve";
}

View File

@ -0,0 +1,34 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RimNameConfig.h"
//==================================================================================================
///
///
//==================================================================================================
class RimWellLogRftCurveNameConfig : public RimNameConfig
{
CAF_PDM_HEADER_INIT;
public:
RimWellLogRftCurveNameConfig(const RimNameConfigHolderInterface* configHolder = nullptr);
};

View File

@ -347,7 +347,7 @@ void RimSummaryCurveAutoName::fieldChangedByUi(const caf::PdmFieldHandle* change
RimSummaryCurve* summaryCurve = dynamic_cast<RimSummaryCurve*>(this->parentField()->ownerObject());
if (summaryCurve)
{
summaryCurve->updateCurveNameAndUpdatePlotLegend();
summaryCurve->updateCurveNameAndUpdatePlotLegendAndTitle();
summaryCurve->updateConnectedEditors();
return;