Salome HOME
Methods to work with imagw references:
[modules/hydro.git] / src / HYDROData / HYDROData_CalculationCase.cxx
index b62bcb5c7366691c159074d3f6224899cd975c9c..adc5843e2afbbf7f6e68574544274e778a48ffb3 100644 (file)
@@ -28,7 +28,7 @@ QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTre
 {
   QStringList aResList;
 
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( this );
+  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
   if ( aDocument.IsNull() )
     return aResList;
                              
@@ -77,7 +77,7 @@ void HYDROData_CalculationCase::SplitGeometryObjects()
   // At first we remove previously created regions
   RemoveRegions();
 
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( this );
+  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
   if ( aDocument.IsNull() )
     return;
 
@@ -166,7 +166,7 @@ Handle(HYDROData_Region) HYDROData_CalculationCase::AddNewRegion( const Handle(H
     return aNewRegion;
 
   // Generate new name for new region
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( this );
+  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
   if ( !aDocument.IsNull() )
   {
     QString aNewRegionName = HYDROData_Tool::GenerateObjectName( aDocument, "Region" );
@@ -198,8 +198,11 @@ bool HYDROData_CalculationCase::AddRegion( const Handle(HYDROData_Region)& theRe
 
     theRegion->SetLabel( aNewRegion->Label() );
   }
+  else
+  {
+    AddReferenceObject( theRegion, DataTag_Region );
+  }
 
-  AddReferenceObject( theRegion, DataTag_Region );
   return true;
 }
 
@@ -225,12 +228,12 @@ void HYDROData_CalculationCase::RemoveRegion( const Handle(HYDROData_Region)& th
 void HYDROData_CalculationCase::RemoveRegions()
 {
   ClearReferenceObjects( DataTag_Region );
-  myLab.FindChild( ChildTag_Region ).ForgetAllAttributes( true );
+  myLab.FindChild( DataTag_ChildRegion ).ForgetAllAttributes( true );
 }
 
 Handle(HYDROData_Region) HYDROData_CalculationCase::addNewRegion()
 {
-  TDF_Label aNewLab = myLab.FindChild( ChildTag_Region ).NewChild();
+  TDF_Label aNewLab = myLab.FindChild( DataTag_ChildRegion ).NewChild();
 
   Handle(HYDROData_Region) aNewRegion =
     Handle(HYDROData_Region)::DownCast( HYDROData_Iterator::CreateObject( aNewLab, KIND_REGION ) );