Package iceprod :: Package client :: Package gtk :: Module GtkSteerDepend
[hide private]
[frames] | no frames]

Source Code for Module iceprod.client.gtk.GtkSteerDepend

  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   
 12  import pygtk 
 13  pygtk.require('2.0') 
 14  import gtk 
 15  import logging 
 16  from iceprod.core.dataclasses import * 
 17  from GtkIPModule import * 
 18   
 19  logger = logging.getLogger('soaptray') 
 20   
21 -class GtkSteerDepend(GtkIPModule):
22
23 - def on_selection_changed(self,selection):
24 try: 25 model, iter = selection.get_selected() 26 name = model.get_value(iter, 0) 27 logger.debug("selected dependency: %s" % name) 28 except: 29 None
30 31
32 - def delete_dependency(self, b):
33 sel = self.tv.get_selection() 34 model, iter = sel.get_selected() 35 path = model.get_path(iter) 36 depend = model.get_value(iter, 0) 37 self.steering.RemoveDependency(depend) 38 model.remove(iter)
39
40 - def add_dependency(self, b):
41 """ 42 add steering dependency file 43 """ 44 depend = IceTrayFile('new_dependency.tar') 45 depend.unpack = True 46 self.steering.AddDependency(depend) 47 row = [depend.GetName()] 48 49 i0 = self.liststore.append(row) 50 sel = self.tv.get_selection() 51 sel.select_iter(i0)
52 53 54
55 - def __init__(self,steering):
56 self.steering = steering 57 gtk.VBox.__init__(self) 58 59 # create a liststore with three int columns 60 self.liststore = gtk.ListStore(str) 61 self.sw = gtk.ScrolledWindow() 62 63 # Set sort column 64 self.tv = gtk.TreeView(self.liststore) 65 self.pack_start(self.sw) 66 67 self.b0 = gtk.Button('Add Dependency') 68 self.b1 = gtk.Button('Delete Dependency') 69 self.b0.connect('clicked', self.add_dependency) 70 self.b1.connect('clicked', self.delete_dependency) 71 72 self.hbbox = gtk.HButtonBox() 73 self.hbbox.pack_start(self.b0, False, False, 1) 74 self.hbbox.pack_start(self.b1, False, False, 1) 75 76 self.pack_start(self.hbbox, False) 77 self.sw.add(self.tv) 78 79 self.tv.column = gtk.TreeViewColumn('FileName') 80 self.selection = self.tv.get_selection() 81 self.selection.connect('changed', self.on_selection_changed) 82 83 self.tv.cell = gtk.CellRendererText() 84 self.tv.cell.set_property( 'editable', True) 85 self.tv.cell.connect( 'edited', self.cell_edit,self.liststore,0) 86 self.tv.append_column(self.tv.column) 87 88 self.tv.column.pack_start(self.tv.cell, True) 89 self.tv.column.set_attributes(self.tv.cell, text=0) 90 91 self.showdependencies() 92 self.show_all()
93
94 - def reload(self,steering):
95 self.steering = steering 96 self.showdependencies()
97
98 - def showdependencies(self):
99 self.liststore.clear() 100 logger.debug('dependencies:') 101 for d in self.steering.GetDependencies(): 102 103 if type(d) in types.StringTypes: 104 row = [d] 105 else: 106 row = [d.GetName()] 107 self.liststore.append(row)
108
109 - def cell_edit( self, cell, path, new_text,model,col ):
110 """ 111 Canges the value of the steering parameter 112 """ 113 logger.debug("Change '%s' to '%s'" % (model[path][col], new_text)) 114 row = model[path] 115 dname = row[col] 116 depend = self.steering.GetDependency(dname) 117 if not depend: 118 logger.error("dependency %s not found" % dname) 119 return 120 else: 121 if new_text: 122 self.steering.RemoveDependency(dname) 123 dep = IceTrayFile(new_text) 124 dep.unpack = True 125 self.steering.AddDependency(dep) 126 127 self.showdependencies()
128