]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
The standard way of update "Light" data models is provided. To use it, it is necessar...
authorasl <asl@opencascade.com>
Wed, 5 Apr 2006 06:21:45 +0000 (06:21 +0000)
committerasl <asl@opencascade.com>
Wed, 5 Apr 2006 06:21:45 +0000 (06:21 +0000)
Method build must only create objects, it is forbidden to delete them there

src/LightApp/LightApp_DataModel.cxx
src/LightApp/LightApp_DataModel.h

index 6ccba618b63040647a3148a455a722642723cc78..3eee894b66b98914a51e9b507bb78c29d7b70d9b 100644 (file)
@@ -6,10 +6,11 @@
 #include "LightApp_DataModel.h"
 #include "LightApp_Study.h"
 #include "LightApp_RootObject.h"
+#include "LightApp_DataObject.h"
 #include "LightApp_Module.h"
 #include "LightApp_Application.h"
 
-#include <CAM_DataObject.h>
+#include <OB_Browser.h>
 
 #include <SUIT_Application.h>
 #include <SUIT_ResourceMgr.h>
@@ -73,12 +74,44 @@ bool LightApp_DataModel::close()
   return true;
 }
 
+//================================================================
+// Function : build
+/*! Purpose  : Build whole data model tree */
+//================================================================
+void LightApp_DataModel::build()
+{
+}
+
+//================================================================
+// Function : updateWidgets
+/*! Purpose  : Update data model presentation in some widgets
+ * (for example, in object browser*/
+//================================================================
+void LightApp_DataModel::updateWidgets()
+{
+  LightApp_Application* app = dynamic_cast<LightApp_Application*>( module()->application() );
+  if( app )
+    app->objectBrowser()->updateTree( 0, false );
+}
+
 //================================================================
 // Function : update
 /*! Purpose  : Update application (empty virtual function).*/
 //================================================================
-void LightApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study )
+void LightApp_DataModel::update( LightApp_DataObject*, LightApp_Study* )
 {
+  LightApp_ModuleObject* modelRoot = dynamic_cast<LightApp_ModuleObject*>( root() );
+  DataObjectList ch;
+  if( modelRoot )
+  {
+    ch = modelRoot->children();
+    for ( DataObjectListIterator it( ch ); it.current(); ++it )
+      it.current()->setParent( 0 );
+  }
+  build();
+  updateWidgets();
+  for( DataObjectListIterator it( ch ); it.current(); ++it )
+    delete it.current();
 }
 
 //================================================================
index 7b1f92d6cbcee746f5a6ff73ecfecb0c0e1951d3..c0504a47333c94ef15381531eac03ceca9d2e12c 100644 (file)
@@ -47,7 +47,8 @@ signals:
 
 protected:
   LightApp_Study*                     getStudy() const;
-
+  virtual void                        build();
+  virtual void                        updateWidgets();
 };
 
 #endif