]> SALOME platform Git repositories - modules/adao.git/blob - src/daSalome/daGUI/daGuiImpl/ADAOGUI_impl.py
Salome HOME
Ajout des boutons save et close, travaux en cours
[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     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     ctx = _setContext( sgPyQt.getStudyId() )
102     ctx.actionImpl.deactivate()
103     pass
104
105 # called when active study is changed
106 # active study ID is passed as parameter
107 def activeStudyChanged( studyID ):
108     ctx = _setContext( sgPyQt.getStudyId() )
109     pass
110
111
112 # called when popup menu is invoked
113 # popup menu and menu context are passed as parameters
114 def createPopupMenu( popup, context ):
115   activeStudyId = sgPyQt.getStudyId()
116   ctx = _setContext(sgPyQt.getStudyId())
117   selcount, selected = adaoGuiHelper.getAllSelected(activeStudyId)
118   if selcount == 1:
119     selectedItem = adaoGuiHelper.getSelectedItem(activeStudyId)
120     popup = ctx.uiComponentBuilder.createPopupMenuOnItem(popup, activeStudyId, selectedItem)
121
122 def OnGUIEvent(actionId) :
123     """
124     Called when an event is raised from a graphic item (click on menu item or
125     toolbar button). The actionId value is the ID associated to the item.
126     """
127     pass
128     ctx = _setContext( sgPyQt.getStudyId() )
129     ctx.actionImpl.processAction(actionId)
130
131 # called when module's preferences are changed
132 # preference's resources section and setting name are passed as parameters
133 def preferenceChanged( section, setting ):
134     pass
135
136 # called when active view is changed
137 # view ID is passed as parameter
138 def activeViewChanged( viewID ):
139     pass
140
141 # called when active view is cloned
142 # cloned view ID is passed as parameter
143 def viewCloned( viewID ):
144     pass
145
146 # called when active view is viewClosed
147 # view ID is passed as parameter
148 def viewClosed( viewID ):
149     pass
150