Salome HOME
debug IPAL9411: redefine virtual methods createEmptyStudy and activateModule
[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_Study.h"
9 #include "SalomeApp_DataModel.h"
10 #include "SalomeApp_Application.h"
11 #include "SalomeApp_Preferences.h"
12
13 #include <OB_Browser.h>
14
15 #include <CAM_Study.h>
16
17 #include <SUIT_MessageBox.h>
18 #include <SUIT_ResourceMgr.h>
19
20 #include <QtxPopupMgr.h>
21
22 SalomeApp_Module::SalomeApp_Module( const QString& name )
23 : CAM_Module( name ),
24 myPopupMgr( 0 )
25 {
26 }
27
28 SalomeApp_Module::~SalomeApp_Module()
29 {
30 }
31
32 void SalomeApp_Module::initialize( CAM_Application* app )
33 {
34   CAM_Module::initialize( app );
35
36   SUIT_ResourceMgr* resMgr = app ? app->resourceMgr() : 0;
37   if ( resMgr )
38     resMgr->raiseTranslators( name() );
39 }
40
41 bool SalomeApp_Module::activateModule( SUIT_Study* study )
42 {
43   bool res = CAM_Module::activateModule( study );
44
45   if ( res && application() && application()->resourceMgr() )
46     application()->resourceMgr()->raiseTranslators( name() );
47     
48   return res;
49 }
50
51 bool SalomeApp_Module::deactivateModule( SUIT_Study* )
52 {
53   return true;
54 }
55
56 void SalomeApp_Module::selectionChanged()
57 {
58 }
59
60 void SalomeApp_Module::MenuItem()
61 {
62 }
63
64 void SalomeApp_Module::windows( QMap<int, int>& ) const
65 {
66 }
67
68 void SalomeApp_Module::viewManagers( QStringList& ) const
69 {
70 }
71
72 void SalomeApp_Module::createPreferences()
73 {
74 }
75
76 void SalomeApp_Module::preferencesChanged( const QString&, const QString& )
77 {
78 }
79
80 SalomeApp_Application* SalomeApp_Module::getApp() const
81 {
82   return (SalomeApp_Application*)application();
83 }
84
85 void SalomeApp_Module::onModelOpened()
86 {
87 }
88
89 void SalomeApp_Module::onModelSaved()
90 {
91 }
92
93 void SalomeApp_Module::onModelClosed()
94 {
95 }
96
97 QtxPopupMgr* SalomeApp_Module::popupMgr()
98 {
99   if ( !myPopupMgr )
100     myPopupMgr = new QtxPopupMgr( 0, this );
101   return myPopupMgr;
102 }
103
104 SalomeApp_Preferences* SalomeApp_Module::preferences() const
105 {
106   SalomeApp_Preferences* pref = 0;
107   if ( getApp() )
108     pref = getApp()->preferences();
109   return pref;
110 }
111
112 CAM_DataModel* SalomeApp_Module::createDataModel()
113 {
114   return new SalomeApp_DataModel(this);
115 }
116
117 void SalomeApp_Module::updateObjBrowser( bool updateDataModel, SUIT_DataObject* root )
118 {
119   if( updateDataModel )
120     if( CAM_DataModel* aDataModel = dataModel() )
121       if( SalomeApp_DataModel* aModel = dynamic_cast<SalomeApp_DataModel*>( aDataModel ) )
122         aModel->update( 0, dynamic_cast<SalomeApp_Study*>( getApp()->activeStudy() ) );
123   getApp()->objectBrowser()->updateTree( root );
124 }
125
126 void SalomeApp_Module::contextMenuPopup( const QString& client, QPopupMenu* menu, QString& /*title*/ )
127 {
128   SalomeApp_Selection* sel = createSelection();
129   sel->init( client, getApp()->selectionMgr() );
130   popupMgr()->updatePopup( menu, sel );
131   delete sel;
132 }
133
134 SalomeApp_Selection* SalomeApp_Module::createSelection() const
135 {
136   return new SalomeApp_Selection();
137 }
138
139 int SalomeApp_Module::addPreference( const QString& label )
140 {
141   SalomeApp_Preferences* pref = preferences();
142   if ( !pref )
143     return -1;
144
145   int catId = pref->addPreference( moduleName(), -1 );
146   if ( catId == -1 )
147     return -1;
148
149   return pref->addPreference( label, catId );
150 }
151
152 int SalomeApp_Module::addPreference( const QString& label, const int pId, const int type,
153                                      const QString& section, const QString& param )
154 {
155   SalomeApp_Preferences* pref = preferences();
156   if ( !pref )
157     return -1;
158
159   return pref->addPreference( moduleName(), label, pId, type, section, param );
160 }
161
162 QVariant SalomeApp_Module::preferenceProperty( const int id, const QString& prop ) const
163 {
164   QVariant var;
165   SalomeApp_Preferences* pref = preferences();
166   if ( pref )
167     var = pref->property( id, prop );
168   return var;
169 }
170
171 void SalomeApp_Module::setPreferenceProperty( const int id, const QString& prop, const QVariant& var )
172 {
173   SalomeApp_Preferences* pref = preferences();
174   if ( pref )
175     pref->setProperty( id, prop, var );
176 }