mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Use concept of parentObjectsOfType to avoid dynamic cast in application code.
p4#: 20887
This commit is contained in:
parent
3c446c4018
commit
973eb5c8f7
@ -98,23 +98,17 @@ void RimStatisticalCalculation::defineUiOrdering(QString uiConfigName, caf::PdmU
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimStatisticalCollection* RimStatisticalCalculation::parent()
|
||||
RimStatisticalCollection* RimStatisticalCalculation::parentStatisticalCollection()
|
||||
{
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
this->parentObjects(parentObjects);
|
||||
std::vector<RimStatisticalCollection*> parentObjects;
|
||||
this->parentObjectsOfType(parentObjects);
|
||||
|
||||
RimStatisticalCollection* parentObject = NULL;
|
||||
for (size_t i = 0; i < parentObjects.size(); i++)
|
||||
if (parentObjects.size() > 0)
|
||||
{
|
||||
if (parentObject) continue;
|
||||
|
||||
caf::PdmObject* obj = parentObjects[i];
|
||||
parentObject = dynamic_cast<RimStatisticalCollection*>(obj);
|
||||
return parentObjects[0];
|
||||
}
|
||||
|
||||
CVF_ASSERT(parentObject);
|
||||
|
||||
return parentObject;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -152,6 +146,9 @@ void RimStatisticalCalculation::computeStatistics()
|
||||
|
||||
QList<QPair<RimDefines::ResultCatType, QString> > resultSpecification;
|
||||
|
||||
resultSpecification.append(qMakePair(RimDefines::DYNAMIC_NATIVE, QString("PRESSURE")));
|
||||
|
||||
/*
|
||||
{
|
||||
QStringList resultNames = sourceCases.at(0)->results(RifReaderInterface::MATRIX_RESULTS)->resultNames(RimDefines::DYNAMIC_NATIVE);
|
||||
foreach(QString resultName, resultNames)
|
||||
@ -167,6 +164,7 @@ void RimStatisticalCalculation::computeStatistics()
|
||||
resultSpecification.append(qMakePair(RimDefines::STATIC_NATIVE, resultName));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
RigStatistics stat(sourceCases, timeStepIndices, statisticsConfig, resultCase);
|
||||
stat.evaluateStatistics(resultSpecification);
|
||||
@ -208,22 +206,10 @@ void RimStatisticalCalculation::getSourceCases(cvf::Collection<RigEclipseCase>&
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimIdenticalGridCaseGroup* RimStatisticalCalculation::caseGroup()
|
||||
{
|
||||
RimStatisticalCollection* statColl = parent();
|
||||
if (statColl)
|
||||
RimStatisticalCollection* parentCollection = parentStatisticalCollection();
|
||||
if (parentCollection)
|
||||
{
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
statColl->parentObjects(parentObjects);
|
||||
|
||||
RimIdenticalGridCaseGroup* gridCaseGroup = NULL;
|
||||
for (size_t i = 0; i < parentObjects.size(); i++)
|
||||
{
|
||||
if (gridCaseGroup) continue;
|
||||
|
||||
caf::PdmObject* obj = parentObjects[i];
|
||||
gridCaseGroup = dynamic_cast<RimIdenticalGridCaseGroup*>(obj);
|
||||
}
|
||||
|
||||
return gridCaseGroup;
|
||||
return parentCollection->parentCaseGroup();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -51,7 +51,7 @@ public:
|
||||
|
||||
caf::PdmField<QString> m_resultName;
|
||||
|
||||
RimStatisticalCollection* parent();
|
||||
RimStatisticalCollection* parentStatisticalCollection();
|
||||
|
||||
virtual void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) const;
|
||||
void computeStatistics();
|
||||
|
@ -51,7 +51,7 @@ RimStatisticalCollection::~RimStatisticalCollection()
|
||||
RimStatisticalCalculation* RimStatisticalCollection::createAndAppendStatisticalCalculation()
|
||||
{
|
||||
RimStatisticalCalculation* newObject = new RimStatisticalCalculation;
|
||||
RimIdenticalGridCaseGroup* gridCaseGroup = parent();
|
||||
RimIdenticalGridCaseGroup* gridCaseGroup = parentCaseGroup();
|
||||
|
||||
CVF_ASSERT(gridCaseGroup);
|
||||
CVF_ASSERT(gridCaseGroup->mainGrid());
|
||||
@ -68,21 +68,16 @@ RimStatisticalCalculation* RimStatisticalCollection::createAndAppendStatisticalC
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimIdenticalGridCaseGroup* RimStatisticalCollection::parent()
|
||||
RimIdenticalGridCaseGroup* RimStatisticalCollection::parentCaseGroup()
|
||||
{
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
this->parentObjects(parentObjects);
|
||||
std::vector<RimIdenticalGridCaseGroup*> parentObjects;
|
||||
this->parentObjectsOfType(parentObjects);
|
||||
|
||||
RimIdenticalGridCaseGroup* gridCaseGroup = NULL;
|
||||
for (size_t i = 0; i < parentObjects.size(); i++)
|
||||
if (parentObjects.size() > 0)
|
||||
{
|
||||
if (gridCaseGroup) continue;
|
||||
|
||||
caf::PdmObject* obj = parentObjects[i];
|
||||
gridCaseGroup = dynamic_cast<RimIdenticalGridCaseGroup*>(obj);
|
||||
return parentObjects[0];
|
||||
}
|
||||
|
||||
return gridCaseGroup;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
|
||||
RimStatisticalCalculation* createAndAppendStatisticalCalculation();
|
||||
|
||||
RimIdenticalGridCaseGroup* parent();
|
||||
RimIdenticalGridCaseGroup* parentCaseGroup();
|
||||
|
||||
private:
|
||||
|
||||
|
@ -408,13 +408,11 @@ void RimUiTreeModelPdm::addInputProperty(const QModelIndex& itemIndex, const QSt
|
||||
RimInputPropertyCollection* inputPropertyCollection = dynamic_cast<RimInputPropertyCollection*>(currentItem->dataObject().p());
|
||||
CVF_ASSERT(inputPropertyCollection);
|
||||
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
inputPropertyCollection->parentObjects(parentObjects);
|
||||
|
||||
|
||||
std::vector<RimInputReservoir*> parentObjects;
|
||||
inputPropertyCollection->parentObjectsOfType(parentObjects);
|
||||
CVF_ASSERT(parentObjects.size() == 1);
|
||||
|
||||
RimInputReservoir* inputReservoir = dynamic_cast<RimInputReservoir*>(parentObjects[0]);
|
||||
RimInputReservoir* inputReservoir = parentObjects[0];
|
||||
CVF_ASSERT(inputReservoir);
|
||||
if (inputReservoir)
|
||||
{
|
||||
@ -441,18 +439,18 @@ void RimUiTreeModelPdm::deleteInputProperty(const QModelIndex& itemIndex)
|
||||
// Remove item from UI tree model before delete of project data structure
|
||||
removeRow(itemIndex.row(), itemIndex.parent());
|
||||
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
object->parentObjects(parentObjects);
|
||||
std::vector<RimInputPropertyCollection*> parentObjects;
|
||||
object->parentObjectsOfType(parentObjects);
|
||||
CVF_ASSERT(parentObjects.size() == 1);
|
||||
|
||||
RimInputPropertyCollection* inputPropertyCollection = dynamic_cast<RimInputPropertyCollection*>(parentObjects[0]);
|
||||
RimInputPropertyCollection* inputPropertyCollection = parentObjects[0];
|
||||
if (!inputPropertyCollection) return;
|
||||
|
||||
std::vector<caf::PdmObject*> parentObjects2;
|
||||
inputPropertyCollection->parentObjects(parentObjects2);
|
||||
std::vector<RimInputReservoir*> parentObjects2;
|
||||
inputPropertyCollection->parentObjectsOfType(parentObjects2);
|
||||
CVF_ASSERT(parentObjects2.size() == 1);
|
||||
|
||||
RimInputReservoir* inputReservoir = dynamic_cast<RimInputReservoir*>(parentObjects2[0]);
|
||||
RimInputReservoir* inputReservoir = parentObjects2[0];
|
||||
if (!inputReservoir) return;
|
||||
|
||||
inputReservoir->removeProperty(inputProperty);
|
||||
@ -475,7 +473,7 @@ RimStatisticalCalculation* RimUiTreeModelPdm::addStatisticalCalculation(const QM
|
||||
if (dynamic_cast<RimStatisticalCalculation*>(currentItem->dataObject().p()))
|
||||
{
|
||||
RimStatisticalCalculation* currentObject = dynamic_cast<RimStatisticalCalculation*>(currentItem->dataObject().p());
|
||||
caseGroup = currentObject->parent();
|
||||
caseGroup = currentObject->parentStatisticalCollection();
|
||||
parentCollectionItem = currentItem->parent();
|
||||
position = itemIndex.row();
|
||||
collectionIndex = itemIndex.parent();
|
||||
|
@ -647,18 +647,18 @@ void RimUiTreeView::slotWriteInputProperty()
|
||||
// Find input reservoir for this property
|
||||
RimInputReservoir* inputReservoir = NULL;
|
||||
{
|
||||
std::vector<caf::PdmObject*> parentObjects;
|
||||
inputProperty->parentObjects(parentObjects);
|
||||
std::vector<RimInputPropertyCollection*> parentObjects;
|
||||
inputProperty->parentObjectsOfType(parentObjects);
|
||||
CVF_ASSERT(parentObjects.size() == 1);
|
||||
|
||||
RimInputPropertyCollection* inputPropertyCollection = dynamic_cast<RimInputPropertyCollection*>(parentObjects[0]);
|
||||
RimInputPropertyCollection* inputPropertyCollection = parentObjects[0];
|
||||
if (!inputPropertyCollection) return;
|
||||
|
||||
std::vector<caf::PdmObject*> parentObjects2;
|
||||
inputPropertyCollection->parentObjects(parentObjects2);
|
||||
std::vector<RimInputReservoir*> parentObjects2;
|
||||
inputPropertyCollection->parentObjectsOfType(parentObjects2);
|
||||
CVF_ASSERT(parentObjects2.size() == 1);
|
||||
|
||||
inputReservoir = dynamic_cast<RimInputReservoir*>(parentObjects2[0]);
|
||||
inputReservoir = parentObjects2[0];
|
||||
}
|
||||
|
||||
if (!inputReservoir) return;
|
||||
|
Loading…
Reference in New Issue
Block a user