]> SALOME platform Git repositories - modules/paravis.git/commitdiff
Salome HOME
Wrapping pqViewManager in SALOME view manager - part 2: create a built-in server...
authorsan <san@opencascade.com>
Fri, 14 Nov 2008 11:23:13 +0000 (11:23 +0000)
committersan <san@opencascade.com>
Fri, 14 Nov 2008 11:23:13 +0000 (11:23 +0000)
src/PVGUI/PVGUI_Module.cxx
src/PVGUI/PVGUI_Module.h
src/PVGUI/PVGUI_ViewManager.cxx
src/PVGUI/PVGUI_ViewManager.h
src/PVGUI/PVGUI_ViewWindow.cxx
src/PVGUI/PVGUI_ViewWindow.h

index fe41664575913513d80caa7b7652d6d93c693c88..6b18f554b8f703646215ddd11b692c7c83dc3a09 100644 (file)
 #include <QString>
 
 #include <pqOptions.h>
+#include <pqApplicationCore.h>
+#include <pqActiveServer.h>
+#include <pqObjectBuilder.h>
+#include <pqServer.h>
+#include <pqServerManagerModel.h>
+#include <pqServerResource.h>
+#include <pqViewManager.h>
 #include <vtkPVMain.h>
 #include <vtkProcessModule.h>
 
@@ -125,7 +132,8 @@ PVGUI_ProcessModuleHelper* PVGUI_Module::myPVHelper = 0;
   \brief Constructor. Sets the default name for the module.
 */
 PVGUI_Module::PVGUI_Module()
-: LightApp_Module( "PARAVIS" )
+  : LightApp_Module( "PARAVIS" ),
+    myActiveServer( 0 )
 {
 }
 
@@ -282,8 +290,7 @@ bool PVGUI_Module::pvInit()
       ret = myPVHelper->Run(myPVOptions);
     }
 
-    //delete[] argv;
-    cout << "*** ParaView client initalized!!!" << endl;
+    delete[] argv;
     return !ret;
   }
   
@@ -324,6 +331,50 @@ void PVGUI_Module::pvCreateActions()
   // TODO...
 }
 
+/*!
+  \brief Returns the active ParaView server connection.
+*/
+pqServer* PVGUI_Module::getActiveServer() const
+{
+  return myActiveServer->current();
+}
+
+/*!
+  \brief Returns the ParaView multi-view manager.
+*/
+pqViewManager* PVGUI_Module::getMultiViewManager() const
+{
+  pqViewManager* aMVM = 0; 
+  LightApp_Application* anApp = getApp();
+  PVGUI_ViewManager* aPVMgr = dynamic_cast<PVGUI_ViewManager*>( anApp->activeViewManager() );
+  if ( aPVMgr )
+    aMVM = aPVMgr->getMultiViewManager();
+  return aMVM;
+}
+
+/*!
+  \brief Creates a built-in server connection.
+*/
+void PVGUI_Module::makeDefaultConnectionIfNoneExists()
+{
+  if (this->getActiveServer())
+    {
+    return ;
+    }
+
+  pqApplicationCore* core = pqApplicationCore::instance();
+  if (core->getServerManagerModel()->getNumberOfItems<pqServer*>() != 0)
+    {
+    // cannot really happen, however, if no active server, yet
+    // server connection exists, we don't try to make a new server connection.
+    return ;
+    }
+
+  pqServerResource resource = pqServerResource("builtin:");
+  core->getObjectBuilder()->createServer(resource);
+}
+
+
 /*!
   \brief Activate module.
   \param study current study
@@ -339,9 +390,20 @@ bool PVGUI_Module::activateModule( SUIT_Study* study )
 
   showView( true );
 
+  // Make default server connection
+  // see pqMainWindowCore::makeDefaultConnectionIfNoneExists()
+  if ( !myActiveServer && getMultiViewManager() ) {
+    myActiveServer = new pqActiveServer( this );
+    QObject::connect ( myActiveServer, SIGNAL(changed(pqServer*)),
+                       getMultiViewManager(), SLOT(setActiveServer(pqServer*)) );
+  }
+
+  makeDefaultConnectionIfNoneExists();
+
   return isDone;
 }
 
+
 /*!
   \brief Deactivate module.
   \param study current study
index 6e562fe09fc62d0c87f077e4dfad289a551dc406..8f1c26180c0ed9dba5a10773f2c6d418ea57a8dd 100644 (file)
@@ -34,8 +34,11 @@ class LightApp_SelectionMgr;
 class PVGUI_ProcessModuleHelper;
 class vtkPVMain;
 class pqOptions;
+class pqServer;
+class pqActiveServer;
+class pqViewManager;
 
-class PVGUI_Module: public LightApp_Module
+class PVGUI_Module : public LightApp_Module
 {
   Q_OBJECT
    
@@ -60,6 +63,9 @@ public:
 
   //virtual LightApp_Selection* createSelection() const;
 
+  pqServer*              getActiveServer() const;
+  pqViewManager*         getMultiViewManager() const;
+
 protected:
   //virtual CAM_DataModel* createDataModel();
 
@@ -76,6 +82,8 @@ private:
   //! Shows or hides ParaView view window
   void                   showView( bool );         
 
+  void                   makeDefaultConnectionIfNoneExists();
+
 public slots:
   virtual bool           activateModule( SUIT_Study* );
   virtual bool           deactivateModule( SUIT_Study* );
@@ -84,6 +92,9 @@ private:
   static vtkPVMain*                 myPVMain;
   static pqOptions*                 myPVOptions;
   static PVGUI_ProcessModuleHelper* myPVHelper;
+
+  //! pqMainWindowCore stuff
+  pqActiveServer*                   myActiveServer;
 };
 
 #endif // PVGUI_Module_H
index 3cfb15dab332506a270d521a947c815c50b7351a..ef8841970d98276d2a48976ed2fe0acfab4516f8 100644 (file)
@@ -18,6 +18,7 @@
 //
 #include <PVGUI_ViewManager.h>
 #include <PVGUI_ViewModel.h>
+#include <PVGUI_ViewWindow.h>
 
 
 /*!
@@ -36,3 +37,14 @@ PVGUI_ViewManager::~PVGUI_ViewManager()
 {
 }
 
+/*!
+  \brief Returns the ParaView multi-view manager for the active view window
+*/
+pqViewManager* PVGUI_ViewManager::getMultiViewManager()
+{
+  pqViewManager* aMVM = 0;
+  PVGUI_ViewWindow* aVW = dynamic_cast<PVGUI_ViewWindow*>( getActiveView() );
+  if ( aVW )
+    aMVM = aVW->getMultiViewManager();
+  return aMVM;
+}
index a802c5bc2a87ea09850c855bc7033dd1c257119b..dc8be9fc007481d47000a411abb91c0ae0b5b335 100644 (file)
@@ -23,6 +23,7 @@
 
 class SUIT_Desktop;
 class SUIT_Study;
+class pqViewManager;
 
 class PVGUI_ViewManager : public SUIT_ViewManager
 {
@@ -31,6 +32,8 @@ class PVGUI_ViewManager : public SUIT_ViewManager
 public:
   PVGUI_ViewManager( SUIT_Study*, SUIT_Desktop* );
   ~PVGUI_ViewManager();
+
+  pqViewManager*     getMultiViewManager();
 };
 
 #endif
index 6d8cd608fa742420df01bbb79bb465bfc4ff5b01..d146a322e3358af4398bfe180da92633bd72a21f 100644 (file)
@@ -87,3 +87,11 @@ void PVGUI_ViewWindow::setVisualParameters( const QString& parameters )
 {
   SUIT_ViewWindow::setVisualParameters( parameters );
 }
+
+/*!
+  \brief Returns the ParaView multi-view manager for this view window
+*/
+pqViewManager* PVGUI_ViewWindow::getMultiViewManager() const
+{
+  return myPVMgr;
+}
index 9ea3f9675dc1468f82099ba44179365836d1c264..820924a68d19fd5cdb51e76e6f145fb6398b1bc6 100644 (file)
@@ -44,6 +44,7 @@ public:
   virtual QString   getVisualParameters();
   virtual void      setVisualParameters( const QString& );
   
+  pqViewManager*    getMultiViewManager() const;
 
 private:
   PVGUI_Viewer*     myModel;