Salome HOME
Nettoyage code
[modules/adao.git] / src / daSalome / daGUI / daGuiImpl / ADAOGUI_impl.py
1 # -*- coding: utf-8 -*-
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   print "views"
84   return []
85
86 def createPreferences():
87     """
88     Called when module is initialized. Export module's preferences.
89     """
90     pass
91
92 # called when module is activated
93 # returns True if activating is successfull and False otherwise
94 def activate():
95     print "activate study",  sgPyQt.getStudyId()
96     ctx = _setContext( sgPyQt.getStudyId() )
97     ctx.actionImpl.activate()
98     return True
99
100 # called when module is deactivated
101 def deactivate():
102     ctx = _setContext( sgPyQt.getStudyId() )
103     ctx.actionImpl.deactivate()
104     pass
105
106 # called when active study is changed
107 # active study ID is passed as parameter
108 def activeStudyChanged( studyID ):
109     ctx = _setContext( sgPyQt.getStudyId() )
110     pass
111
112
113 # called when popup menu is invoked
114 # popup menu and menu context are passed as parameters
115 def createPopupMenu( popup, context ):
116   activeStudyId = sgPyQt.getStudyId()
117   ctx = _setContext(sgPyQt.getStudyId())
118   selcount, selected = adaoGuiHelper.getAllSelected(activeStudyId)
119   if selcount == 1:
120     selectedItem = adaoGuiHelper.getSelectedItem(activeStudyId)
121     popup = ctx.uiComponentBuilder.createPopupMenuOnItem(popup, activeStudyId, selectedItem)
122
123 def OnGUIEvent(actionId) :
124     """
125     Called when an event is raised from a graphic item (click on menu item or
126     toolbar button). The actionId value is the ID associated to the item.
127     """
128     pass
129     print "OnGUIEvent", actionId
130     ctx = _setContext( sgPyQt.getStudyId() )
131     ctx.actionImpl.processAction(actionId)
132
133 # called when module's preferences are changed
134 # preference's resources section and setting name are passed as parameters
135 def preferenceChanged( section, setting ):
136     pass
137
138 # called when active view is changed
139 # view ID is passed as parameter
140 def activeViewChanged( viewID ):
141   print "activeViewChanged", viewID
142   pass
143
144 # called when active view is cloned
145 # cloned view ID is passed as parameter
146 def viewCloned( viewID ):
147     pass
148
149 # called when active view is viewClosed
150 # view ID is passed as parameter
151 def viewClosed( viewID ):
152     pass
153