///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2018- Equinor 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 "RimValveTemplateCollection.h" #include "RiaApplication.h" #include "RimProject.h" #include "RimValveTemplate.h" CAF_PDM_SOURCE_INIT( RimValveTemplateCollection, "ValveTemplateCollection" ); //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimValveTemplateCollection::RimValveTemplateCollection() { CAF_PDM_InitObject( "Valve Templates", ":/ICDValve16x16.png", "", "" ); CAF_PDM_InitFieldNoDefault( &m_valveDefinitions, "ValveDefinitions", "", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_defaultUnitsForValveTemplates, "ValveUnits", "Default unit system for valve templates", "", "", "" ); m_defaultUnitsForValveTemplates = RiaEclipseUnitTools::UNITS_METRIC; m_valveDefinitions.uiCapability()->setUiHidden( true ); addDefaultValveTemplates(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimValveTemplateCollection::~RimValveTemplateCollection() {} //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::vector RimValveTemplateCollection::valveTemplates() const { std::vector templates; for ( auto& templ : m_valveDefinitions ) { templates.push_back( templ ); } return templates; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimValveTemplateCollection::addValveTemplate( RimValveTemplate* valveTemplate ) { m_valveDefinitions.push_back( valveTemplate ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimValveTemplateCollection::removeAndDeleteValveTemplate( RimValveTemplate* valveTemplate ) { m_valveDefinitions.removeChildObject( valveTemplate ); delete valveTemplate; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RiaEclipseUnitTools::UnitSystemType RimValveTemplateCollection::defaultUnitSystemType() const { return m_defaultUnitsForValveTemplates; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimValveTemplateCollection::setDefaultUnitSystemBasedOnLoadedCases() { RimProject* proj = RiaApplication::instance()->project(); auto commonUnitSystem = proj->commonUnitSystemForAllCases(); if ( commonUnitSystem != RiaEclipseUnitTools::UNITS_UNKNOWN ) { m_defaultUnitsForValveTemplates = commonUnitSystem; } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimValveTemplateCollection::addDefaultValveTemplates() { RimValveTemplate* aicd = new RimValveTemplate; aicd->setType( RiaDefines::AICD ); aicd->setUserLabel( "Valve Template #1" ); RimValveTemplate* icd = new RimValveTemplate; icd->setType( RiaDefines::ICD ); icd->setUserLabel( "Valve Template #2" ); RimValveTemplate* icv = new RimValveTemplate; icv->setType( RiaDefines::ICV ); icv->setUserLabel( "Valve Template #3" ); addValveTemplate( aicd ); addValveTemplate( icd ); addValveTemplate( icv ); }