Home | Trees | Indices | Help |
---|
|
1 #!/bin/env python 2 # copyright (c) 2005 3 # the icecube collaboration 4 # $Id: $ 5 # 6 # @version $Revision: $ 7 # @date $Date: $ 8 # @author Juan Carlos Diaz Velez <juancarlos@icecube.wisc.edu> 9 # @brief icetray connections frame for GtkIcetraConfig application 10 ######################################################################### 11 import pygtk 12 pygtk.require("2.0") 13 import gtk, gobject 14 from iceprod.core.dataclasses import * 15 import logging 16 from GtkModuleList import GtkModuleList 17 18 logger = logging.getLogger('GtkServiceList') 1921 """ The GUI class is the controller for our application """ 22 23 fooclass = 'BarService' 24 28 2918531 """ Sets up and populates gtk.TreeStore """ 32 self.store = gtk.TreeStore( int, str, str, str, gobject.TYPE_BOOLEAN ) 33 row = [0,self.fooname,self.fooclass, self.fooproject,False] 34 self.store.append(None, row ) 35 36 if not self.pdb.cached and not self.pdb.connect(): return 37 for mp in self.iconfig.GetMetaProjectList(): 38 for p in self.pdb.GetProjects(mp.GetId()): 39 pname = p.GetName() 40 pver = p.GetVersion() 41 42 services = self.pdb.GetServicesP(pname,pver) 43 for s in services: 44 if not self.iconfig.GetService(s.GetName()): 45 row = [s.GetId(),s.GetName(), s.GetClass(),pname,False] 46 logger.debug('|'.join(map(str,row))) 47 self.store.append(None, row ) 48 49 for p in self.iconfig.GetProjectList(): 50 pname = p.GetName() 51 pver = p.GetVersion() 52 53 services = self.pdb.GetServicesP(pname,pver) 54 for s in services: 55 if not self.iconfig.GetService(s.GetName()): 56 row = [s.GetId(),s.GetName(), s.GetClass(),pname] 57 logger.debug('|'.join(map(str,row))) 58 self.store.append(None,row )5961 """ 62 Add Service 63 """ 64 sel = tv.get_selection() 65 sel.select_path(path) 66 model, iter = sel.get_selected() 67 id = model.get_value(iter, 0) 68 name = model.get_value(iter, 1) 69 cname = model.get_value(iter, 2) 70 71 proj_name = model.get_value(iter, 3) 72 proj = self.iconfig.GetProject(proj_name) 73 74 newserv = Service() 75 newserv.SetName(name) 76 newserv.SetClass(cname) 77 78 if not self.pdb.cached and not self.pdb.connect(): return 79 proj = self.iconfig.GetProject(proj_name) 80 if not proj: 81 for mp in self.iconfig.GetMetaProjectList(): 82 for p in self.pdb.GetProjectsSM(newserv,mp): 83 mp.AddProject(p.GetName(),p) 84 if p.GetName() == proj_name: proj = p 85 if not proj: 86 raise Exception, "Could not find project for '%s'"% newserv.GetName() 87 newserv.AddProject(proj_name,proj) 88 89 parameters = self.pdb.GetParameters(int(id)) 90 for p in parameters: 91 param = Parameter() 92 param.SetName(p.GetName()) 93 param.SetType(p.GetType()) 94 param.SetDescription(p.GetDescription()) 95 param.SetValue(p.GetValue()) 96 newserv.AddParameter(param) 97 98 self.iconfig.AddService(newserv) 99 self.gtkmod.showservices() 100 self.root.destroy()101103 model = self.store 104 self.mdict = {} 105 if not self.pdb.cached and not self.pdb.connect(): return 106 model.foreach(self.do_change) 107 return108110 """ 111 Add Service 112 """ 113 if model[path][4]: 114 id = model[path][0] 115 name = model[path][1] 116 cname = model[path][2] 117 118 proj_name = model[path][3] 119 proj = self.iconfig.GetProject(proj_name) 120 121 newserv = Service() 122 newserv.SetName(name) 123 newserv.SetClass(cname) 124 125 proj = self.iconfig.GetProject(proj_name) 126 if not proj: 127 for mp in self.iconfig.GetMetaProjectList(): 128 for p in self.pdb.GetProjectsSM(newserv,mp): 129 mp.AddProject(p.GetName(),p) 130 if p.GetName() == proj_name: proj = p 131 132 if not proj: # search all projects in mp to match name 133 for p in self.pdb.GetProjects(mp.GetId()): 134 if p.GetName() == proj_name: 135 mp.AddProject(p.GetName(),p) 136 proj = p 137 break 138 if not proj: 139 raise Exception, "Could not find project for '%s'" % newserv.GetName() 140 newserv.AddProject(proj_name,proj) 141 142 parameters = self.pdb.GetParameters(int(id)) 143 for p in parameters: 144 param = Parameter() 145 param.SetName(p.GetName()) 146 param.SetType(p.GetType()) 147 param.SetDescription(p.GetDescription()) 148 param.SetValue(p.GetValue()) 149 newserv.AddParameter(param) 150 151 self.iconfig.AddService(newserv) 152 self.gtkmod.showservices() 153 self.root.destroy()154 155157 """ Form a view for the Tree Model """ 158 self.view = gtk.TreeView( model ) 159 self.view.connect('row-activated', self.add_service) 160 161 # setup the text cell renderer and allows these 162 # cells to be edited. 163 self.renderer = [None]*5 164 for i in range(4): 165 self.renderer[i] = gtk.CellRendererText() 166 self.renderer[4] = gtk.CellRendererToggle() 167 self.renderer[4].set_property('activatable', True) 168 self.renderer[4].connect( 'toggled', self.row_toggled) 169 170 self.column = [None]*5 171 self.column[0] = gtk.TreeViewColumn("DbID",self.renderer[0], text=0) 172 self.column[0].set_sort_column_id(0) 173 self.column[1] = gtk.TreeViewColumn("Default Name",self.renderer[1], text=1) 174 self.column[1].set_sort_column_id(1) 175 self.column[2] = gtk.TreeViewColumn("Class",self.renderer[2], text=2) 176 self.column[2].set_sort_column_id(2) 177 self.column[3] = gtk.TreeViewColumn("Project",self.renderer[3],text=3 ) 178 self.column[4] = gtk.TreeViewColumn('Selected') 179 self.column[4].pack_start(self.renderer[4], True) 180 self.column[4].add_attribute( self.renderer[4], "active", 4) 181 182 for i in range(5): 183 self.view.append_column( self.column[i] ) 184 return self.view
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Fri Jan 4 16:45:22 2013 | http://epydoc.sourceforge.net |