mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1889 Curve Creator : Add dialog with splitter
This commit is contained in:
parent
f3dc48c59a
commit
f1f5ead0ba
@ -24,6 +24,9 @@ ${CEE_CURRENT_LIST_DIR}RicPasteAsciiDataCurveFeature.h
|
||||
${CEE_CURRENT_LIST_DIR}RicEditSummaryCurves.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreator.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorUi.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorSplitterUi.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorDialog.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorUiKeywords.h
|
||||
)
|
||||
|
||||
set (SOURCE_GROUP_SOURCE_FILES
|
||||
@ -45,6 +48,8 @@ ${CEE_CURRENT_LIST_DIR}RicPasteAsciiDataCurveFeature.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RicEditSummaryCurves.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreator.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorUi.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorSplitterUi.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorDialog.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES
|
||||
@ -56,6 +61,8 @@ ${SOURCE_GROUP_SOURCE_FILES}
|
||||
)
|
||||
|
||||
list(APPEND QT_MOC_HEADERS
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorSplitterUi.h
|
||||
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorDialog.h
|
||||
)
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "RiaPreferences.h"
|
||||
|
||||
#include "RicSummaryCurveCreator.h"
|
||||
#include "RicSummaryCurveCreatorUi.h"
|
||||
#include "RicSummaryCurveCreatorDialog.h"
|
||||
|
||||
#include "cafPdmUiPropertyViewDialog.h"
|
||||
|
||||
@ -49,21 +49,14 @@ void RicEditSummaryCurves::onActionTriggered(bool isChecked)
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
CVF_ASSERT(project);
|
||||
|
||||
|
||||
if (m_curveCreator == nullptr)
|
||||
{
|
||||
m_curveCreator = new RicSummaryCurveCreator();
|
||||
m_dialog = new RicSummaryCurveCreatorUi(nullptr, m_curveCreator);
|
||||
m_dialogWithSplitter = new RicSummaryCurveCreatorDialog(nullptr, m_curveCreator);
|
||||
}
|
||||
if(!m_dialog->isVisible())
|
||||
m_dialog->show();
|
||||
|
||||
|
||||
// RicSummaryCurveCreator curveCreator;
|
||||
// RicSummaryCurveCreatorUi summaryCurveCreator(nullptr, &curveCreator);
|
||||
// summaryCurveCreator.exec();
|
||||
|
||||
// openSelector(summaryCase);
|
||||
if (!m_dialogWithSplitter->isVisible())
|
||||
m_dialogWithSplitter->show();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -22,7 +22,8 @@
|
||||
#include <QPointer>
|
||||
|
||||
class RicSummaryCurveCreator;
|
||||
class RicSummaryCurveCreatorUi;
|
||||
class RicSummaryCurveCreatorDialog;
|
||||
|
||||
namespace caf {
|
||||
class PdmUiPropertyViewDialog;
|
||||
}
|
||||
@ -41,6 +42,6 @@ protected:
|
||||
virtual void setupActionLook(QAction* actionToSetup);
|
||||
|
||||
private:
|
||||
RicSummaryCurveCreator* m_curveCreator;
|
||||
QPointer<RicSummaryCurveCreatorUi> m_dialog;
|
||||
RicSummaryCurveCreator* m_curveCreator;
|
||||
QPointer<RicSummaryCurveCreatorDialog> m_dialogWithSplitter;
|
||||
};
|
||||
|
@ -16,20 +16,27 @@
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <sstream>
|
||||
#include <stack>
|
||||
#include <algorithm>
|
||||
#include "RicSummaryCurveCreator.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RicSummaryCurveCreatorUiKeywords.h"
|
||||
|
||||
#include "RifReaderEclipseSummary.h"
|
||||
|
||||
#include "RigSummaryCaseData.h"
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include "cafPdmUiListEditor.h"
|
||||
#include "cafPdmUiTreeSelectionEditor.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <sstream>
|
||||
#include <stack>
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RicSummaryCurveCreator, "RicSummaryCurveCreator");
|
||||
@ -273,69 +280,39 @@ QList<caf::PdmOptionItemInfo> RicSummaryCurveCreator::calculateValueOptions(cons
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
caf::PdmUiGroup* sourcesGroup = uiOrdering.addNewGroup("Sources");
|
||||
caf::PdmUiGroup* sourcesGroup = uiOrdering.addNewGroupWithKeyword("Sources", RicSummaryCurveCreatorUiKeywords::sources());
|
||||
sourcesGroup->add(&m_selectedCases);
|
||||
|
||||
caf::PdmUiGroup* itemTypesGroup = uiOrdering.addNewGroup("Identifier Types");
|
||||
caf::PdmUiGroup* itemTypesGroup = uiOrdering.addNewGroupWithKeyword("Identifier Types", RicSummaryCurveCreatorUiKeywords::summaryTypes());
|
||||
itemTypesGroup->add(&m_selectedSummaryCategory);
|
||||
|
||||
caf::PdmField<std::vector<QString>>* summaryiesField = nullptr;
|
||||
|
||||
RifEclipseSummaryAddress::SummaryVarCategory sumCategory = m_selectedSummaryCategory();
|
||||
if (sumCategory == RifEclipseSummaryAddress::SUMMARY_FIELD)
|
||||
{
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Blank");
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_FIELD][0]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_FIELD][0]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_AQUIFER)
|
||||
{
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Blank");
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_AQUIFER][0]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_AQUIFER][0]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_NETWORK)
|
||||
{
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Blank");
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_NETWORK][0]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_NETWORK][0]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_MISC)
|
||||
{
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Blank");
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_MISC][0]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_MISC][0]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_REGION)
|
||||
{
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Regions");
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroupWithKeyword("Regions", "RegionsKeyword");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION][0]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION][1]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION][1]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION)
|
||||
{
|
||||
@ -345,10 +322,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION][1]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION][2]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION][2]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL_GROUP)
|
||||
{
|
||||
@ -357,10 +331,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_GROUP][0]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_GROUP][1]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_GROUP][1]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL)
|
||||
{
|
||||
@ -369,10 +340,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL][0]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL][1]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL][1]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION)
|
||||
{
|
||||
@ -382,10 +350,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION][1]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION][2]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION][2]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR)
|
||||
{
|
||||
@ -396,10 +361,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR][2]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR][3]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR][3]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL_LGR)
|
||||
{
|
||||
@ -409,10 +371,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_LGR][1]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_LGR][2]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_LGR][2]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT)
|
||||
{
|
||||
@ -422,10 +381,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT][1]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT][2]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT][2]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_BLOCK)
|
||||
{
|
||||
@ -434,10 +390,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK][0]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK][1]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK][1]->pdmField();
|
||||
}
|
||||
else if (sumCategory == RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR)
|
||||
{
|
||||
@ -447,14 +400,16 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR][1]->pdmField());
|
||||
}
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* myGroup = uiOrdering.addNewGroup("Properties");
|
||||
myGroup->add(m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR][2]->pdmField());
|
||||
}
|
||||
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR][2]->pdmField();
|
||||
}
|
||||
|
||||
CAF_ASSERT(summaryiesField);
|
||||
caf::PdmUiGroup* summariesGroup = uiOrdering.addNewGroupWithKeyword("Summaries", RicSummaryCurveCreatorUiKeywords::summaries());
|
||||
summariesGroup->add(summaryiesField);
|
||||
|
||||
|
||||
// Appearance settings
|
||||
caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroup("Appearance Settings");
|
||||
caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroupWithKeyword("Appearance Settings", RicSummaryCurveCreatorUiKeywords::appearance());
|
||||
//appearanceGroup->setCollapsedByDefault(true);
|
||||
appearanceGroup->add(&m_useAutoAppearanceAssignment);
|
||||
appearanceGroup->add(&m_caseAppearanceType);
|
||||
|
@ -0,0 +1,50 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- 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.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RicSummaryCurveCreatorDialog.h"
|
||||
|
||||
#include "RicSummaryCurveCreator.h"
|
||||
#include "RicSummaryCurveCreatorSplitterUi.h"
|
||||
|
||||
#include <QVBoxLayout>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicSummaryCurveCreatorDialog::RicSummaryCurveCreatorDialog(QWidget* parent, RicSummaryCurveCreator* summaryCurveCreator)
|
||||
: QDialog(parent)
|
||||
{
|
||||
m_curveCreatorSplitterUi = new RicSummaryCurveCreatorSplitterUi(this);
|
||||
|
||||
QWidget* propertyWidget = m_curveCreatorSplitterUi->getOrCreateWidget(this);
|
||||
|
||||
QVBoxLayout* dummy = new QVBoxLayout(this);
|
||||
dummy->setContentsMargins(0, 0, 0, 0);
|
||||
dummy->addWidget(propertyWidget);
|
||||
|
||||
m_curveCreatorSplitterUi->setPdmObject(summaryCurveCreator);
|
||||
m_curveCreatorSplitterUi->updateUi();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicSummaryCurveCreatorDialog::~RicSummaryCurveCreatorDialog()
|
||||
{
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- 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 <QDialog>
|
||||
|
||||
class RicSummaryCurveCreatorSplitterUi;
|
||||
class RicSummaryCurveCreator;
|
||||
|
||||
class RicSummaryCurveCreatorDialog : public QDialog
|
||||
{
|
||||
public:
|
||||
RicSummaryCurveCreatorDialog(QWidget* parent, RicSummaryCurveCreator* summaryCurveCreator);
|
||||
~RicSummaryCurveCreatorDialog();
|
||||
|
||||
private:
|
||||
RicSummaryCurveCreatorSplitterUi* m_curveCreatorSplitterUi;
|
||||
};
|
@ -0,0 +1,194 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- 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.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RicSummaryCurveCreatorSplitterUi.h"
|
||||
|
||||
#include "RicSummaryCurveCreator.h"
|
||||
#include "RicSummaryCurveCreatorUiKeywords.h"
|
||||
#include "cafPdmUiGroup.h"
|
||||
#include "cafPdmUiTreeView.h"
|
||||
|
||||
#include "QMinimizePanel.h"
|
||||
|
||||
#include <QBoxLayout>
|
||||
#include <QSplitter>
|
||||
#include <QFrame>
|
||||
#include <QTreeView>
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicSummaryCurveCreatorSplitterUi::RicSummaryCurveCreatorSplitterUi(QWidget* parent)
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicSummaryCurveCreatorSplitterUi::~RicSummaryCurveCreatorSplitterUi()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems, const QString& uiConfigName)
|
||||
{
|
||||
if (!m_layout) return;
|
||||
|
||||
int splitterPositionIndex = 0;
|
||||
for (size_t i = 0; i < topLevelUiItems.size(); ++i)
|
||||
{
|
||||
if (topLevelUiItems[i]->isUiHidden(uiConfigName)) continue;
|
||||
|
||||
if (topLevelUiItems[i]->isUiGroup())
|
||||
{
|
||||
caf::PdmUiGroup* group = static_cast<caf::PdmUiGroup*>(topLevelUiItems[i]);
|
||||
|
||||
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
|
||||
|
||||
m_firstRowLayout->addWidget(groupBox);
|
||||
|
||||
const std::vector<caf::PdmUiItem*>& groupChildren = group->uiItems();
|
||||
recursivelyConfigureAndUpdateUiItemsInGridLayoutColumn(groupChildren, groupBox->contentFrame(), uiConfigName);
|
||||
|
||||
// Add group boxes until summaries are detected
|
||||
|
||||
if (group->keyword() == RicSummaryCurveCreatorUiKeywords::summaries())
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
caf::PdmUiGroup* group = findGroupByKeyword(topLevelUiItems, RicSummaryCurveCreatorUiKeywords::appearance(), uiConfigName);
|
||||
|
||||
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
|
||||
|
||||
m_lowerLeftLayout->insertWidget(0, groupBox);
|
||||
|
||||
const std::vector<caf::PdmUiItem*>& groupChildren = group->uiItems();
|
||||
recursivelyConfigureAndUpdateUiItemsInGridLayoutColumn(groupChildren, groupBox->contentFrame(), uiConfigName);
|
||||
}
|
||||
|
||||
|
||||
m_lowerLeftLayout->insertWidget(1, getOrCreateCurveTreeWidget());
|
||||
|
||||
m_secondRowLayout->insertWidget(1, getOrCreatePlotWidget());
|
||||
|
||||
// NB! Only groups at top level are handled, fields at top level are not added to layout
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QWidget* RicSummaryCurveCreatorSplitterUi::createWidget(QWidget* parent)
|
||||
{
|
||||
QWidget* widget = new QWidget(parent);
|
||||
|
||||
m_layout = new QVBoxLayout();
|
||||
m_layout->setContentsMargins(0, 0, 0, 0);
|
||||
widget->setLayout(m_layout);
|
||||
|
||||
QFrame* firstRowFrame = new QFrame(widget);
|
||||
m_firstRowLayout = new QHBoxLayout;
|
||||
firstRowFrame->setLayout(m_firstRowLayout);
|
||||
|
||||
QFrame* secondRowFrame = new QFrame(widget);
|
||||
m_secondRowLayout = new QHBoxLayout;
|
||||
secondRowFrame->setLayout(m_secondRowLayout);
|
||||
|
||||
m_lowerLeftLayout = new QVBoxLayout;
|
||||
m_secondRowLayout->addLayout(m_lowerLeftLayout);
|
||||
|
||||
m_firstColumnSplitter = new QSplitter(Qt::Vertical);
|
||||
m_firstColumnSplitter->insertWidget(0, firstRowFrame);
|
||||
m_firstColumnSplitter->insertWidget(1, secondRowFrame);
|
||||
|
||||
m_layout->addWidget(m_firstColumnSplitter);
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmUiGroup* RicSummaryCurveCreatorSplitterUi::findGroupByKeyword(const std::vector<caf::PdmUiItem *>& topLevelUiItems, const QString& keyword, const QString& uiConfigName)
|
||||
{
|
||||
for (auto uiItem : topLevelUiItems)
|
||||
{
|
||||
if (uiItem->isUiHidden(uiConfigName)) continue;
|
||||
|
||||
if (uiItem->isUiGroup())
|
||||
{
|
||||
caf::PdmUiGroup* group = static_cast<caf::PdmUiGroup*>(uiItem);
|
||||
if (group->keyword() == keyword)
|
||||
{
|
||||
return group;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QWidget* RicSummaryCurveCreatorSplitterUi::getOrCreateCurveTreeWidget()
|
||||
{
|
||||
if (!m_curvesPanel)
|
||||
{
|
||||
m_curvesPanel = new QMinimizePanel(this->widget());
|
||||
m_curvesPanel->setTitle("Curves");
|
||||
QVBoxLayout* curvesLayout = new QVBoxLayout(m_curvesPanel->contentFrame());
|
||||
|
||||
caf::PdmUiTreeView* curveTreeView = new caf::PdmUiTreeView(m_curvesPanel->contentFrame());
|
||||
curvesLayout->addWidget(curveTreeView);
|
||||
|
||||
RicSummaryCurveCreator* sumCurveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->pdmItem());
|
||||
if (sumCurveCreator)
|
||||
{
|
||||
curveTreeView->setPdmItem(sumCurveCreator->previewPlot());
|
||||
}
|
||||
|
||||
curveTreeView->treeView()->setHeaderHidden(true);
|
||||
}
|
||||
|
||||
return m_curvesPanel;
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QWidget* RicSummaryCurveCreatorSplitterUi::getOrCreatePlotWidget()
|
||||
{
|
||||
RicSummaryCurveCreator* sumCurveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->pdmItem());
|
||||
if (sumCurveCreator)
|
||||
{
|
||||
// TODO: Rename previewPlot()->createViewWidget to getOrCreateViewWidget
|
||||
return sumCurveCreator->previewPlot()->createViewWidget(this->widget());
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -0,0 +1,66 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- 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 "cafPdmUiWidgetBasedObjectEditor.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class RicSummaryCurveCreator;
|
||||
|
||||
class QHBoxLayout;
|
||||
class QMinimizePanel;
|
||||
class QSplitter;
|
||||
class QString;
|
||||
class QVBoxLayout;
|
||||
|
||||
namespace caf {
|
||||
class PdmUiItem;
|
||||
}
|
||||
|
||||
|
||||
class RicSummaryCurveCreatorSplitterUi : public caf::PdmUiWidgetBasedObjectEditor
|
||||
{
|
||||
public:
|
||||
RicSummaryCurveCreatorSplitterUi(QWidget* parent);
|
||||
~RicSummaryCurveCreatorSplitterUi();
|
||||
|
||||
private:
|
||||
virtual void recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
|
||||
const QString& uiConfigName) override;
|
||||
|
||||
virtual QWidget* createWidget(QWidget* parent) override;
|
||||
|
||||
QWidget* getOrCreateCurveTreeWidget();
|
||||
QWidget* getOrCreatePlotWidget();
|
||||
|
||||
static caf::PdmUiGroup* findGroupByKeyword(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
|
||||
const QString& keyword,
|
||||
const QString& uiConfigName);
|
||||
|
||||
private:
|
||||
QPointer<QVBoxLayout> m_layout;
|
||||
QPointer<QSplitter> m_firstColumnSplitter;
|
||||
|
||||
QPointer<QMinimizePanel> m_curvesPanel;
|
||||
|
||||
QPointer<QHBoxLayout> m_firstRowLayout;
|
||||
QPointer<QHBoxLayout> m_secondRowLayout;
|
||||
QPointer<QVBoxLayout> m_lowerLeftLayout;
|
||||
};
|
@ -0,0 +1,43 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017 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 <QString>
|
||||
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RicSummaryCurveCreatorUiKeywords
|
||||
{
|
||||
public:
|
||||
static QString sources() { return "SourcesKeyword"; };
|
||||
static QString summaryTypes() { return "SummaryTypesKeyword"; };
|
||||
static QString summaries() { return "SummariesKeyword"; };
|
||||
static QString regions() { return "RegionsKeyword"; };
|
||||
static QString region2region() { return "Region2RegionKeyword"; };
|
||||
static QString wellGroup() { return "WellGroupKeyword"; };
|
||||
static QString wells() { return "WellsKeyword"; };
|
||||
static QString completions() { return "CompletionsKeyword"; };
|
||||
static QString lgrWells() { return "LgrWellsKeyword"; };
|
||||
static QString wellSegments() { return "WellSegmentsKeyword"; };
|
||||
static QString appearance() { return "AppearanceKeyword"; };
|
||||
};
|
Loading…
Reference in New Issue
Block a user