2017-09-18 03:47:59 -05:00
/////////////////////////////////////////////////////////////////////////////////
//
// 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 <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
# include "RicImportObservedDataFeature.h"
# include "RiaApplication.h"
2017-09-18 07:16:35 -05:00
# include "RimObservedData.h"
2017-09-18 03:47:59 -05:00
# include "RimObservedDataCollection.h"
# include "RimOilField.h"
# include "RimProject.h"
# include "RimSummaryObservedDataFile.h"
2017-09-18 07:16:35 -05:00
# include "cafSelectionManager.h"
2017-09-18 03:47:59 -05:00
# include <QAction>
# include <QFileDialog>
CAF_CMD_SOURCE_INIT ( RicImportObservedDataFeature , " RicImportObservedDataFeature " ) ;
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicImportObservedDataFeature : : RicImportObservedDataFeature ( )
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2017-09-18 07:16:35 -05:00
void RicImportObservedDataFeature : : selectObservedDataFileInDialog ( )
2017-09-18 03:47:59 -05:00
{
RiaApplication * app = RiaApplication : : instance ( ) ;
QString defaultDir = app - > lastUsedDialogDirectory ( " INPUT_FILES " ) ;
2017-10-09 08:23:50 -05:00
QStringList fileNames = QFileDialog : : getOpenFileNames ( nullptr , " Import Observed Time History Data " , defaultDir , " Observed Data (*.RSM *.txt *.inc);;All Files (*.*) " ) ;
2017-09-18 03:47:59 -05:00
if ( fileNames . isEmpty ( ) ) return ;
// Remember the path to next time
app - > setLastUsedDialogDirectory ( " INPUT_FILES " , QFileInfo ( fileNames . last ( ) ) . absolutePath ( ) ) ;
RimProject * proj = app - > project ( ) ;
RimObservedDataCollection * observedDataCollection = proj - > activeOilField ( ) ? proj - > activeOilField ( ) - > observedDataCollection ( ) : nullptr ;
if ( ! observedDataCollection ) return ;
for ( auto fileName : fileNames )
{
RicImportObservedDataFeature : : createAndAddObservedDataFromFile ( fileName ) ;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2017-09-18 07:16:35 -05:00
bool RicImportObservedDataFeature : : isCommandEnabled ( )
{
std : : vector < RimObservedDataCollection * > selectionObservedDataCollection ;
caf : : SelectionManager : : instance ( ) - > objectsByType ( & selectionObservedDataCollection ) ;
std : : vector < RimObservedData * > selectionObservedData ;
caf : : SelectionManager : : instance ( ) - > objectsByType ( & selectionObservedData ) ;
return ( selectionObservedDataCollection . size ( ) > 0 | | selectionObservedData . size ( ) > 0 ) ;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicImportObservedDataFeature : : onActionTriggered ( bool isChecked )
{
RicImportObservedDataFeature : : selectObservedDataFileInDialog ( ) ;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2017-09-18 03:47:59 -05:00
void RicImportObservedDataFeature : : setupActionLook ( QAction * actionToSetup )
{
actionToSetup - > setIcon ( QIcon ( " :/Default.png " ) ) ;
2017-09-29 04:39:07 -05:00
actionToSetup - > setText ( " Import Observed Time History Data " ) ;
2017-09-18 03:47:59 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicImportObservedDataFeature : : createAndAddObservedDataFromFile ( const QString & fileName )
{
RiaApplication * app = RiaApplication : : instance ( ) ;
RimProject * proj = app - > project ( ) ;
RimObservedDataCollection * observedDataCollection = proj - > activeOilField ( ) ? proj - > activeOilField ( ) - > observedDataCollection ( ) : nullptr ;
if ( ! observedDataCollection ) return false ;
2017-09-25 07:37:41 -05:00
RimObservedData * newObservedData = observedDataCollection - > createAndAddObservedDataFromFileName ( fileName ) ;
2017-09-18 03:47:59 -05:00
return true ;
}