Salome HOME
HYDRO Feature 1: Import images (T 1.3)
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataModel.cxx
index 60952405b862b42cee49366beede115457ae9edc..1c8368ffaf5d37f99c03aeb4cd531f6065a0d6b2 100644 (file)
@@ -29,6 +29,9 @@
 #include <HYDROData_Document.h>
 #include <HYDROData_Image.h>
 #include <HYDROData_Iterator.h>
+#include <HYDROData_Polyline.h>
+#include <HYDROData_VisualState.h>
+#include <HYDROData_Bathymetry.h>
 
 #include <CAM_Application.h>
 #include <CAM_DataObject.h>
@@ -147,8 +150,7 @@ bool HYDROGUI_DataModel::close()
 
 bool HYDROGUI_DataModel::isModified() const
 {
-  int aStudyId = module()->application()->activeStudy()->id();
-  return HYDROData_Document::Document( aStudyId )->IsModified();
+  return getDocument()->IsModified();
 }
 
 bool HYDROGUI_DataModel::isSaved() const
@@ -195,6 +197,39 @@ void HYDROGUI_DataModel::update( const int theStudyId )
       createObject( anImageRootObj, anImageObj );
   }
 
+  LightApp_DataObject* aBathymetryRootObj = createObject( aRootObj, "BATHYMETRIES" );
+
+  anIterator = HYDROData_Iterator( aDocument, KIND_BATHYMETRY );
+  for( ; anIterator.More(); anIterator.Next() )
+  {
+    Handle(HYDROData_Bathymetry) aBathymetryObj =
+      Handle(HYDROData_Bathymetry)::DownCast( anIterator.Current() );
+    if( !aBathymetryObj.IsNull() )
+      createObject( aBathymetryRootObj, aBathymetryObj );
+  }
+
+  LightApp_DataObject* aPolylineRootObj = createObject( aRootObj, "POLYLINES" );
+
+  anIterator = HYDROData_Iterator( aDocument, KIND_POLYLINE );
+  for( ; anIterator.More(); anIterator.Next() )
+  {
+    Handle(HYDROData_Polyline) aPolylineObj =
+      Handle(HYDROData_Polyline)::DownCast( anIterator.Current() );
+    if( !aPolylineObj.IsNull() )
+      createObject( aPolylineRootObj, aPolylineObj );
+  }
+
+  LightApp_DataObject* aVisualStateRootObj = createObject( aRootObj, "VISUAL_STATES" );
+
+  anIterator = HYDROData_Iterator( aDocument, KIND_VISUAL_STATE );
+  for( ; anIterator.More(); anIterator.Next() )
+  {
+    Handle(HYDROData_VisualState) aVisualStateObj =
+      Handle(HYDROData_VisualState)::DownCast( anIterator.Current() );
+    if( !aVisualStateObj.IsNull() )
+      createObject( aVisualStateRootObj, aVisualStateObj );
+  }
+
   if( SUIT_DataBrowser* anObjectBrowser = anApp->objectBrowser() )
   {
     anObjectBrowser->setAutoOpenLevel( 3 );
@@ -244,8 +279,7 @@ void HYDROGUI_DataModel::updateModel()
 Handle(HYDROData_Object) HYDROGUI_DataModel::objectByEntry( const QString& theEntry,
                                                             const ObjectKind theObjectKind )
 {
-  const int aStudyId = module()->application()->activeStudy()->id();
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( aStudyId );
+  Handle(HYDROData_Document) aDocument = getDocument();
   if( !aDocument.IsNull() )
   {
     HYDROData_Iterator anIterator( aDocument, theObjectKind );