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

Source Code for Module iceprod.client.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 = 'new_dependency.tar' 45 self.steering.AddDependency(depend) 46 row = [depend] 47 48 i0 = self.liststore.append(row) 49 sel = self.tv.get_selection() 50 sel.select_iter(i0)
51 52 53
54 - def __init__(self,steering):
55 self.steering = steering 56 gtk.VBox.__init__(self) 57 58 # create a liststore with three int columns 59 self.liststore = gtk.ListStore(str) 60 self.sw = gtk.ScrolledWindow() 61 62 # Set sort column 63 self.tv = gtk.TreeView(self.liststore) 64 self.pack_start(self.sw) 65 66 self.b0 = gtk.Button('Add Dependency') 67 self.b1 = gtk.Button('Delete Dependency') 68 self.b0.connect('clicked', self.add_dependency) 69 self.b1.connect('clicked', self.delete_dependency) 70 71 self.hbbox = gtk.HButtonBox() 72 self.hbbox.pack_start(self.b0, False, False, 1) 73 self.hbbox.pack_start(self.b1, False, False, 1) 74 75 self.pack_start(self.hbbox, False) 76 self.sw.add(self.tv) 77 78 self.tv.column = gtk.TreeViewColumn('FileName') 79 self.selection = self.tv.get_selection() 80 self.selection.connect('changed', self.on_selection_changed) 81 82 self.tv.cell = gtk.CellRendererText() 83 self.tv.cell.set_property( 'editable', True) 84 self.tv.cell.connect( 'edited', self.cell_edit,self.liststore,0) 85 self.tv.append_column(self.tv.column) 86 87 self.tv.column.pack_start(self.tv.cell, True) 88 self.tv.column.set_attributes(self.tv.cell, text=0) 89 90 self.showdependencies() 91 self.show_all()
92
93 - def reload(self,steering):
94 self.steering = steering 95 self.showdependencies()
96
97 - def showdependencies(self):
98 self.liststore.clear() 99 logger.debug('dependencies:') 100 for s in self.steering.GetDependencies(): 101 102 row = [s] 103 self.liststore.append(row)
104
105 - def cell_edit( self, cell, path, new_text,model,col ):
106 """ 107 Canges the value of the steering parameter 108 """ 109 logger.debug("Change '%s' to '%s'" % (model[path][col], new_text)) 110 row = model[path] 111 dname = row[col] 112 depend = self.steering.GetDependency(dname) 113 if not depend: 114 logger.error("dependency %s not found" % dname) 115 return 116 else: 117 if new_text: 118 self.steering.RemoveDependency(dname) 119 self.steering.AddDependency(new_text) 120 121 self.showdependencies()
122