From dd45f7c4538656484597091f27cc402245d20664 Mon Sep 17 00:00:00 2001 From: Rebecca Cox Date: Mon, 18 Sep 2017 14:16:35 +0200 Subject: [PATCH] #1818 Observed Data: Command to Import observed data --- .../Commands/CMakeLists_files.cmake | 2 + .../Commands/RicImportObservedDataFeature.cpp | 37 +++++++--- .../Commands/RicImportObservedDataFeature.h | 3 +- .../RicImportObservedDataInMenuFeature.cpp | 67 +++++++++++++++++++ .../RicImportObservedDataInMenuFeature.h | 41 ++++++++++++ .../RimContextCommandBuilder.cpp | 1 + .../RimObservedDataCollection.cpp | 2 + .../UserInterface/RiuMainPlotWindow.cpp | 1 + 8 files changed, 143 insertions(+), 11 deletions(-) create mode 100644 ApplicationCode/Commands/RicImportObservedDataInMenuFeature.cpp create mode 100644 ApplicationCode/Commands/RicImportObservedDataInMenuFeature.h diff --git a/ApplicationCode/Commands/CMakeLists_files.cmake b/ApplicationCode/Commands/CMakeLists_files.cmake index dd81978915..40e9211f6a 100644 --- a/ApplicationCode/Commands/CMakeLists_files.cmake +++ b/ApplicationCode/Commands/CMakeLists_files.cmake @@ -34,6 +34,7 @@ ${CEE_CURRENT_LIST_DIR}RicTogglePerspectiveViewFeature.h ${CEE_CURRENT_LIST_DIR}RicImportGeoMechCaseFeature.h ${CEE_CURRENT_LIST_DIR}RicImportSummaryCaseFeature.h ${CEE_CURRENT_LIST_DIR}RicImportObservedDataFeature.h +${CEE_CURRENT_LIST_DIR}RicImportObservedDataInMenuFeature.h ${CEE_CURRENT_LIST_DIR}RicExportFeatureImpl.h ${CEE_CURRENT_LIST_DIR}RicSelectOrCreateViewFeatureImpl.h @@ -99,6 +100,7 @@ ${CEE_CURRENT_LIST_DIR}RicTogglePerspectiveViewFeature.cpp ${CEE_CURRENT_LIST_DIR}RicImportGeoMechCaseFeature.cpp ${CEE_CURRENT_LIST_DIR}RicImportSummaryCaseFeature.cpp ${CEE_CURRENT_LIST_DIR}RicImportObservedDataFeature.cpp +${CEE_CURRENT_LIST_DIR}RicImportObservedDataInMenuFeature.cpp ${CEE_CURRENT_LIST_DIR}RicExportFeatureImpl.cpp ${CEE_CURRENT_LIST_DIR}RicSelectOrCreateViewFeatureImpl.cpp diff --git a/ApplicationCode/Commands/RicImportObservedDataFeature.cpp b/ApplicationCode/Commands/RicImportObservedDataFeature.cpp index 1be433c396..0140ec79a6 100644 --- a/ApplicationCode/Commands/RicImportObservedDataFeature.cpp +++ b/ApplicationCode/Commands/RicImportObservedDataFeature.cpp @@ -20,11 +20,14 @@ #include "RiaApplication.h" +#include "RimObservedData.h" #include "RimObservedDataCollection.h" #include "RimOilField.h" #include "RimProject.h" #include "RimSummaryObservedDataFile.h" +#include "cafSelectionManager.h" + #include #include @@ -41,19 +44,11 @@ RicImportObservedDataFeature::RicImportObservedDataFeature() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool RicImportObservedDataFeature::isCommandEnabled() -{ - return true; -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RicImportObservedDataFeature::onActionTriggered(bool isChecked) +void RicImportObservedDataFeature::selectObservedDataFileInDialog() { RiaApplication* app = RiaApplication::instance(); QString defaultDir = app->lastUsedDialogDirectory("INPUT_FILES"); - QStringList fileNames = QFileDialog::getOpenFileNames(NULL, "Import Observed Data", defaultDir, "Observed Data File;;All Files (*.*)"); + QStringList fileNames = QFileDialog::getOpenFileNames(NULL, "Import Observed Data", defaultDir, "All Files (*.*)"); if (fileNames.isEmpty()) return; @@ -70,6 +65,28 @@ void RicImportObservedDataFeature::onActionTriggered(bool isChecked) } } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicImportObservedDataFeature::isCommandEnabled() +{ + std::vector selectionObservedDataCollection; + caf::SelectionManager::instance()->objectsByType(&selectionObservedDataCollection); + + std::vector selectionObservedData; + caf::SelectionManager::instance()->objectsByType(&selectionObservedData); + + return (selectionObservedDataCollection.size() > 0 || selectionObservedData.size() > 0); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicImportObservedDataFeature::onActionTriggered(bool isChecked) +{ + RicImportObservedDataFeature::selectObservedDataFileInDialog(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/RicImportObservedDataFeature.h b/ApplicationCode/Commands/RicImportObservedDataFeature.h index 463a03c128..dd5a509b19 100644 --- a/ApplicationCode/Commands/RicImportObservedDataFeature.h +++ b/ApplicationCode/Commands/RicImportObservedDataFeature.h @@ -33,10 +33,11 @@ class RicImportObservedDataFeature : public caf::CmdFeature public: RicImportObservedDataFeature(); + static void selectObservedDataFileInDialog(); private: virtual bool isCommandEnabled() override; virtual void onActionTriggered(bool isChecked) override; virtual void setupActionLook(QAction* actionToSetup) override; - bool createAndAddObservedDataFromFile(const QString& fileName); + static bool createAndAddObservedDataFromFile(const QString& fileName); }; diff --git a/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.cpp b/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.cpp new file mode 100644 index 0000000000..35841e4877 --- /dev/null +++ b/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.cpp @@ -0,0 +1,67 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// 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 +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#include "RicImportObservedDataInMenuFeature.h" + +#include "RiaApplication.h" + +#include "RicImportObservedDataFeature.h" + +#include "RimObservedDataCollection.h" +#include "RimOilField.h" +#include "RimProject.h" +#include "RimSummaryObservedDataFile.h" + +#include +#include + + +CAF_CMD_SOURCE_INIT(RicImportObservedDataInMenuFeature, "RicImportObservedDataInMenuFeature"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RicImportObservedDataInMenuFeature::RicImportObservedDataInMenuFeature() +{ +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicImportObservedDataInMenuFeature::isCommandEnabled() +{ + return true; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicImportObservedDataInMenuFeature::onActionTriggered(bool isChecked) +{ + RicImportObservedDataFeature::selectObservedDataFileInDialog(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicImportObservedDataInMenuFeature::setupActionLook(QAction* actionToSetup) +{ + actionToSetup->setIcon(QIcon(":/Default.png")); + actionToSetup->setText("Import Observed Data"); +} + diff --git a/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.h b/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.h new file mode 100644 index 0000000000..69e65f1817 --- /dev/null +++ b/ApplicationCode/Commands/RicImportObservedDataInMenuFeature.h @@ -0,0 +1,41 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// 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 +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "cafCmdFeature.h" + +#include "cafPdmField.h" + +//================================================================================================== +// +// +// +//================================================================================================== +class RicImportObservedDataInMenuFeature : public caf::CmdFeature +{ + CAF_CMD_HEADER_INIT; + +public: + RicImportObservedDataInMenuFeature(); + +private: + virtual bool isCommandEnabled() override; + virtual void onActionTriggered(bool isChecked) override; + virtual void setupActionLook(QAction* actionToSetup) override; +}; diff --git a/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp b/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp index cebe5a0426..839b5d8ac6 100644 --- a/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp +++ b/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp @@ -445,6 +445,7 @@ QStringList RimContextCommandBuilder::commandsFromSelection() commandIds << "RicFlyToObjectFeature"; commandIds << "RicExportCarfin"; + commandIds << "RicImportObservedDataFeature"; commandIds << "RicPasteSummaryCaseFeature"; commandIds << "RicReloadSummaryCaseFeature"; commandIds << "RicCreateSummaryCaseCollectionFeature"; diff --git a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp index 810a8db227..bfdf52d193 100644 --- a/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimObservedDataCollection.cpp @@ -71,6 +71,8 @@ RimSummaryObservedDataFile* RimObservedDataCollection::createAndAddObservedDataF newObservedData->setSummaryHeaderFilename(fileName); newObservedData->updateOptionSensitivity(); + this->updateConnectedEditors(); + return newObservedData; } diff --git a/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp b/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp index 3644f793d2..0771b6821d 100644 --- a/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp +++ b/ApplicationCode/UserInterface/RiuMainPlotWindow.cpp @@ -184,6 +184,7 @@ void RiuMainPlotWindow::createMenus() importMenu->addAction(cmdFeatureMgr->action("RicImportEclipseCaseFeature")); importMenu->addAction(cmdFeatureMgr->action("RicImportInputEclipseCaseFeature")); importMenu->addAction(cmdFeatureMgr->action("RicImportSummaryCaseFeature")); + importMenu->addAction(cmdFeatureMgr->action("RicImportObservedDataInMenuFeature")); importMenu->addAction(cmdFeatureMgr->action("RicCreateGridCaseGroupFeature")); importMenu->addSeparator(); #ifdef USE_ODB_API