Salome HOME
Premiere Action: newcase :-)
[modules/adao.git] / src / daSalome / daGUI / daGuiImpl / datassimGuiManager.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 """
22 This file centralizes the definitions and implementations of ui components used
23 in the GUI part of the module.
24 """
25
26 __author__ = "aribes/gboulant"
27
28 import traceback
29 from PyQt4.QtCore import QObject
30 import SalomePyQt
31 sgPyQt = SalomePyQt.SalomePyQt()
32
33 from daGuiImpl.enumerate import Enumerate
34 #
35 # ==============================================================================
36 # Classes to manage the building of UI components
37 # ==============================================================================
38 #
39 UI_ELT_IDS = Enumerate([
40         'DATASSIM_MENU_ID',
41         'NEW_DATASSIMCASE_ID',
42         ],offset=950)
43
44 ACTIONS_MAP={
45     UI_ELT_IDS.NEW_DATASSIMCASE_ID:"newDatassimCase",
46 }
47
48 class DatassimGuiUiComponentBuilder:
49     """
50     The initialisation of this class creates the graphic components involved
51     in the GUI (menu, menu item, toolbar). A ui component builder should be
52     created for each opened study and associated to its context (see usage in OMAGUI.py).
53     """
54     def __init__(self):
55         self.initUiComponents()
56
57     def initUiComponents(self):
58         
59         objectTR = QObject()
60
61         # create top-level menu
62         mid = sgPyQt.createMenu( "DATASSIM", -1, UI_ELT_IDS.DATASSIM_MENU_ID, sgPyQt.defaultMenuGroup() )
63         # create toolbar
64         tid = sgPyQt.createTool( "DATASSIM" )
65
66         a = sgPyQt.createAction( UI_ELT_IDS.NEW_DATASSIMCASE_ID, "New case", "New case", "Create a new datassim case", "" )
67         sgPyQt.createMenu(a, mid)
68         sgPyQt.createTool(a, tid)
69
70 class DatassimGuiActionImpl():
71     """
72     This class implements the ui actions concerning the management of oma study
73     cases.
74     """
75     __dlgNewStudyCase = None
76     __dlgEficasWrapper = None
77
78     def __init__(self):
79         pass
80         # This dialog is created once so that it can be recycled for each call
81         # to newOmaCase().
82         #self.__dlgNewStudyCase = DlgNewStudyCase()
83         #self.__dlgEficasWrapper = OmaEficasWrapper(parent=SalomePyQt.SalomePyQt().getDesktop())
84
85     # ==========================================================================
86     # Processing of ui actions
87     #
88     def processAction(self,actionId):
89         """
90         Main switch function for ui actions processing
91         """
92         if ACTIONS_MAP.has_key(actionId):
93             try:
94                 functionName = ACTIONS_MAP[actionId]
95                 getattr(self,functionName)()
96             except:
97                 traceback.print_exc()
98         else:
99             msg = "The requested action is not implemented: " + str(actionId)
100             print msg
101
102     def newDatassimCase(self):
103       print "newDatassimCase"