Salome HOME
Refs #288 - the profile section selected and addition mode is activated
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataModel.cxx
index e1a64a838c2d86a0e36378a236d6eeacb3b6ad47..9f6a00d182a3ad3551a7e723ebaa9ac80b67f66a 100644 (file)
@@ -555,10 +555,9 @@ bool HYDROGUI_DataModel::canCopy()
     return false;
 
   ObjectKind aKind = anObject->GetKind();
-  if( aKind == KIND_IMAGE ||
-      aKind == KIND_POLYLINE ||
-      aKind == KIND_PROFILE ||
-      aKind == KIND_CALCULATION )
+  if( aKind > KIND_UNKNOWN && aKind <= KIND_LAST &&
+      aKind != KIND_DUMMY_3D && aKind != KIND_ZONE && 
+      aKind != KIND_SHAPES_GROUP && aKind != KIND_SPLITTED_GROUP )
     return true;
 
   return false;
@@ -828,6 +827,33 @@ void HYDROGUI_DataModel::buildObjectTree( SUIT_DataObject* theParent,
     Handle(HYDROData_CalculationCase) aCaseObj =
       Handle(HYDROData_CalculationCase)::DownCast( aDataObj );
 
+    LightApp_DataObject* aCaseAOSect = 
+      createObject( aGuiObj, tr( partitionName( KIND_ARTIFICIAL_OBJECT ).toAscii() ),
+                    aGuiObj->entry() );
+    LightApp_DataObject* aCaseNOSect = 
+      createObject( aGuiObj, tr( partitionName( KIND_NATURAL_OBJECT ).toAscii() ),
+                    aGuiObj->entry() );
+
+    HYDROData_SequenceOfObjects aSeq = aCaseObj->GetGeometryObjects();
+    HYDROData_SequenceOfObjects::Iterator aGOIter( aSeq );
+    Handle(HYDROData_Entity) anEntity;
+    Handle(HYDROData_ArtificialObject) anAObject;
+    Handle(HYDROData_NaturalObject) aNObject;
+    for ( ; aGOIter.More(); aGOIter.Next() )
+    {
+      anEntity = aGOIter.Value();
+      if ( anEntity.IsNull() )
+        continue;
+      anAObject = Handle(HYDROData_ArtificialObject)::DownCast( anEntity );
+      if ( !anAObject.IsNull() )
+        createObject( aCaseAOSect, anAObject, aGuiObj->entry(), false );
+      else
+      {
+        aNObject = Handle(HYDROData_NaturalObject)::DownCast( anEntity );
+        if ( !aNObject.IsNull() )
+          createObject( aCaseNOSect, aNObject, aGuiObj->entry(), false );
+      }
+    }
     LightApp_DataObject* aCaseRegionsSect = 
       createObject( aGuiObj, tr( "CASE_REGIONS" ), aGuiObj->entry() );