+ HYDROGUI_StricklerTableDlg* aPanel = ::qobject_cast<HYDROGUI_StricklerTableDlg*>( inputPanel() );
+ if ( !aPanel )
+ return false;
+
+ QString aFilePath;
+ if( !isEdit() )
+ {
+ aFilePath = aPanel->getFileName();
+ if ( aFilePath.isEmpty() )
+ {
+ theErrorMsg = tr( "SELECT_STRICKLER_TABLE_FILE" ).arg( aFilePath );
+ return false;
+ }
+ }
+
+ QString aStricklerTableName = aPanel->getTableName().simplified();
+ if ( aStricklerTableName.isEmpty() )
+ {
+ theErrorMsg = tr( "INCORRECT_OBJECT_NAME" );
+ return false;
+ }
+
+ if ( isImport() || ( isEdit() && !myObject.IsNull() && myObject->GetName() != aStricklerTableName ) )
+ {
+ // check that there are no other objects with the same name in the document
+ Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), aStricklerTableName );
+ if( !anObject.IsNull() )
+ {
+ theErrorMsg = tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( aStricklerTableName );
+ return false;
+ }
+ }
+
+ Handle(HYDROData_StricklerTable) aStricklerTableObj;
+ if ( isImport() )
+ {
+ aStricklerTableObj = Handle(HYDROData_StricklerTable)::DownCast( doc()->CreateObject( KIND_STRICKLER_TABLE ) );
+ QString anEntry = HYDROGUI_DataObject::dataObjectEntry( aStricklerTableObj );
+ theBrowseObjectsEntries.append( anEntry );
+ }
+ else
+ aStricklerTableObj = myObject;
+
+ if ( aStricklerTableObj.IsNull() )
+ return false;
+
+ if ( isExport() )
+ {
+ bool res = false;
+ QString aFilePath = aPanel->getFileName().simplified();
+ if ( !aFilePath.isEmpty() )
+ res = aStricklerTableObj->Export( HYDROGUI_Tool::ToAsciiString( aFilePath ) );
+ return res;
+ }
+
+ startDocOperation();
+
+ aStricklerTableObj->SetName( aStricklerTableName );
+
+ if( isEdit() )
+ {
+ // Get data from input panel's table and save it into data model object
+ aStricklerTableObj->Clear();
+ HYDROGUI_StricklerTableDlg::StricklerCoefficientList aData = aPanel->getData();
+ for ( HYDROGUI_StricklerTableDlg::StricklerCoefficientList::iterator it = aData.begin(); it != aData.end(); ++it )
+ {
+ const HYDROGUI_StricklerTableDlg::StricklerCoefficient& anInfo = *it;
+ aStricklerTableObj->Set( HYDROGUI_Tool::ToExtString( anInfo.myType ), anInfo.myCoefficient );
+ }
+ }
+ else