Start of calculation status/unlocking of Statistics results

p4#: 21143
This commit is contained in:
Jacob Støren 2013-04-05 13:29:47 +02:00
parent 700f18391b
commit d07783ebaa
4 changed files with 116 additions and 9 deletions

View File

@ -27,6 +27,8 @@
#include "RimStatisticsCaseEvaluator.h"
#include "RigMainGrid.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiPushButtonEditor.h"
namespace caf {
template<>
@ -39,6 +41,17 @@ namespace caf {
}
namespace caf {
template<>
void caf::AppEnum<RimStatisticsCase::CalculationStatus>::setUp()
{
addItem(RimStatisticsCase::CALCULATED, "CALCULATED", "OK");
addItem(RimStatisticsCase::NOT_CALCULATED, "NOT_CALCULATED", "Needs Calculation");
setDefault(RimStatisticsCase::NOT_CALCULATED);
}
}
CAF_PDM_SOURCE_INIT(RimStatisticsCase, "RimStatisticalCalculation");
@ -50,6 +63,18 @@ RimStatisticsCase::RimStatisticsCase()
{
CAF_PDM_InitObject("Case Group Statistics", ":/Histogram16x16.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_calculationStatus, "CalcStatus", "Status", "", "", "");
m_calculationStatus.setIOWritable(false);
m_calculationStatus.setIOReadable(false);
m_calculationStatus.setUiReadOnly(true);
m_calculationStatus.setUiEditorTypeName(caf::PdmUiLineEditor::uiEditorTypeName());
CAF_PDM_InitFieldNoDefault(&m_editingAllowed, "m_editingAllowed", "Editing Locked", "", "", "");
m_editingAllowed.setIOWritable(false);
m_editingAllowed.setIOReadable(false);
m_editingAllowed.setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
m_editingAllowed = "UNLOCK";
CAF_PDM_InitField(&m_selectionSummary, "SelectionSummary", QString(""), "Selected Properties", "", "", "");
m_selectionSummary.setIOWritable(false);
m_selectionSummary.setIOReadable(false);
@ -255,6 +280,9 @@ void RimStatisticsCase::computeStatistics()
reservoirView->createDisplayModelAndRedraw();
}
m_calculationStatus = CALCULATED;
m_calculationStatus.updateConnectedEditors();
m_editingAllowed = "UNLOCK";
}
//--------------------------------------------------------------------------------------------------
@ -298,6 +326,8 @@ RimIdenticalGridCaseGroup* RimStatisticsCase::caseGroup()
void RimStatisticsCase::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) const
{
uiOrdering.add(&caseName);
uiOrdering.add(&m_calculationStatus);
uiOrdering.add(&m_editingAllowed);
caf::PdmUiGroup * group = uiOrdering.addNewGroup("Property Selection");
group->add(&m_selectionSummary);
@ -401,6 +431,13 @@ void RimStatisticsCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField
updateSelectionListVisibilities();
}
if (&m_editingAllowed == changedField)
{
clearComputedStatistics();
m_calculationStatus = NOT_CALCULATED;
m_editingAllowed.setUiHidden(true);
}
updateSelectionSummaryLabel();
updatePercentileUiVisibility();
}
@ -496,3 +533,29 @@ void RimStatisticsCase::updatePercentileUiVisibility()
m_midPercentile .setUiHidden( !m_calculatePercentiles());
m_highPercentile.setUiHidden( !m_calculatePercentiles());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimStatisticsCase::hasComputedStatistics()
{
if ( reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->resultCount()
|| reservoirData()->results(RifReaderInterface::FRACTURE_RESULTS)->resultCount())
{
return true;
}
else
{
return false;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimStatisticsCase::clearComputedStatistics()
{
reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->clearAllResults();
reservoirData()->results(RifReaderInterface::FRACTURE_RESULTS)->clearAllResults();
}

View File

@ -47,6 +47,9 @@ public:
void setMainGrid(RigMainGrid* mainGrid);
void computeStatistics();
bool hasComputedStatistics();
void clearComputedStatistics();
virtual bool openEclipseGridFile();
RimCaseCollection* parentStatisticsCaseCollection();
@ -57,6 +60,12 @@ public:
HISTOGRAM_ESTIMATED
};
enum CalculationStatus
{
CALCULATED,
NOT_CALCULATED
};
private:
RimIdenticalGridCaseGroup* caseGroup();
@ -74,6 +83,9 @@ private:
virtual void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute );
// Fields
caf::PdmField< caf::AppEnum< CalculationStatus > > m_calculationStatus;
caf::PdmField< QString > m_editingAllowed;
caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > m_resultType;
caf::PdmField< caf::AppEnum< RimDefines::PorosityModelType > > m_porosityModel;

View File

@ -55,14 +55,36 @@ void PdmUiPushButtonEditor::configureAndUpdateUi(const QString& uiConfigName)
m_label->setText(field()->uiName(uiConfigName));
}
m_label->setEnabled(!field()->isUiReadOnly(uiConfigName));
//m_checkBox->setEnabled(!field()->isUiReadOnly(uiConfigName));
//m_label->setEnabled(!field()->isUiReadOnly(uiConfigName));
m_pushButton->setEnabled(!field()->isUiReadOnly(uiConfigName));
PdmUiPushButtonEditorAttribute attributes;
field()->ownerObject()->editorAttribute(field(), uiConfigName, &attributes);
//m_checkBox->setChecked(field()->uiValue().toBool());
QVariant variantFieldValue = field()->uiValue();
if (!attributes.m_buttonIcon.isNull())
{
m_pushButton->setIcon(attributes.m_buttonIcon);
}
else
{
if (variantFieldValue.type() == QVariant::Bool)
{
m_pushButton->setText(variantFieldValue.toBool() ? "On" : "Off" );
}
else
{
m_pushButton->setText(variantFieldValue.toString());
}
}
if (variantFieldValue.type() == QVariant::Bool)
{
m_pushButton->setChecked(field()->uiValue().toBool());
}
}
@ -71,7 +93,7 @@ void PdmUiPushButtonEditor::configureAndUpdateUi(const QString& uiConfigName)
//--------------------------------------------------------------------------------------------------
QWidget* PdmUiPushButtonEditor::createEditorWidget(QWidget * parent)
{
m_pushButton = new QPushButton("Ok", parent);
m_pushButton = new QPushButton("", parent);
connect(m_pushButton, SIGNAL(clicked(bool)), this, SLOT(slotClicked(bool)));
return m_pushButton;
}
@ -90,9 +112,18 @@ QWidget* PdmUiPushButtonEditor::createLabelWidget(QWidget * parent)
//--------------------------------------------------------------------------------------------------
void PdmUiPushButtonEditor::slotClicked(bool checked)
{
QVariant v;
v = checked;
this->setValueToField(v);
if (dynamic_cast<PdmField<bool> *> (field()))
{
QVariant v;
v = checked;
this->setValueToField(v);
}
else
{
QVariant v = m_pushButton->text();
this->setValueToField(v);
}
}

View File

@ -34,7 +34,8 @@ namespace caf
class PdmUiPushButtonEditorAttribute : public PdmUiEditorAttribute
{
public:
QIcon m_buttonIcon;
};