Added support for asyncronous commands

Implemented command to issue a recompute of statistics for a statistics case on project loading
p4#: 22417
This commit is contained in:
Magne Sjaastad
2013-09-16 07:42:30 +02:00
parent 39178578de
commit 91adbe79bf
5 changed files with 251 additions and 15 deletions

View File

@@ -461,6 +461,7 @@ void RimStatisticsCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField
else
{
computeStatistics();
updateConnectedEditorsAndReservoirViews();
}
m_calculateEditCommand = false;
}
@@ -642,6 +643,28 @@ bool RimStatisticsCase::hasComputedStatistics() const
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimStatisticsCase::updateConnectedEditorsAndReservoirViews()
{
for (size_t i = 0; i < reservoirViews.size(); ++i)
{
if (reservoirViews[i])
{
// As new result might have been introduced, update all editors connected
reservoirViews[i]->cellResult->updateConnectedEditors();
// It is usually not needed to create new display model, but if any derived geometry based on generated data (from Octave)
// a full display model rebuild is required
reservoirViews[i]->scheduleCreateDisplayModelAndRedraw();
}
}
this->updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -650,16 +673,7 @@ void RimStatisticsCase::clearComputedStatistics()
reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->clearAllResults();
reservoirData()->results(RifReaderInterface::FRACTURE_RESULTS)->clearAllResults();
for (size_t i = 0; i < reservoirViews().size(); i++)
{
RimReservoirView* reservoirView = reservoirViews()[i];
CVF_ASSERT(reservoirView);
reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::ACTIVE);
reservoirView->createDisplayModelAndRedraw();
}
this->updateConnectedEditors();
updateConnectedEditorsAndReservoirViews();
}
//--------------------------------------------------------------------------------------------------