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 "RimStatisticsCaseEvaluator.h"
#include "RigMainGrid.h" #include "RigMainGrid.h"
#include "cafPdmUiTextEditor.h" #include "cafPdmUiTextEditor.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiPushButtonEditor.h"
namespace caf { namespace caf {
template<> 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"); CAF_PDM_SOURCE_INIT(RimStatisticsCase, "RimStatisticalCalculation");
@@ -50,6 +63,18 @@ RimStatisticsCase::RimStatisticsCase()
{ {
CAF_PDM_InitObject("Case Group Statistics", ":/Histogram16x16.png", "", ""); 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", "", "", ""); CAF_PDM_InitField(&m_selectionSummary, "SelectionSummary", QString(""), "Selected Properties", "", "", "");
m_selectionSummary.setIOWritable(false); m_selectionSummary.setIOWritable(false);
m_selectionSummary.setIOReadable(false); m_selectionSummary.setIOReadable(false);
@@ -255,6 +280,9 @@ void RimStatisticsCase::computeStatistics()
reservoirView->createDisplayModelAndRedraw(); 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 void RimStatisticsCase::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) const
{ {
uiOrdering.add(&caseName); uiOrdering.add(&caseName);
uiOrdering.add(&m_calculationStatus);
uiOrdering.add(&m_editingAllowed);
caf::PdmUiGroup * group = uiOrdering.addNewGroup("Property Selection"); caf::PdmUiGroup * group = uiOrdering.addNewGroup("Property Selection");
group->add(&m_selectionSummary); group->add(&m_selectionSummary);
@@ -401,6 +431,13 @@ void RimStatisticsCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField
updateSelectionListVisibilities(); updateSelectionListVisibilities();
} }
if (&m_editingAllowed == changedField)
{
clearComputedStatistics();
m_calculationStatus = NOT_CALCULATED;
m_editingAllowed.setUiHidden(true);
}
updateSelectionSummaryLabel(); updateSelectionSummaryLabel();
updatePercentileUiVisibility(); updatePercentileUiVisibility();
} }
@@ -496,3 +533,29 @@ void RimStatisticsCase::updatePercentileUiVisibility()
m_midPercentile .setUiHidden( !m_calculatePercentiles()); m_midPercentile .setUiHidden( !m_calculatePercentiles());
m_highPercentile.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 setMainGrid(RigMainGrid* mainGrid);
void computeStatistics(); void computeStatistics();
bool hasComputedStatistics();
void clearComputedStatistics();
virtual bool openEclipseGridFile(); virtual bool openEclipseGridFile();
RimCaseCollection* parentStatisticsCaseCollection(); RimCaseCollection* parentStatisticsCaseCollection();
@@ -57,6 +60,12 @@ public:
HISTOGRAM_ESTIMATED HISTOGRAM_ESTIMATED
}; };
enum CalculationStatus
{
CALCULATED,
NOT_CALCULATED
};
private: private:
RimIdenticalGridCaseGroup* caseGroup(); RimIdenticalGridCaseGroup* caseGroup();
@@ -74,6 +83,9 @@ private:
virtual void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute ); virtual void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute );
// Fields // 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::ResultCatType > > m_resultType;
caf::PdmField< caf::AppEnum< RimDefines::PorosityModelType > > m_porosityModel; 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->setText(field()->uiName(uiConfigName));
} }
m_label->setEnabled(!field()->isUiReadOnly(uiConfigName)); //m_label->setEnabled(!field()->isUiReadOnly(uiConfigName));
m_pushButton->setEnabled(!field()->isUiReadOnly(uiConfigName));
//m_checkBox->setEnabled(!field()->isUiReadOnly(uiConfigName));
PdmUiPushButtonEditorAttribute attributes; PdmUiPushButtonEditorAttribute attributes;
field()->ownerObject()->editorAttribute(field(), uiConfigName, &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) 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))); connect(m_pushButton, SIGNAL(clicked(bool)), this, SLOT(slotClicked(bool)));
return m_pushButton; return m_pushButton;
} }
@@ -90,9 +112,18 @@ QWidget* PdmUiPushButtonEditor::createLabelWidget(QWidget * parent)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void PdmUiPushButtonEditor::slotClicked(bool checked) void PdmUiPushButtonEditor::slotClicked(bool checked)
{ {
QVariant v;
v = checked; if (dynamic_cast<PdmField<bool> *> (field()))
this->setValueToField(v); {
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 class PdmUiPushButtonEditorAttribute : public PdmUiEditorAttribute
{ {
public:
QIcon m_buttonIcon;
}; };