]> SALOME platform Git repositories - modules/yacs.git/blob - src/pyqt/gui/cataitems.py
Salome HOME
mergefrom branch BR_V511_PR tag mergeto_trunk_03feb09
[modules/yacs.git] / src / pyqt / gui / cataitems.py
1 #  Copyright (C) 2006-2008  CEA/DEN, EDF R&D
2 #
3 #  This library is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU Lesser General Public
5 #  License as published by the Free Software Foundation; either
6 #  version 2.1 of the License.
7 #
8 #  This library is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 #  Lesser General Public License for more details.
12 #
13 #  You should have received a copy of the GNU Lesser General Public
14 #  License along with this library; if not, write to the Free Software
15 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 from qt import *
20
21 import Item
22 import CONNECTOR
23 import Items
24
25 class Obj(Item.Item):
26   def __init__(self,root=None):
27     Item.Item.__init__(self)
28     if root:
29       self.root=root
30     else:
31       self.root=self
32
33   def selected(self):
34     if not self.emitting:
35       self.emitting=1
36       CONNECTOR.Emit(self.root,"selected",self)
37       self.emitting=0
38
39   def panel(self,parent):
40     """Retourne un tab widget pour browser/editer la proc"""
41     tabWidget = QTabWidget( parent )
42     for name,method in self.panels:
43       tabWidget.addTab( method(self,tabWidget), name )
44     return tabWidget
45
46   box=panel
47
48   def panel1(self,parent):
49     qvbox=QVBox(parent)
50     self.text=QTextEdit(qvbox,"log")
51     self.text.setFrameShape(QTextEdit.NoFrame)
52     self.text.setTextFormat(QTextEdit.PlainText)
53     self.text.setWordWrap(QTextEdit.FixedColumnWidth)
54     #self.text.setWrapColumnOrWidth(120)
55     self.text.setReadOnly(1)
56     return qvbox
57
58   panels=[("Panel1",panel1)]
59
60 class ItemService(Item.Item):
61   def __init__(self,service,root):
62     Item.Item.__init__(self)
63     self.root=root
64     self.service=service
65     self.label=service.getName()
66
67   def isExpandable(self):
68     return True
69
70   def addNode(self,appli):
71     appli.addNode(self.service)
72
73   def getChildren(self):
74     sublist=[]
75     for port in self.service.getSetOfInputPort():
76       sublist.append(Items.ItemInPort(port,self.root))
77     for port in self.service.getSetOfOutputPort():
78       sublist.append(Items.ItemOutPort(port,self.root))
79     for port in self.service.getSetOfInputDataStreamPort():
80       sublist.append(Items.ItemInStream(port,self.root))
81     for port in self.service.getSetOfOutputDataStreamPort():
82       sublist.append(Items.ItemOutStream(port,self.root))
83     return sublist
84
85   def selected(self):
86     if not self.emitting:
87       self.emitting=1
88       CONNECTOR.Emit(self.root,"selected",self)
89       self.emitting=0
90
91 class ItemType(Item.Item):
92   def __init__(self,typ,root,name=""):
93     Item.Item.__init__(self)
94     self.typ=typ
95     self.root=root
96     if name:
97       self.label=name
98     else:
99       self.label=typ.name()
100
101   def isExpandable(self):
102     return True
103
104   def getChildren(self):
105     sublist=[]
106     return sublist
107
108   def selected(self):
109     if not self.emitting:
110       self.emitting=1
111       CONNECTOR.Emit(self.root,"selected",self)
112       self.emitting=0
113
114 class ItemCompo(Item.Item):
115   def __init__(self,compo,root):
116     Item.Item.__init__(self)
117     self.compo=compo
118     self.root=root
119     self.label=compo.getName()
120
121   def isExpandable(self):
122     return True
123
124   def getChildren(self):
125     sublist=[]
126     for service in self.compo._serviceMap.values():
127       itemservice=ItemService(service,self.root)
128       sublist.append(itemservice)
129     return sublist
130
131   def selected(self):
132     if not self.emitting:
133       self.emitting=1
134       CONNECTOR.Emit(self.root,"selected",self)
135       self.emitting=0
136
137 class ItemNode(Item.Item):
138   def __init__(self,node,root):
139     Item.Item.__init__(self)
140     self.node=node
141     self.root=root
142     self.label=node.getName()
143
144   def isExpandable(self):
145     return True
146
147   def addNode(self,appli):
148     appli.addNode(self.node)
149
150   def getChildren(self):
151     sublist=[]
152     return sublist
153
154   def selected(self):
155     if not self.emitting:
156       self.emitting=1
157       CONNECTOR.Emit(self.root,"selected",self)
158       self.emitting=0
159
160 class ItemComposedNode(Item.Item):
161   def __init__(self,node,root):
162     Item.Item.__init__(self)
163     self.node=node
164     self.root=root
165     self.label=node.getName()
166
167   def addNode(self,appli):
168     appli.addNode(self.node)
169
170   def isExpandable(self):
171     return True
172
173   def getChildren(self):
174     sublist=[]
175     return sublist
176
177   def selected(self):
178     if not self.emitting:
179       self.emitting=1
180       CONNECTOR.Emit(self.root,"selected",self)
181       self.emitting=0
182
183 class TypesItem(Item.Item):
184   """Item for types folder"""
185   def __init__(self,typeMap,root):
186     Item.Item.__init__(self)
187     self.typeMap=typeMap
188     self.label="Types"
189     self.root=root
190
191   def getIconName(self):
192     return "folder"
193
194   def isExpandable(self):
195     return True
196
197   def getChildren(self):
198     sublist=[]
199     for name,typ in self.typeMap.items():
200       itemtype=ItemType(typ,self.root,name)
201       sublist.append(itemtype)
202     return sublist
203
204 class ComponentsItem(Item.Item):
205   """Item for components folder"""
206   def __init__(self,compoMap,root):
207     Item.Item.__init__(self)
208     self.compoMap=compoMap
209     self.label="Components"
210     self.root=root
211
212   def getIconName(self):
213     return "folder"
214
215   def isExpandable(self):
216     return True
217
218   def getChildren(self):
219     sublist=[]
220     for compo in self.compoMap.values():
221       itemcompo=ItemCompo(compo,self.root)
222       sublist.append(itemcompo)
223     return sublist
224
225 class NodesItem(Item.Item):
226   """Item for nodes folder"""
227   def __init__(self,nodesMap,root):
228     Item.Item.__init__(self)
229     self.nodesMap=nodesMap
230     self.label="Nodes"
231     self.root=root
232
233   def getIconName(self):
234     return "folder"
235
236   def isExpandable(self):
237     return True
238
239   def getChildren(self):
240     sublist=[]
241     for node in self.nodesMap.values():
242       itemnode=ItemNode(node,self.root)
243       sublist.append(itemnode)
244     return sublist
245
246 class ComposedNodesItem(Item.Item):
247   """Item for composed nodes folder"""
248   def __init__(self,composedMap,root):
249     Item.Item.__init__(self)
250     self.composedMap=composedMap
251     self.label="ComposedNodes"
252     self.root=root
253
254   def getIconName(self):
255     return "folder"
256
257   def isExpandable(self):
258     return True
259
260   def getChildren(self):
261     sublist=[]
262     for node in self.composedMap.values():
263       itemnode=ItemComposedNode(node,self.root)
264       sublist.append(itemnode)
265     return sublist
266
267 class Cata(Obj):
268   def __init__(self,cata):
269     Obj.__init__(self)
270     self.cata=cata
271     self.label=cata.getName()
272
273   def isExpandable(self):
274     return True
275
276   def getChildren(self):
277     sublist=[]
278     sublist.append(TypesItem(self.cata._typeMap,self))
279     sublist.append(NodesItem(self.cata._nodeMap,self))
280     sublist.append(ComposedNodesItem(self.cata._composednodeMap,self))
281     sublist.append(ComponentsItem(self.cata._componentMap,self))
282     return sublist
283
284   def dblselected(self):
285     if not self.emitting:
286       self.emitting=1
287       CONNECTOR.Emit(self,"dblselected",self)
288       self.emitting=0
289