///////////////////////////////////////////////////////////////////////////////// // // 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 "RicSaveEclipseInputVisibleCellsUi.h" #include "RiaApplication.h" #include "cafPdmUiFilePathEditor.h" #include "cafPdmUiOrdering.h" #include namespace caf { template <> void RicSaveEclipseInputVisibleCellsUi::ExportKeywordEnum::setUp() { addItem( RicSaveEclipseInputVisibleCellsUi::FLUXNUM, "FLUXNUM", "FLUXNUM" ); addItem( RicSaveEclipseInputVisibleCellsUi::MULTNUM, "MULTNUM", "MULTNUM" ); addItem( RicSaveEclipseInputVisibleCellsUi::ACTNUM, "ACTNUM", "ACTNUM" ); setDefault( RicSaveEclipseInputVisibleCellsUi::FLUXNUM ); } } // namespace caf CAF_PDM_SOURCE_INIT( RicSaveEclipseInputVisibleCellsUi, "RicSaveEclipseInputVisibleCellsUi" ); //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicSaveEclipseInputVisibleCellsUi::RicSaveEclipseInputVisibleCellsUi() : exportFilenameManuallyChanged( false ) { CAF_PDM_InitObject( "Export Visible Cells FLUXNUM/MULTNUM/ACTNUM" ); CAF_PDM_InitField( &exportFilename, "ExportFilename", QString(), "Export Filename" ); exportFilename.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); CAF_PDM_InitFieldNoDefault( &exportKeyword, "ExportKeyword", "Export Keyword" ); CAF_PDM_InitField( &visibleActiveCellsValue, "VisibleActiveCellsValue", 1, "Visible Active Cells Value" ); CAF_PDM_InitField( &hiddenActiveCellsValue, "HiddenActiveCellsValue", 0, "Hidden Active Cells Value" ); CAF_PDM_InitField( &inactiveCellsValue, "InactiveCellsValue", 0, "Inactive Cells Value" ); exportFilename = getDefaultExportPath(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicSaveEclipseInputVisibleCellsUi::~RicSaveEclipseInputVisibleCellsUi() { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicSaveEclipseInputVisibleCellsUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) { if ( field == &exportFilename ) { auto* myAttr = dynamic_cast( attribute ); if ( myAttr ) { myAttr->m_selectSaveFileName = true; myAttr->m_fileSelectionFilter = "GRDECL files (*.grdecl *.GRDECL);;All files (*.*)"; } } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicSaveEclipseInputVisibleCellsUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) { uiOrdering.add( &exportFilename ); uiOrdering.add( &exportKeyword ); uiOrdering.add( &visibleActiveCellsValue ); uiOrdering.add( &hiddenActiveCellsValue ); uiOrdering.add( &inactiveCellsValue ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicSaveEclipseInputVisibleCellsUi::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) { if ( changedField == &exportFilename ) { exportFilenameManuallyChanged = true; } else if ( changedField == &exportKeyword ) { if ( !exportFilenameManuallyChanged ) { exportFilename = getDefaultExportPath(); } } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- QString RicSaveEclipseInputVisibleCellsUi::getDefaultExportPath() const { QDir baseDir( RiaApplication::instance()->currentProjectPath() ); return baseDir.absoluteFilePath( QString( "%1.grdecl" ).arg( exportKeyword().text() ) ); }