///////////////////////////////////////////////////////////////////////////////// // // 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 "cafAppEnum.h" #include "cafPdmChildArrayField.h" #include "cafPdmField.h" #include "cafPdmObject.h" #include "cvfVector3.h" #include #include #include #include class RigEclipseCaseData; //================================================================================================== /// //================================================================================================== class RicExportEclipseSectorModelUi : public caf::PdmObject { CAF_PDM_HEADER_INIT; enum ResultExportOptions { EXPORT_NO_RESULTS, EXPORT_TO_GRID_FILE, EXPORT_TO_SINGLE_SEPARATE_FILE, EXPORT_TO_SEPARATE_FILE_PER_RESULT }; using ResultExportOptionsEnum = caf::AppEnum; enum GridBoxSelection { VISIBLE_CELLS_BOX, ACTIVE_CELLS_BOX, FULL_GRID_BOX, MANUAL_SELECTION }; using GridBoxSelectionEnum = caf::AppEnum; public: RicExportEclipseSectorModelUi(); ~RicExportEclipseSectorModelUi() override; const QStringList& tabNames() const; void setCaseData( RigEclipseCaseData* caseData = nullptr, const cvf::Vec3i& visibleMin = cvf::Vec3i::ZERO, const cvf::Vec3i& visibleMax = cvf::Vec3i::ZERO ); cvf::Vec3i min() const; cvf::Vec3i max() const; void setMin( const cvf::Vec3i& min ); void setMax( const cvf::Vec3i& max ); void applyBoundaryDefaults(); void removeInvalidKeywords(); caf::PdmField exportGrid; caf::PdmField exportGridFilename; caf::PdmField exportInLocalCoordinates; caf::PdmField makeInvisibleCellsInactive; caf::PdmField exportFaults; caf::PdmField exportFaultsFilename; caf::PdmField exportParameters; caf::PdmField exportParametersFilename; caf::PdmField> selectedKeywords; caf::PdmField exportGridBox; caf::PdmField refinementCountI; caf::PdmField refinementCountJ; caf::PdmField refinementCountK; protected: caf::PdmField minI; caf::PdmField maxI; caf::PdmField minJ; caf::PdmField maxJ; caf::PdmField minK; caf::PdmField maxK; void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; static std::set mainKeywords(); QString defaultFolder() const; QString defaultGridFileName() const; QString defaultResultsFileName() const; QString defaultFaultsFileName() const; private: RigEclipseCaseData* m_caseData; cvf::Vec3i m_visibleMin; cvf::Vec3i m_visibleMax; QStringList m_tabNames; };