49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
|
|
import gtk
|
|
import gobject
|
|
import plots
|
|
import logger
|
|
|
|
class NavigatorStore (gtk.TreeStore):
|
|
def __init__(self,project):
|
|
gtk.TreeStore.__init__(self, gobject.TYPE_STRING, plots.Plot)
|
|
self.project = project
|
|
iter = self.append(None)
|
|
self.set_value(iter, 0, ('Sine Plot'))
|
|
self.set_value(iter, 1, (plots.SinePlot(project)))
|
|
|
|
iter = self.append(None)
|
|
self.set_value(iter, 0, ('Scatter Plot'))
|
|
self.set_value(iter, 1, (plots.ScatterPlot(project)))
|
|
|
|
iter = self.append(None)
|
|
self.set_value(iter, 0, ('Scatter Plot 2'))
|
|
self.set_value(iter, 1, (plots.ScatterPlot(project)))
|
|
|
|
def plot_at(self, path):
|
|
iter = self.get_iter(path)
|
|
plot = self.get_value(iter, 1)
|
|
if plot:
|
|
plot.show()
|
|
return plot
|
|
|
|
class NavigatorView (gtk.TreeView):
|
|
def __init__(self, nav, app):
|
|
gtk.TreeView.__init__(self, nav)
|
|
self.navigator = nav
|
|
self.app = app
|
|
|
|
self.set_headers_visible(False)
|
|
self.connect('row-activated', self.row_activated_handler)
|
|
|
|
renderer = gtk.CellRendererText()
|
|
self.object_col = gtk.TreeViewColumn('Object', renderer, text=0)
|
|
self.append_column(self.object_col)
|
|
|
|
logger.log('debug', 'Initializing naviagor window')
|
|
|
|
def row_activated_handler(self, widget, path, column):
|
|
plot = self.navigator.plot_at(path)
|
|
logger.log('notice', 'Button pressed')
|
|
self.app.change_plot(plot)
|