Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/yacs.git] / src / pyqt / gui / sessions.py
1 # Copyright (C) 2006-2012  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
20 import sys
21 import omniORB
22 from omniORB import CORBA
23 import CosNaming
24
25 import Item
26 import CONNECTOR
27
28 class Sessions(Item.Item):
29   def __init__(self,port):
30     Item.Item.__init__(self)
31     self.label="Sessions"
32     self.orb=CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
33     self.port=port
34
35   def getChildren(self):
36     sublist=[]
37     port=self.port
38     while 1:
39       port=port+1
40       try:
41         session=Session(self,self.orb,port)
42         sublist.append(session)
43       except:
44         #traceback.print_exc()
45         break
46     return sublist
47
48   def selected(self):
49     if not self.emitting:
50       self.emitting=1
51       CONNECTOR.Emit(self,"selected",self)
52       self.emitting=0
53
54   def getIconName(self):
55     return "folder"
56
57   def isExpandable(self):
58     return True
59
60 class Session(Item.Item):
61   def __init__(self,root,orb,port):
62     Item.Item.__init__(self)
63     self.root=root
64     self.port=port
65     self.addr="corbaname::localhost:%d/NameService" % port
66     obj=orb.string_to_object(self.addr)
67     context=obj._narrow(CosNaming.NamingContext)
68     self.label="Session on port: %d" % port
69
70   def selected(self):
71     if not self.emitting:
72       self.emitting=1
73       CONNECTOR.Emit(self.root,"selected",self)
74       self.emitting=0
75