From 9bf361ed643b8b0bb0ae38d770012dbcd5ca7073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rnar=20Grip=20Fj=C3=A6r?= Date: Mon, 15 May 2017 15:48:24 +0200 Subject: [PATCH] #1462 Create generic select file and eclipse case to export model --- .../ProjectDataModel/CMakeLists_files.cmake | 2 + .../RimCaseAndFileExportSettings.cpp | 69 +++++++++++++++++++ .../RimCaseAndFileExportSettings.h | 45 ++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.cpp create mode 100644 ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.h diff --git a/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake b/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake index fafdfbc7b4..be2d6a1cd9 100644 --- a/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake +++ b/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake @@ -7,6 +7,7 @@ endif() set (SOURCE_GROUP_HEADER_FILES ${CEE_CURRENT_LIST_DIR}RimEclipseCaseCollection.h ${CEE_CURRENT_LIST_DIR}RimCaseCollection.h +${CEE_CURRENT_LIST_DIR}RimCaseAndFileExportSettings.h ${CEE_CURRENT_LIST_DIR}RimCellFilter.h ${CEE_CURRENT_LIST_DIR}RimEclipsePropertyFilter.h ${CEE_CURRENT_LIST_DIR}RimPropertyFilterCollection.h @@ -99,6 +100,7 @@ ${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.h set (SOURCE_GROUP_SOURCE_FILES ${CEE_CURRENT_LIST_DIR}RimEclipseCaseCollection.cpp ${CEE_CURRENT_LIST_DIR}RimCaseCollection.cpp +${CEE_CURRENT_LIST_DIR}RimCaseAndFileExportSettings.cpp ${CEE_CURRENT_LIST_DIR}RimCellFilter.cpp ${CEE_CURRENT_LIST_DIR}RimEclipsePropertyFilter.cpp ${CEE_CURRENT_LIST_DIR}RimPropertyFilterCollection.cpp diff --git a/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.cpp b/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.cpp new file mode 100644 index 0000000000..c6a41657c5 --- /dev/null +++ b/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.cpp @@ -0,0 +1,69 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017- Statoil ASA +// Copyright (C) 2017- Ceetron Solutions AS +// +// 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 "RimCaseAndFileExportSettings.h" + +#include "RimTools.h" + +#include "cafPdmUiFilePathEditor.h" + +CAF_PDM_SOURCE_INIT(RimCaseAndFileExportSettings, "RimCaseAndFileExportSettings"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimCaseAndFileExportSettings::RimCaseAndFileExportSettings() +{ + CAF_PDM_InitObject("RimCaseAndFileExportSettings", "", "", ""); + + CAF_PDM_InitFieldNoDefault(&fileName, "Filename", "Export filename", "", "", ""); + fileName.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName()); + + CAF_PDM_InitFieldNoDefault(&caseToApply, "CaseToApply", "Case to Apply", "", "", ""); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QList RimCaseAndFileExportSettings::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) +{ + QList options; + + if (fieldNeedingOptions == &caseToApply) + { + RimTools::caseOptionItems(&options); + } + + return options; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimCaseAndFileExportSettings::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) +{ + if (field == &fileName) + { + caf::PdmUiFilePathEditorAttribute* myAttr = static_cast(attribute); + if (myAttr) + { + myAttr->m_selectSaveFileName = true; + } + } +} diff --git a/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.h b/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.h new file mode 100644 index 0000000000..686e075068 --- /dev/null +++ b/ApplicationCode/ProjectDataModel/RimCaseAndFileExportSettings.h @@ -0,0 +1,45 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017- Statoil ASA +// Copyright (C) 2017- Ceetron Solutions AS +// +// 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 "RimEclipseCase.h" + +#include "cafPdmObject.h" +#include "cafPdmField.h" +#include "cafPdmPtrField.h" + +//================================================================================================== +/// +/// +//================================================================================================== +class RimCaseAndFileExportSettings : public caf::PdmObject +{ + CAF_PDM_HEADER_INIT; +public: + + RimCaseAndFileExportSettings(); + + caf::PdmField fileName; + caf::PdmPtrField caseToApply; + + virtual QList calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override; +protected: + virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override; +};