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

Source Code for Module iceprod.client.GtkOFilter

  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  from iceprod.core.dataclasses import * 
 16  import logging 
 17   
 18  logger = logging.getLogger('GtkOFilter') 
 19   
20 -class GtkOFilter(gtk.VBox):
21
22 - def on_selection_changed(self,selection):
23 try: 24 model, iter = selection.get_selected() 25 name = model.get_value(iter, 0) 26 logger.debug("selected path: %s " % path) 27 except: 28 None
29 30
31 - def delete_event(self, widget, event, data=None):
32 gtk.main_quit() 33 return False
34
35 - def delete_path(self, b):
36 sel = self.tv.get_selection() 37 model, iter = sel.get_selected() 38 path = model.get_value(iter, 1) 39 index = model.get_value(iter, 0) 40 del self.steering.GetOF().GetPaths()[index] 41 model.remove(iter)
42
43 - def add_path(self, b):
44 """ 45 add filter search path 46 """ 47 row = [] 48 path = Path('') 49 rownum = len(self.steering.GetOF().GetPaths()) 50 51 row.append(rownum) 52 row.append(path.path) 53 row.append(path.regex) 54 self.steering.GetOF().AddPath(path) 55 i0 = self.liststore.append(row) 56 sel = self.tv.get_selection() 57 sel.select_iter(i0)
58
59 - def __init__(self,steering):
60 self.steering = steering 61 gtk.VBox.__init__(self) 62 63 # create a liststore with one int and a string column 64 self.liststore = gtk.ListStore(int,str,str) 65 66 self.sw = gtk.ScrolledWindow() 67 68 # Set sort column 69 self.tv = gtk.TreeView(self.liststore) 70 self.pack_start(self.sw) 71 72 self.b0 = gtk.Button('Add Path') 73 self.b1 = gtk.Button('Delete Path') 74 self.b0.connect('clicked', self.add_path) 75 self.b1.connect('clicked', self.delete_path) 76 77 self.hbbox = gtk.HButtonBox() 78 self.hbbox.pack_start(self.b0, False, False, 1) 79 self.hbbox.pack_start(self.b1, False, False, 1) 80 81 self.pack_start(self.hbbox, False) 82 self.sw.add(self.tv) 83 84 self.tv.column = [None]*3 85 self.tv.column[0] = gtk.TreeViewColumn('index') 86 self.tv.column[1] = gtk.TreeViewColumn('path') 87 self.tv.column[2] = gtk.TreeViewColumn('regex') 88 89 self.tv.cell = [None]*3 90 91 self.selection = self.tv.get_selection() 92 self.selection.connect('changed', self.on_selection_changed) 93 94 self.tv.cell[0] = gtk.CellRendererText() 95 self.tv.cell[0].set_property( 'editable', False) 96 self.tv.column[0].set_sort_column_id(0) 97 self.tv.cell[1] = gtk.CellRendererText() 98 self.tv.cell[1].set_property( 'editable', True) 99 self.tv.cell[1].connect( 'edited', self.cell_edit,self.liststore,1) 100 self.tv.cell[2] = gtk.CellRendererText() 101 self.tv.cell[2].set_property( 'editable', True) 102 self.tv.cell[2].connect( 'edited', self.cell_edit,self.liststore,2) 103 104 self.tv.append_column(self.tv.column[0]) 105 self.tv.append_column(self.tv.column[1]) 106 self.tv.append_column(self.tv.column[2]) 107 self.tv.column[0].pack_start(self.tv.cell[0], True) 108 self.tv.column[1].pack_start(self.tv.cell[1], True) 109 self.tv.column[2].pack_start(self.tv.cell[2], True) 110 self.tv.column[0].set_attributes(self.tv.cell[0], text=0) 111 self.tv.column[1].set_attributes(self.tv.cell[1], text=1) 112 self.tv.column[2].set_attributes(self.tv.cell[2], text=2) 113 114 self.showsteerings() 115 self.show_all()
116
117 - def reload(self,steering):
118 self.steering = steering 119 self.showsteerings()
120
121 - def showsteerings(self):
122 self.liststore.clear() 123 index = 0 124 if not self.steering.GetOF(): return 125 for s in self.steering.GetOF().GetPaths(): 126 127 row = [index,s.path,s.regex] 128 index += 1 129 self.liststore.append(row) 130 131 # select the new row in each view 132 sel = self.tv.get_selection()
133 # sel.select_iter(i1) 134
135 - def cell_edit( self, cell, path, new_text,model,col ):
136 """ 137 Canges the value of the steering parameter 138 """ 139 logger.debug("Change '%s' to '%s'" % (model[path][col], new_text)) 140 row = model[path] 141 if (col == 1): 142 self.steering.GetOF().GetPaths()[row[0]].path = new_text 143 row[col] = u'%s' % new_text 144 elif (col == 2): 145 self.steering.GetOF().GetPaths()[row[0]].regex = new_text 146 row[col] = u'%s' % new_text
147