Salome HOME
"titled" popups implemented.
[modules/gui.git] / src / SalomeApp / SalomeApp_Module.cxx
1 // File:      SalomeApp_Module.cxx
2 // Created:   10/25/2004 11:39:56 AM
3 // Author:    Sergey LITONIN
4 // Copyright (C) CEA 2004
5
6 #include "SalomeApp_Module.h"
7
8 #include "SalomeApp_DataModel.h"
9 #include "SalomeApp_Application.h"
10 #include "SalomeApp_Study.h"
11
12 #include <OB_Browser.h>
13
14 #include <CAM_Study.h>
15
16 #include <SUIT_MessageBox.h>
17 #include <SUIT_ResourceMgr.h>
18
19 #include <QtxPopupMgr.h>
20
21 SalomeApp_Module::SalomeApp_Module( const QString& name )
22 : CAM_Module( name ),
23 myPopupMgr( 0 )
24 {
25 }
26
27 SalomeApp_Module::~SalomeApp_Module()
28 {
29 }
30
31 void SalomeApp_Module::initialize( CAM_Application* app )
32 {
33   CAM_Module::initialize( app );
34
35   SUIT_ResourceMgr* resMgr = app ? app->resourceMgr() : 0;
36   if ( resMgr )
37     resMgr->raiseTranslators( name() );
38 }
39
40 void SalomeApp_Module::activateModule( SUIT_Study* study )
41 {
42   CAM_Module::activateModule( study );
43
44   if ( application() && application()->resourceMgr() )
45     application()->resourceMgr()->raiseTranslators( name() );
46 }
47
48 void SalomeApp_Module::deactivateModule( SUIT_Study* )
49 {
50 }
51
52 void SalomeApp_Module::selectionChanged()
53 {
54 }
55
56 void SalomeApp_Module::MenuItem()
57 {
58 }
59
60 void SalomeApp_Module::windows( QMap<int, int>& ) const
61 {
62 }
63
64 void SalomeApp_Module::viewManagers( QStringList& ) const
65 {
66 }
67
68 QString SalomeApp_Module::engineIOR() const
69 {
70   // Return an empty string by default, to avoid any "default behavior".
71   // It means that SALOMEDS persistence is not used by a module by default.
72   // Each module can override this method to return either its actual engine's IOR,
73   // or simple the result returned by SalomeApp_Application::defaultEngineIOR()
74   return QString( "" );
75 }
76
77 SalomeApp_Application* SalomeApp_Module::getApp() const
78 {
79   return (SalomeApp_Application*)application();
80 }
81
82 void SalomeApp_Module::onModelOpened()
83 {
84 }
85
86 void SalomeApp_Module::onModelSaved()
87 {
88 }
89
90 void SalomeApp_Module::onModelClosed()
91 {
92 }
93
94 QtxPopupMgr* SalomeApp_Module::popupMgr()
95 {
96   if ( !myPopupMgr )
97     myPopupMgr = new QtxPopupMgr( 0, this );
98   return myPopupMgr;
99 }
100
101 CAM_DataModel* SalomeApp_Module::createDataModel()
102 {
103   return new SalomeApp_DataModel(this);
104 }
105
106 void SalomeApp_Module::updateObjBrowser( bool updateDataModel, SUIT_DataObject* root )
107 {
108   if( updateDataModel )
109     if( CAM_DataModel* aDataModel = dataModel() )
110       if( SalomeApp_DataModel* aModel = dynamic_cast<SalomeApp_DataModel*>( aDataModel ) )
111         aModel->update( 0, dynamic_cast<SalomeApp_Study*>( getApp()->activeStudy() ) );
112   getApp()->objectBrowser()->updateTree( root );
113 }
114
115 void SalomeApp_Module::contextMenuPopup( const QString& client, QPopupMenu* menu, QString& /*title*/ )
116 {
117   SalomeApp_Selection* sel = createSelection();
118   sel->init( client, getApp()->selectionMgr() );
119   popupMgr()->updatePopup( menu, sel );
120   delete sel;
121 }
122
123 SalomeApp_Selection* SalomeApp_Module::createSelection() const
124 {
125   return new SalomeApp_Selection();
126 }