Salome HOME
Modification de l'ENGINE pour pouvoir avoir l'icone dans l'étude
[modules/adao.git] / src / daSalome / daGUI / daGuiImpl / adaoStudyEditor.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 enumerate import Enumerate
24
25 from salome.kernel import studyedit
26
27 import adaoModuleHelper
28 from daGuiImpl.adaoCase import AdaoCase
29
30 #
31 # ==============================================================================
32 # Constant parameters and identifiers
33 # ==============================================================================
34 #
35 ADAO_ITEM_TYPES = Enumerate([
36     "ADAO_CASE",
37 ])
38
39 #
40 # ==============================================================================
41 # Function dedicated to the data management in the salome study
42 # ==============================================================================
43
44 # For developpers, note that the data structures used here are:
45 # - the SALOME study whose API is defined by SALOMEDS::Study
46 # - an item in a study whose API is defined by SALOMEDS:SObject
47 # - a study component, whose API is defined by SALOMEDS::SComponent
48 #   a SComponent is a reference in a study toward a SALOME component
49 #
50
51 def addInStudy(salomeStudyId, adaoCase):
52     """
53     This function adds in the specified SALOME study a study entry that corresponds
54     to the specified adao case. This study case is put in a folder under
55     the ADAO component and is identified by the case name.
56     """
57
58     studyEditor = studyedit.getStudyEditor(salomeStudyId)
59
60     adaoRootEntry = studyEditor.findOrCreateComponent(
61         moduleName    = adaoModuleHelper.componentName(),
62         componentName = adaoModuleHelper.componentUserName(),
63         icon          = adaoModuleHelper.modulePixmap())
64
65     itemName  = adaoCase.name
66     itemValue = adaoCase.filename
67     itemType  = ADAO_ITEM_TYPES.ADAO_CASE
68
69     salomeStudyItem = studyEditor.createItem(
70         adaoRootEntry, itemName,
71         comment = itemValue,
72         typeId  = itemType)
73
74     return salomeStudyItem
75
76 def updateItem(salomeStudyId, salomeStudyItem, adaoCase):
77
78     studyEditor = studyedit.getStudyEditor(salomeStudyId)
79
80     if salomeStudyItem.GetName()[:-2] != adaoCase.name:
81       itemName  = adaoCase.name
82       itemValue = adaoCase.filename
83     else:
84       itemName  = salomeStudyItem.GetName()
85       itemValue = adaoCase.get_filename()
86
87     studyEditor.setItem(salomeStudyItem,
88         name    = itemName,
89         comment = itemValue)
90
91 def removeItem(salomeStudyId, item):
92     """
93     Remove the item from the specified study.
94     """
95     studyEditor = studyedit.getStudyEditor(salomeStudyId)
96     return studyEditor.removeItem(item,True)
97
98
99 def isValidAdaoCaseItem(salomeStudyId,item):
100     """
101     Return true if the specified item corresponds to a valid adaoCase
102     """
103     if item is None:
104         return False
105
106     studyEditor = studyedit.getStudyEditor(salomeStudyId)
107     itemType = studyEditor.getTypeId(item)
108     if itemType != ADAO_ITEM_TYPES.ADAO_CASE:
109         return False
110
111     return True