1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2010 EDF R&D
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.
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.
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
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 __author__="aribes/gboulant"
23 from enumerate import Enumerate
25 from salome.kernel import studyedit
27 import adaoModuleHelper
28 from daGuiImpl.adaoCase import AdaoCase
31 # ==============================================================================
32 # Constant parameters and identifiers
33 # ==============================================================================
35 ADAO_ITEM_TYPES = Enumerate([
40 # ==============================================================================
41 # Function dedicated to the data management in the salome study
42 # ==============================================================================
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
51 def addInStudy(salomeStudyId, adaoCase):
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.
58 studyEditor = studyedit.getStudyEditor(salomeStudyId)
60 adaoRootEntry = studyEditor.findOrCreateComponent(
61 moduleName = adaoModuleHelper.componentName(),
62 componentName = adaoModuleHelper.componentUserName(),
63 icon = adaoModuleHelper.modulePixmap())
65 itemName = adaoCase.name
66 itemValue = adaoCase.filename
67 itemType = ADAO_ITEM_TYPES.ADAO_CASE
69 icon = adaoModuleHelper.studyItemPixmapNOk()
71 icon = adaoModuleHelper.studyItemPixmapOk()
73 salomeStudyItem = studyEditor.createItem(
74 adaoRootEntry, itemName,
79 return salomeStudyItem
81 def updateItem(salomeStudyId, salomeStudyItem, adaoCase):
83 studyEditor = studyedit.getStudyEditor(salomeStudyId)
85 if salomeStudyItem.GetName()[:-2] != adaoCase.name:
86 itemName = adaoCase.name
87 itemValue = adaoCase.filename
89 itemName = salomeStudyItem.GetName()
90 itemValue = adaoCase.get_filename()
92 icon = adaoModuleHelper.studyItemPixmapNOk()
94 icon = adaoModuleHelper.studyItemPixmapOk()
96 studyEditor.setItem(salomeStudyItem,
101 def removeItem(salomeStudyId, item):
103 Remove the item from the specified study.
105 studyEditor = studyedit.getStudyEditor(salomeStudyId)
106 return studyEditor.removeItem(item,True)
109 def isValidAdaoCaseItem(salomeStudyId,item):
111 Return true if the specified item corresponds to a valid adaoCase
116 studyEditor = studyedit.getStudyEditor(salomeStudyId)
117 itemType = studyEditor.getTypeId(item)
118 if itemType != ADAO_ITEM_TYPES.ADAO_CASE: