| Home | Trees | Indices | Help |
|---|
|
|
1 #!/bin/env python
2 #
3
4 """
5 Display window for Configuration database
6
7 copyright (c) 2005 the icecube collaboration
8
9 @version: $Revision: $
10 @date: $Date: $
11 @author: Juan Carlos Diaz Velez <juancarlos@icecube.wisc.edu>
12 """
13
14 import pygtk
15 pygtk.require("2.0")
16 import gtk, gobject
17 from iceprod.core.dataclasses import *
18 import time
19 import logging
20 import iceprod.core.logger
21
22 logger = logging.getLogger('GtkMetaProjectList')
23
26
27 self.store = gtk.ListStore( int, str, str )
28 self.pdb = pdb
29 self.parent = parent
30 self.resume_action = None
31 self.init()
32
34 if not self.display(): return
35
36 # setup the main window
37 self.root = gtk.Window(type=gtk.WINDOW_TOPLEVEL)
38 self.sw = gtk.ScrolledWindow()
39 self.root.set_title('Available Metaprojects')
40 self.root.set_size_request(500, 375)
41
42 # Get the model and attach it to the view
43 self.view = self.make_view( self.store )
44
45 self.vbox = gtk.VBox(False,1)
46
47 # Add search field
48 self.entry = gtk.Entry()
49 self.entry.set_max_length(50)
50 self.entry.connect("activate", self.enter_callback, self.entry)
51 self.entry_frame = gtk.Frame('Search keyword')
52 self.entry_frame.add(self.entry)
53 self.vbox.pack_start(self.entry_frame, False, False, 1)
54 self.entry.show()
55
56 # Add view into frame and into main window
57 self.sw.add(self.view)
58 self.view_frame = gtk.Frame('Database entries')
59 self.view_frame.add(self.sw)
60 self.vbox.add(self.view_frame)
61
62 self.root.add(self.vbox)
63 self.root.show_all()
64 return
65
69
71 self.resume_action = action
72
77
79 """ Populates gtk.TreeStore """
80
81 self.store.clear()
82
83 self.set_resume_action(self.init)
84 self.pdb.connect()
85 runs = self.pdb.fetch_metaproject_list()
86 for r in runs:
87 row = [ r['metaproject_id'], r['name'], r['versiontxt'] ]
88 logger.debug(','.join(map(str,row)))
89 self.store.append( row )
90 return True
91
93 """
94 Get config from database server
95 """
96 sel = tv.get_selection()
97 sel.select_path(path)
98 model, iter = sel.get_selected()
99 id = model.get_value(iter, 0)
100 name = model.get_value(iter, 1)
101 version = model.get_value(iter, 2)
102
103 self.set_resume_action(self.init)
104 self.pdb.connect()
105 steering = self.parent.GetSteering()
106 traylist = steering.GetTrays()
107 for tray in traylist:
108 if tray.HasMetaProject(name):
109 mp = self.pdb.SwitchMetaProject(tray,id,name,version)
110 tray.AddMetaProject(mp.GetName(),mp)
111 self.parent.ReloadWidgets()
112 self.root.destroy()
113
114
116 """ Form a view for the Tree Model """
117 self.view = gtk.TreeView( model )
118 self.view.connect('row-activated', self.switcharoo)
119
120 # setup the text cell renderer and allows these
121 # cells to be edited.
122 self.renderer = [None]*5
123 for i in range(5):
124 self.renderer[i] = gtk.CellRendererText()
125
126 self.column = [None]*3
127 self.column[0] = gtk.TreeViewColumn("ID",self.renderer[0], text=0)
128 self.column[1] = gtk.TreeViewColumn("name",self.renderer[1],text=1 )
129 self.column[2] = gtk.TreeViewColumn("version",self.renderer[2], text=2)
130
131 for i in range(3):
132 self.view.append_column( self.column[i] )
133 return self.view
134
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Fri Jan 4 16:45:12 2013 | http://epydoc.sourceforge.net |