Back to index

salome-gui  6.5.0
SALOMEGUI_Swig.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  SALOME SALOMEGUI : implementation of desktop and GUI kernel
00024 // File   : SALOMEGUI_Swig.cxx
00025 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
00026 //
00027 #include "SALOMEGUI_Swig.hxx"
00028 
00029 #include <SUIT_Session.h>
00030 #include <SUIT_Desktop.h>
00031 #include <SUIT_ViewWindow.h>
00032 #include <SUIT_ViewManager.h>
00033 #include <SUIT_DataObjectIterator.h>
00034 #include <CAM_DataModel.h>
00035 #include <LightApp_Application.h>
00036 #include <LightApp_Displayer.h>
00037 #include <LightApp_Study.h>
00038 #include <LightApp_Module.h>
00039 #include <LightApp_DataObject.h>
00040 #include <LightApp_SelectionMgr.h>
00041 #include <LightApp_DataOwner.h>
00042 #include <SALOME_Prs.h>
00043 #include <SOCC_ViewModel.h>
00044 #include <SVTK_ViewModel.h>
00045 #include <SVTK_ViewWindow.h>
00046 #include <SOCC_ViewWindow.h>
00047 #include <SPlot2d_ViewWindow.h>
00048 
00049 #include <SALOME_Event.h>
00050 #include <SALOME_ListIO.hxx>
00051 #include <SALOME_InteractiveObject.hxx>
00052 #include <SALOME_ListIteratorOfListIO.hxx>
00053 
00089 /*
00090   --- INTERNAL COMMENTS SECTION ---
00091 
00092   ASV : 03.12.04 : added checking for NULL GUI objects in almost all methods.
00093   In the scope of fixing bug PAL6869.
00094 
00095   VSR : 19.04.05 : Reimplemented for new SALOME GUI (SUIT-based)
00096   All methods are implemeted using Event mechanism.
00097   Display/Erase methods use SALOME_Prs/SALOME_View mechanism. It is currently
00098   implemented only for OCC and VTK viewers.
00099 */
00100 
00106 static LightApp_Application* getApplication()
00107 {
00108   if ( SUIT_Session::session() )
00109     return dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() );
00110   return 0;
00111 }
00112 
00118 static LightApp_Study* getActiveStudy()
00119 {
00120   if ( getApplication() )
00121     return dynamic_cast<LightApp_Study*>( getApplication()->activeStudy() );
00122   return 0;
00123 }
00124 
00128 SALOMEGUI_Swig::SALOMEGUI_Swig()
00129 {
00130 }
00131 
00135 SALOMEGUI_Swig::~SALOMEGUI_Swig()
00136 {
00137 }
00138 
00145 class THasDesktopEvent: public SALOME_Event
00146 {
00147 public:
00148   typedef bool TResult;
00149   TResult myResult;
00150   THasDesktopEvent() : myResult( false ) {}
00151   virtual void Execute()
00152   {
00153     myResult = (bool)( getApplication() && getApplication()->desktop() );
00154   }
00155 };
00156 bool SALOMEGUI_Swig::hasDesktop()
00157 {
00158   return ProcessEvent( new THasDesktopEvent() );
00159 }
00160 
00165 void SALOMEGUI_Swig::updateObjBrowser( bool /*updateSelection*/ )
00166 {
00167   class TEvent: public SALOME_Event
00168   {
00169   public:
00170     TEvent() {}
00171     virtual void Execute()
00172     {
00173       if ( LightApp_Application* anApp = getApplication() ) {
00174         anApp->updateObjectBrowser();
00175         anApp->updateActions(); //SRN: added in order to update the toolbar
00176       }
00177     }
00178   };
00179   ProcessVoidEvent( new TEvent() );
00180 }
00181 
00188 class TGetActiveStudyIdEvent: public SALOME_Event
00189 {
00190 public:
00191   typedef int TResult;
00192   TResult myResult;
00193   TGetActiveStudyIdEvent() : myResult( 0 ) {}
00194   virtual void Execute()
00195   {
00196     if ( LightApp_Study* aStudy = getActiveStudy() ) {
00197       myResult = aStudy->id();
00198     }
00199   }
00200 };
00201 int SALOMEGUI_Swig::getActiveStudyId()
00202 {
00203   return ProcessEvent( new TGetActiveStudyIdEvent() );
00204 }
00205 
00212 class TGetActiveStudyNameEvent: public SALOME_Event
00213 {
00214 public:
00215   typedef std::string TResult;
00216   TResult myResult;
00217   TGetActiveStudyNameEvent() {}
00218   virtual void Execute()
00219   {
00220     if ( LightApp_Study* aStudy = getActiveStudy() ) {
00221       myResult = aStudy->id();
00222     }
00223   }
00224 };
00225 const char* SALOMEGUI_Swig::getActiveStudyName()
00226 {
00227   std::string result = ProcessEvent( new TGetActiveStudyNameEvent() );
00228   return result.empty() ? 0 : result.c_str();
00229 }
00230 
00245 class TGetComponentNameEvent: public SALOME_Event
00246 {
00247 public:
00248   typedef QString TResult;
00249   TResult myResult;
00250   QString myName;
00251   bool    myIsUserName;
00252   TGetComponentNameEvent( const QString& name, bool isUserName )
00253     : myName( name ), myIsUserName( isUserName ) {}
00254   virtual void Execute()
00255   {
00256     if ( LightApp_Application* app = getApplication() ) {
00257       myResult = myIsUserName ? app->moduleTitle( myName ) : app->moduleName( myName );
00258     }
00259   }
00260 };
00261 const char* SALOMEGUI_Swig::getComponentName( const char* componentUserName )
00262 {
00263   QString result = ProcessEvent( new TGetComponentNameEvent( componentUserName, false ) );
00264   return result.isEmpty() ? 0 : strdup( result.toLatin1().constData() );
00265 }
00266 const char* SALOMEGUI_Swig::getComponentUserName( const char* componentName )
00267 {
00268   QString result = ProcessEvent( new TGetComponentNameEvent( componentName, true ) );
00269   return result.isEmpty() ? 0 : strdup( result.toLatin1().constData() );
00270 }
00271 
00285 class TGetSelectedEvent: public SALOME_Event
00286 {
00287 public:
00288   typedef QStringList TResult;
00289   TResult myResult;
00290   TGetSelectedEvent() {}
00291   virtual void Execute()
00292   {
00293     if ( LightApp_Application* anApp = getApplication() ) {
00294       LightApp_Study* aStudy  = dynamic_cast<LightApp_Study*>( anApp->activeStudy() ); // for sure!
00295       LightApp_SelectionMgr* aSelMgr = anApp->selectionMgr(); 
00296       if ( aStudy && aSelMgr ) {
00297         SUIT_DataOwnerPtrList aList;
00298         aSelMgr->selected( aList );
00299 
00300         for ( SUIT_DataOwnerPtrList::const_iterator itr = aList.begin(); 
00301               itr != aList.end(); ++itr ) {
00302           const LightApp_DataOwner* owner = 
00303             dynamic_cast<const LightApp_DataOwner*>( (*itr).operator->() );
00304           if( !owner )
00305             continue;
00306           QString entry = owner->entry();
00307           if( !myResult.contains( entry ) )
00308             myResult.append( entry );
00309         }
00310       }
00311     }
00312   }
00313 };
00314 int SALOMEGUI_Swig::SelectedCount()
00315 {
00316   QStringList selected = ProcessEvent( new TGetSelectedEvent() );
00317   return selected.count();
00318 }
00319 const char* SALOMEGUI_Swig::getSelected( int index )
00320 {
00321   QStringList selected = ProcessEvent( new TGetSelectedEvent() );
00322   return index >= 0 && index < selected.count() ? 
00323     strdup( selected[ index ].toLatin1().constData() ) : 0;
00324 }
00325 
00330 void SALOMEGUI_Swig::AddIObject( const char* theEntry )
00331 {
00332   class TEvent: public SALOME_Event
00333   {
00334   public:
00335     QString myEntry;
00336     TEvent( const char* theEntry ) : myEntry( theEntry ) {}
00337     virtual void Execute()
00338     {
00339       if ( LightApp_Application* anApp = getApplication() ) {
00340         LightApp_Study*       aStudy  = dynamic_cast<LightApp_Study*>( anApp->activeStudy() ); // for sure!
00341         LightApp_SelectionMgr* aSelMgr = anApp->selectionMgr(); 
00342         if ( aStudy && aSelMgr ) {
00343           SALOME_ListIO anIOList;
00344           anIOList.Append( new SALOME_InteractiveObject( myEntry.toLatin1(), "", "" ) );
00345           aSelMgr->setSelectedObjects( anIOList, true );
00346         }
00347       }
00348     }
00349   };
00350   ProcessVoidEvent( new TEvent( theEntry ) );
00351 }
00352 
00357 void SALOMEGUI_Swig::RemoveIObject( const char* theEntry )
00358 {
00359   class TEvent: public SALOME_Event
00360   {
00361   public:
00362     QString myEntry;
00363     TEvent( const char* theEntry ) : myEntry( theEntry ) {}
00364     virtual void Execute()
00365     {
00366       if ( LightApp_Application* anApp = getApplication() ) {
00367         LightApp_Study* aStudy  = dynamic_cast<LightApp_Study*>( anApp->activeStudy() ); // for sure!
00368         LightApp_SelectionMgr* aSelMgr = anApp->selectionMgr(); 
00369         if ( aStudy && aSelMgr ) {
00370           SALOME_ListIO anIOList;
00371           // VSR: temporary solution, until LightApp_SelectionMgr::unsetSelectedObjects() method appears
00372           // Lately this should be replaced by the following:
00373           // anIOList.Append( new SALOME_InteractiveObject( myEntry, "", "" ) );
00374           // aSelMgr->unsetSelectedObjects( anIOList );
00376           aSelMgr->selectedObjects( anIOList );
00377           SALOME_ListIteratorOfListIO anIter( anIOList );
00378           for( ; anIter.More(); anIter.Next() ) {
00379             if ( anIter.Value()->isSame( new SALOME_InteractiveObject( myEntry.toLatin1(), "", "" ) ) ) { 
00380               anIOList.Remove( anIter );
00381               aSelMgr->setSelectedObjects( anIOList, true );
00382               return;
00383             }
00384           }
00385         }
00386       }
00387     }
00388   };
00389   ProcessVoidEvent( new TEvent( theEntry ) );
00390 }
00391 
00395 void SALOMEGUI_Swig::ClearIObjects()
00396 {
00397   class TEvent: public SALOME_Event
00398   {
00399   public:
00400     TEvent() {}
00401     virtual void Execute()
00402     {
00403       if ( LightApp_Application* anApp = getApplication() ) {
00404         LightApp_Study* aStudy  = dynamic_cast<LightApp_Study*>( anApp->activeStudy() ); // for sure!
00405         LightApp_SelectionMgr* aSelMgr = anApp->selectionMgr(); 
00406         if ( aStudy && aSelMgr )
00407           aSelMgr->clearSelected();
00408       }
00409     }
00410   };
00411   ProcessVoidEvent( new TEvent() );
00412 }
00413 
00422 void SALOMEGUI_Swig::Display( const char* theEntry )
00423 {
00424   class TEvent: public SALOME_Event
00425   {
00426     QString myEntry;
00427   public:
00428     TEvent( const char* theEntry ) : myEntry( theEntry ) {}
00429     virtual void Execute() {
00430       LightApp_Application* anApp  = getApplication();
00431       LightApp_Study*       aStudy = getActiveStudy();
00432       if ( anApp && aStudy ) {
00433        QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
00434        LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
00435        if ( d ) {
00436          QStringList entries;
00437          if( aStudy->isComponent( myEntry ) )
00438            aStudy->children( myEntry, entries );
00439          else
00440            entries.append( myEntry );
00441          foreach( QString entry, entries )
00442            d->Display( aStudy->referencedToEntry( entry ), false, 0 );
00443        }
00444       }
00445     }
00446   };
00447   ProcessVoidEvent( new TEvent( theEntry ) );
00448 }
00449 
00459 void SALOMEGUI_Swig::DisplayOnly( const char* theEntry )
00460 {
00461   class TEvent: public SALOME_Event
00462   {
00463     QString myEntry;
00464   public:
00465     TEvent( const char* theEntry ) : myEntry( theEntry ) {}
00466     virtual void Execute()
00467     {
00468       LightApp_Application* anApp  = getApplication();
00469       LightApp_Study*       aStudy = getActiveStudy();
00470       if ( anApp && aStudy ) {
00471        QStringList comps;
00472        aStudy->components( comps );
00473        foreach( QString comp, comps ) {
00474          LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
00475          if ( d ) d->EraseAll( false, false, 0 );
00476        }
00477 
00478        QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
00479        LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
00480        if ( d ) {
00481          QStringList entries;
00482          if( aStudy->isComponent( myEntry ) )
00483            aStudy->children( myEntry, entries );
00484          else
00485            entries.append( myEntry );
00486          foreach( QString entry, entries )
00487            d->Display( aStudy->referencedToEntry( entry ), false, 0 );
00488        }
00489       }
00490     }
00491   };
00492   ProcessVoidEvent( new TEvent( theEntry ) );
00493 }
00494 
00503 void SALOMEGUI_Swig::Erase( const char* theEntry )
00504 {
00505   class TEvent: public SALOME_Event
00506   {
00507     QString myEntry;
00508   public:
00509     TEvent( const char* theEntry ) : myEntry( theEntry ) {}
00510     virtual void Execute()
00511     {
00512       LightApp_Application* anApp  = getApplication();
00513       LightApp_Study*       aStudy = getActiveStudy();
00514       if ( anApp && aStudy ) {
00515        QString mname = anApp->moduleTitle( aStudy->componentDataType( myEntry ) );
00516        LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mname, true );
00517        if ( d ) {
00518          QStringList entries;
00519          if( aStudy->isComponent( myEntry ) )
00520            aStudy->children( myEntry, entries );
00521          else
00522            entries.append( myEntry );
00523          foreach( QString entry, entries )
00524            d->Erase( aStudy->referencedToEntry( entry ), false, false, 0 );
00525        }
00526       }
00527     }
00528   };
00529   ProcessVoidEvent( new TEvent( theEntry ) );
00530 }
00531 
00539 void SALOMEGUI_Swig::DisplayAll()
00540 {
00541   class TEvent: public SALOME_Event
00542   {
00543   public:
00544     TEvent() {}
00545     virtual void Execute()
00546     {
00547       LightApp_Application* anApp  = getApplication();
00548       LightApp_Study*       aStudy = getActiveStudy();
00549       if ( anApp && aStudy ) {
00550        QStringList comps;
00551        aStudy->components( comps );
00552        foreach( QString comp, comps ) {
00553          LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
00554          if ( d ) {
00555            QStringList entries;
00556            aStudy->children( aStudy->centry( comp ), entries );
00557            foreach( QString entry, entries )
00558              d->Display( aStudy->referencedToEntry( entry ), false, 0 );
00559          }
00560        }
00561       }
00562     }
00563   };
00564   ProcessVoidEvent( new TEvent() );
00565 }
00566 
00570 void SALOMEGUI_Swig::EraseAll()
00571 {
00572   class TEvent: public SALOME_Event
00573   {
00574   public:
00575     TEvent() {}
00576     virtual void Execute()
00577     {
00578       LightApp_Application* anApp  = getApplication();
00579       LightApp_Study*       aStudy = getActiveStudy();
00580       if ( anApp && aStudy ) {
00581        QStringList comps;
00582        aStudy->components( comps );
00583        foreach( QString comp, comps ) {
00584          LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( anApp->moduleTitle( comp ), true );
00585          if ( d ) d->EraseAll( false, false, 0 );
00586        }
00587       }
00588     }
00589   };
00590   ProcessVoidEvent( new TEvent() );
00591 }
00592 
00604 class TIsInViewerEvent: public SALOME_Event
00605 {
00606   QString myEntry;
00607 public:
00608   typedef bool TResult;
00609   TResult myResult;
00610   TIsInViewerEvent( const char* theEntry ) : myEntry( theEntry ), myResult( false ) {}
00611   virtual void Execute()
00612   {
00613     if ( LightApp_Application* anApp = getApplication() ) {
00614       SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
00615       if ( window ) {
00616         SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getViewModel() );
00617         if ( view ) {
00618           SALOME_Prs* aPrs = view->CreatePrs( myEntry.toLatin1() );
00619           myResult = !aPrs->IsNull();
00620         }
00621       }
00622     }
00623   }
00624 };
00625 bool SALOMEGUI_Swig::IsInCurrentView( const char* theEntry )
00626 {
00627   return ProcessEvent( new TIsInViewerEvent( theEntry ) );
00628 }
00629 
00633 void SALOMEGUI_Swig::UpdateView()
00634 {
00635   class TEvent: public SALOME_Event
00636   {
00637   public:
00638     TEvent() {}
00639     virtual void Execute()
00640     {
00641       if ( LightApp_Application* anApp = getApplication() ) {
00642         SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
00643         if ( window ) {
00644           SALOME_View* view = dynamic_cast<SALOME_View*>( window->getViewManager()->getViewModel() );
00645           if ( view )
00646             view->Repaint();
00647         }
00648       }
00649     }
00650   };
00651   ProcessVoidEvent( new TEvent() );
00652 }
00653 
00657 void SALOMEGUI_Swig::FitAll()
00658 {
00659   class TEvent: public SALOME_Event
00660   {
00661   public:
00662     TEvent() {}
00663     virtual void Execute()
00664     {
00665       if ( LightApp_Application* anApp = getApplication() ) {
00666         SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
00667         if ( window ) {
00668           if ( dynamic_cast<SVTK_ViewWindow*>( window ) )
00669             ( dynamic_cast<SVTK_ViewWindow*>( window ) )->onFitAll();
00670           else if ( dynamic_cast<OCCViewer_ViewWindow*>( window ) )
00671             ( dynamic_cast<OCCViewer_ViewWindow*>( window ) )->onFitAll();
00672           else if ( dynamic_cast<SPlot2d_ViewWindow*>( window ) )
00673             ( dynamic_cast<SPlot2d_ViewWindow*>( window ) )->onFitAll();
00674         }
00675       }
00676     }
00677   };
00678   ProcessVoidEvent( new TEvent() );
00679 }
00680 
00684 void SALOMEGUI_Swig::ResetView()
00685 {
00686   class TEvent: public SALOME_Event
00687   {
00688   public:
00689     TEvent() {}
00690     virtual void Execute()
00691     {
00692       if ( LightApp_Application* anApp = getApplication() ) {
00693         SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
00694         if ( window ) {
00695           if ( dynamic_cast<SVTK_ViewWindow*>( window ) )
00696             (dynamic_cast<SVTK_ViewWindow*>( window ))->onResetView();
00697           else if ( dynamic_cast<OCCViewer_ViewWindow*>( window ) )
00698             (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onResetView();
00699           else if ( dynamic_cast<SPlot2d_ViewWindow*>( window ) )
00700             (dynamic_cast<SPlot2d_ViewWindow*>( window ))->onFitAll();
00701           // VSR: there is no 'ResetView' functionality for Plot2d viewer,
00702           // so we use 'FitAll' instead.
00703         }
00704       }
00705     }
00706   };
00707   ProcessVoidEvent( new TEvent() );
00708 }
00709 
00714 enum {
00715   __ViewTop,          
00716   __ViewBottom,       
00717   __ViewLeft,         
00718   __ViewRight,        
00719   __ViewFront,        
00720   __ViewBack          
00721 };
00722 
00728 static void setView( int view )
00729 {
00730   class TEvent: public SALOME_Event
00731   {
00732   private:
00733     int myView;
00734   public:
00735     TEvent( int view ) : myView( view ) {}
00736     virtual void Execute()
00737     {
00738       if ( LightApp_Application* anApp = getApplication() ) {
00739         SUIT_ViewWindow* window = anApp->desktop()->activeWindow();
00740         if ( window ) {
00741           if ( dynamic_cast<SVTK_ViewWindow*>( window ) ) {
00742             switch( myView ) {
00743             case __ViewTop:
00744               (dynamic_cast<SVTK_ViewWindow*>( window ))->onTopView(); break;
00745             case __ViewBottom:
00746               (dynamic_cast<SVTK_ViewWindow*>( window ))->onBottomView(); break;
00747             case __ViewLeft:
00748               (dynamic_cast<SVTK_ViewWindow*>( window ))->onLeftView(); break;
00749             case __ViewRight:
00750               (dynamic_cast<SVTK_ViewWindow*>( window ))->onRightView(); break;
00751             case __ViewFront:
00752               (dynamic_cast<SVTK_ViewWindow*>( window ))->onFrontView(); break;
00753             case __ViewBack:
00754               (dynamic_cast<SVTK_ViewWindow*>( window ))->onBackView(); break;
00755             default:
00756               break;
00757             }
00758           }
00759           else if ( dynamic_cast<OCCViewer_ViewWindow*>( window ) ) {
00760             switch( myView ) {
00761             case __ViewTop:
00762               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onTopView(); break;
00763             case __ViewBottom:
00764               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onBottomView(); break;
00765             case __ViewLeft:
00766               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onLeftView(); break;
00767             case __ViewRight:
00768               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onRightView(); break;
00769             case __ViewFront:
00770               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onFrontView(); break;
00771             case __ViewBack:
00772               (dynamic_cast<OCCViewer_ViewWindow*>( window ))->onBackView(); break;
00773             default:
00774               break;
00775             }
00776           }
00777         }
00778       }
00779     }
00780   };
00781   ProcessVoidEvent( new TEvent( view ) );
00782 }
00783 
00787 void SALOMEGUI_Swig::ViewTop()
00788 {
00789   setView( __ViewTop );
00790 }
00791 
00795 void SALOMEGUI_Swig::ViewBottom()
00796 {
00797   setView( __ViewBottom );
00798 }
00799 
00803 void SALOMEGUI_Swig::ViewLeft()
00804 {
00805   setView( __ViewLeft );
00806 }
00807 
00811 void SALOMEGUI_Swig::ViewRight()
00812 {
00813   setView( __ViewRight );
00814 }
00815 
00819 void SALOMEGUI_Swig::ViewFront()
00820 {
00821   setView( __ViewFront );
00822 }
00823 
00827 void SALOMEGUI_Swig::ViewBack()
00828 {
00829   setView( __ViewBack );
00830 }