Salome HOME
DATASSIM to ADAO
[modules/adao.git] / src / daSalome / daGUI / daGuiImpl / ADAOGUI_impl.py
1 # -*- coding: iso-8859-1 -*-
2 #  Copyright (C) 2010 EDF R&D
3 #
4 #  This library is free software; you can redistribute it and/or
5 #  modify it under the terms of the GNU Lesser General Public
6 #  License as published by the Free Software Foundation; either
7 #  version 2.1 of the License.
8 #
9 #  This library is distributed in the hope that it will be useful,
10 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 #  Lesser General Public License for more details.
13 #
14 #  You should have received a copy of the GNU Lesser General Public
15 #  License along with this library; if not, write to the Free Software
16 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20
21 __author__="aribes/gboulant"
22
23 from PyQt4.QtGui import *
24 from PyQt4.QtCore import *
25
26 import SalomePyQt
27 sgPyQt = SalomePyQt.SalomePyQt()
28
29 ################################################
30 # GUI context class
31 # Used to store actions, menus, toolbars, etc...
32 ################################################
33 # A gui context instance is created for each study. The dictionnary __study2context__
34 # keeps the mapping in memory. This context contains graphical objects that have
35 # to be created for each study. It contains at least the ui component builder that
36 # creates the menu and toolbar items (must be created for every study)
37
38 from daGuiImpl import adaoGuiHelper
39 from daGuiImpl.adaoGuiManager import AdaoGuiUiComponentBuilder
40 from daGuiImpl.adaoGuiManager import AdaoGuiActionImpl
41 class GUIcontext:
42     uiComponentBuilder = None
43     actionImpl = None
44     def __init__(self):
45         self.uiComponentBuilder = AdaoGuiUiComponentBuilder()
46         self.actionImpl = AdaoGuiActionImpl()
47
48
49 __study2context__   = {}
50 __current_context__ = None
51 def _setContext( studyID ):
52     global __study2context__, __current_context__
53     if not __study2context__.has_key(studyID):
54         print "create new context"
55         __study2context__[studyID] = GUIcontext()
56         pass
57     __current_context__ = __study2context__[studyID]
58     return __current_context__
59
60 # This object does not need to be embedded in a GUI context object. A single
61 # instance for all studies is a priori sufficient.
62
63 ################################################
64 # Implementation of SALOME GUI interface
65 ################################################
66
67 # called when module is initialized
68 # perform initialization actions
69 def initialize():
70     pass
71
72 # called when module is initialized
73 # return map of popup windows to be used by the module
74 def windows():
75     wm = {}
76     wm[SalomePyQt.WT_ObjectBrowser] = Qt.LeftDockWidgetArea
77     wm[SalomePyQt.WT_PyConsole]     = Qt.BottomDockWidgetArea
78     return wm
79
80 # called when module is initialized
81 # return list of 2d/3d views to be used ny the module
82 def views():
83     return []
84
85 def createPreferences():
86     """
87     Called when module is initialized. Export module's preferences.
88     """
89     pass
90
91 # called when module is activated
92 # returns True if activating is successfull and False otherwise
93 def activate():
94     print "activate study",  sgPyQt.getStudyId()
95     ctx = _setContext( sgPyQt.getStudyId() )
96     ctx.actionImpl.activate()
97     return True
98
99 # called when module is deactivated
100 def deactivate():
101     pass
102
103 # called when active study is changed
104 # active study ID is passed as parameter
105 def activeStudyChanged( studyID ):
106     ctx = _setContext( sgPyQt.getStudyId() )
107     pass
108
109
110 # called when popup menu is invoked
111 # popup menu and menu context are passed as parameters
112 def createPopupMenu( popup, context ):
113   activeStudyId = sgPyQt.getStudyId()
114   ctx = _setContext(sgPyQt.getStudyId())
115   selcount, selected = adaoGuiHelper.getAllSelected(activeStudyId)
116   if selcount == 1:
117     selectedItem = adaoGuiHelper.getSelectedItem(activeStudyId)
118     popup = ctx.uiComponentBuilder.createPopupMenuOnItem(popup, activeStudyId, selectedItem)
119
120 def OnGUIEvent(actionId) :
121     """
122     Called when an event is raised from a graphic item (click on menu item or
123     toolbar button). The actionId value is the ID associated to the item.
124     """
125     pass
126     ctx = _setContext( sgPyQt.getStudyId() )
127     ctx.actionImpl.processAction(actionId)
128
129 # called when module's preferences are changed
130 # preference's resources section and setting name are passed as parameters
131 def preferenceChanged( section, setting ):
132     pass
133
134 # called when active view is changed
135 # view ID is passed as parameter
136 def activeViewChanged( viewID ):
137     pass
138
139 # called when active view is cloned
140 # cloned view ID is passed as parameter
141 def viewCloned( viewID ):
142     pass
143
144 # called when active view is viewClosed
145 # view ID is passed as parameter
146 def viewClosed( viewID ):
147     pass
148