]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #602: show the special error message when export case with no submersible regions.
authormzn <mzn@opencascade.com>
Thu, 25 Jun 2015 06:23:41 +0000 (09:23 +0300)
committermzn <mzn@opencascade.com>
Thu, 25 Jun 2015 06:23:41 +0000 (09:23 +0300)
src/HYDROData/HYDROData_CalculationCase.cxx
src/HYDROData/HYDROData_CalculationCase.h
src/HYDROGUI/HYDROGUI_ExportCalculationOp.cxx

index 8027835c4d46a1834b05e44e83a6b7366a9c8c41..6f607c48a874dda18e21eda74852600363c66347 100644 (file)
@@ -1027,14 +1027,15 @@ QString HYDROData_CalculationCase::Export( int theStudyId ) const
   GEOM::GEOM_Gen_var aGEOMEngine = HYDROData_GeomTool::GetGeomGen();
   SALOMEDS::Study_var aDSStudy = HYDROData_GeomTool::GetStudyByID( theStudyId );
   
-  QString aGeomObjEntry;
-  bool isOK = Export( aGEOMEngine, aDSStudy, aGeomObjEntry );
+  QString aGeomObjEntry, anErrorMsg;
+  bool isOK = Export( aGEOMEngine, aDSStudy, aGeomObjEntry, anErrorMsg );
   return isOK ? aGeomObjEntry : QString();
 }
 
 bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var  theGeomEngine,
                                         SALOMEDS::Study_ptr theStudy,
-                                        QString& theGeomObjEntry ) const
+                                        QString& theGeomObjEntry,
+                                        QString& theErrorMsg ) const
 {
   HYDROData_ShapesGroup::SeqOfGroupsDefs aSeqOfGroupsDefs;
 
@@ -1059,6 +1060,7 @@ bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var  theGeomEngine,
   }
   
   // Get faces
+  bool isAllNotSubmersible = true;
   TopTools_ListOfShape aFaces;
   HYDROData_SequenceOfObjects aCaseRegions = GetRegions( false );
   HYDROData_SequenceOfObjects::Iterator aRegionIter( aCaseRegions );
@@ -1068,12 +1070,25 @@ bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var  theGeomEngine,
       Handle(HYDROData_Region)::DownCast( aRegionIter.Value() );
     if( aRegion.IsNull() || !aRegion->IsSubmersible() )
       continue;
+    
+    if ( isAllNotSubmersible )
+      isAllNotSubmersible = false;
 
     TopoDS_Shape aRegionShape = aRegion->GetShape( &aSeqOfGroupsDefs );
     aFaces.Append( aRegionShape );
   }
 
-  return Export( theGeomEngine, theStudy, aFaces, aSeqOfGroupsDefs, theGeomObjEntry );
+  bool aRes = false;
+
+  if ( aCaseRegions.IsEmpty() ) {
+    theErrorMsg = QString("the list of regions is empty.");
+  } else if ( isAllNotSubmersible ) {
+    theErrorMsg = QString("there are no submersible regions.");
+  } else {
+    aRes = Export( theGeomEngine, theStudy, aFaces, aSeqOfGroupsDefs, theGeomObjEntry );;
+  }
+
+  return aRes;
 }
 
 bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var                            theGeomEngine,
index 0dd025ed46cd18f2937a8c9b0ec96977a039eaff..43b0d14ec2f3c0d1763f8ee0f5410976e158ffc1 100644 (file)
@@ -297,11 +297,14 @@ public:
    * Exports the calculation case data (shell and groups) to GEOM module.
    * \param theGeomEngine GEOM module engine
    * \param theStudy SALOMEDS study, is used for publishing of GEOM objects
+   * \param theGeomObjEntry the published GEOM object entry
+   * \param theErrorMsg the error message
    * \return true in case of success
    */
   HYDRODATA_EXPORT virtual bool Export( GEOM::GEOM_Gen_var  theGeomEngine,
                                         SALOMEDS::Study_ptr theStudy,
-                                        QString& theGeomObjEntry ) const;
+                                        QString& theGeomObjEntry,
+                                        QString& theErrorMsg ) const;
 
 public:      
   // Public methods to work with Calculation services
index 4ee707347258db6519a6c85f9041314163de9ccd..c911f1d048da8969044b861af2f61cf6ea345897 100644 (file)
@@ -84,11 +84,12 @@ bool HYDROGUI_ExportCalculationOp::processApply( int& theUpdateFlags,
     dynamic_cast<SalomeApp_Study*>( module()->getApp()->activeStudy() );
 
   // Export
+  QString anErrorMsg;
   if ( aStudy ) {
     SALOMEDS::Study_var aDSStudy = GeometryGUI::ClientStudyToStudy( aStudy->studyDS() );
     GEOM::GEOM_Gen_var aGeomEngine = GeometryGUI::GetGeomGen();
     QString anEntry;
-    if ( aCalculation->Export( aGeomEngine, aDSStudy, anEntry ) ) {
+    if ( aCalculation->Export( aGeomEngine, aDSStudy, anEntry, theErrorMsg ) ) {
       theUpdateFlags = UF_ObjBrowser;
       isOk = true;
     }