Changed the name of the current Project class to ProjectView, to make room for a new

non-GUI project class.
This commit is contained in:
2011-03-06 22:33:51 +00:00
parent 21133af8f7
commit b5d2e8e181
7 changed files with 76 additions and 78 deletions

View File

@@ -4,7 +4,7 @@ import plots
import time
import laydi
from logger import logger
import dataset, plots, project, workflow, main
import dataset, plots, projectview, workflow, main
import scipy
class NavigatorView (gtk.TreeView):
@@ -15,8 +15,8 @@ class NavigatorView (gtk.TreeView):
"""
def __init__(self):
if main.project:
self.data_tree = main.project.data_tree
if main.projectview:
self.data_tree = main.projectview.data_tree
else:
self.data_tree = None
@@ -67,10 +67,10 @@ class NavigatorView (gtk.TreeView):
if paths:
self.data_tree.drag_data_get(paths[0], selection)
def add_project(self, project):
def add_projectview(self, projectview):
"""Dependency injection."""
self.data_tree = project.data_tree
self.set_model(project.data_tree)
self.data_tree = projectview.data_tree
self.set_model(projectview.data_tree)
self.data_tree.connect('row-changed',self.on_row_changed)
def on_selection_changed(self, selection):
@@ -97,10 +97,10 @@ class NavigatorView (gtk.TreeView):
if objs and isinstance(objs[0], dataset.Dataset):
logger.debug('Selecting dataset')
main.project.current_data = objs
main.projectview.current_data = objs
else:
logger.debug('Deselecting dataset')
main.project.current_data = []
main.projectview.current_data = []
def on_row_changed(self, treestore, pos, iter):
"""Set correct focus and colours when rows have changed."""
@@ -294,8 +294,8 @@ class NavigatorMenu(gtk.Menu):
else:
icon = laydi.icon_factory.get("dataset")
main.project.add_dataset(ds)
main.project.data_tree_insert(None, ds.get_name(), ds, None, "black", icon)
main.projectview.add_dataset(ds)
main.projectview.data_tree_insert(None, ds.get_name(), ds, None, "black", icon)
def on_load_dataset(self, item, navigator):
# Set up file chooser.
@@ -338,28 +338,28 @@ class NavigatorMenu(gtk.Menu):
iters = [tm.get_iter(r) for r in rows]
iters.reverse()
for i in iters:
main.project.delete_data(i)
main.projectview.delete_data(i)
# tm.remove(i)
def on_plot_image(self, item, navigator):
plot = plots.ImagePlot(self.dataset, name='Image Plot')
icon = laydi.icon_factory.get("line_plot")
main.project.data_tree_insert(self.tree_iter, 'Image Plot', plot, None, "black", icon)
main.projectview.data_tree_insert(self.tree_iter, 'Image Plot', plot, None, "black", icon)
# fixme: image plot selections are not well defined
#plot.set_selection_listener(project.set_selection)
#project._selection_observers.append(plot)
#plot.set_selection_listener(projectview.set_selection)
#projectview._selection_observers.append(plot)
def on_plot_hist(self, item, navigator):
project = main.project
projectview = main.projectview
plot = plots.HistogramPlot(self.dataset, name='Histogram')
icon = laydi.icon_factory.get("line_plot")
project.data_tree_insert(self.tree_iter, 'Histogram', plot, None, "black", icon)
plot.set_selection_listener(project.set_selection)
project._selection_observers.append(plot)
projectview.data_tree_insert(self.tree_iter, 'Histogram', plot, None, "black", icon)
plot.set_selection_listener(projectview.set_selection)
projectview._selection_observers.append(plot)
def on_plot_scatter(self, item, navigator):
project = main.project
datasets = main.project.current_data
projectview = main.projectview
datasets = main.projectview.current_data
ds_major = datasets[0]
dims_major = ds_major.get_dim_name()
ids_major = ds_major.get_identifiers(dims_major[1], sorted=True)
@@ -380,70 +380,70 @@ class NavigatorMenu(gtk.Menu):
name='Scatter (%s)' % ds_major.get_name())
plot.add_axes_spin_buttons(len(ids_major), 0, 1)
icon = laydi.icon_factory.get("line_plot")
project.data_tree_insert(self.tree_iter, 'Scatter', plot, None, "black", icon)
plot.set_selection_listener(project.set_selection)
project._selection_observers.append(plot)
projectview.data_tree_insert(self.tree_iter, 'Scatter', plot, None, "black", icon)
plot.set_selection_listener(projectview.set_selection)
projectview._selection_observers.append(plot)
def on_plot_line(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset
dims = ds.get_dim_name()
ids = ds.get_identifiers(dims[1])
plot = plots.LineViewPlot(ds, name='Line (%s)' % ds.get_name())
icon = laydi.icon_factory.get("line_plot")
project.data_tree_insert(self.tree_iter, 'Line view', plot, None, "black", icon)
plot.set_selection_listener(project.set_selection)
project._selection_observers.append(plot)
projectview.data_tree_insert(self.tree_iter, 'Line view', plot, None, "black", icon)
plot.set_selection_listener(projectview.set_selection)
projectview._selection_observers.append(plot)
def on_plot_bar(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset
dims = ds.get_dim_name()
ids = ds.get_identifiers(dims[1])
plot = plots.BarPlot(ds, name='Bar (%s)' % ds.get_name())
icon = laydi.icon_factory.get("line_plot")
project.data_tree_insert(self.tree_iter, 'Bar plot', plot, None, "black", icon)
plot.set_selection_listener(project.set_selection)
project._selection_observers.append(plot)
projectview.data_tree_insert(self.tree_iter, 'Bar plot', plot, None, "black", icon)
plot.set_selection_listener(projectview.set_selection)
projectview._selection_observers.append(plot)
def on_plot_box(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset
dims = ds.get_dim_name()
ids = ds.get_identifiers(dims[1])
plot = plots.BoxPlot(ds, name='Box (%s)' % ds.get_name())
icon = laydi.icon_factory.get("line_plot")
project.data_tree_insert(self.tree_iter, 'Box plot', plot, None, "black", icon)
plot.set_selection_listener(project.set_selection)
project._selection_observers.append(plot)
projectview.data_tree_insert(self.tree_iter, 'Box plot', plot, None, "black", icon)
plot.set_selection_listener(projectview.set_selection)
projectview._selection_observers.append(plot)
def on_transpose(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset.transpose()
ds._name = ds._name + ".T"
icon = laydi.icon_factory.get(ds)
project.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
def on_standardise_rows(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset.copy()
ds._name = self.dataset._name + ".rsc"
axis = 1
ds._array = ds.asarray()/scipy.expand_dims(ds.asarray().std(axis), axis)
icon = laydi.icon_factory.get(ds)
project.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
def on_standardise_cols(self, item, navigator):
project = main.project
projectview = main.projectview
ds = self.dataset.copy()
ds._name = self.dataset._name + ".csc"
axis = 0
ds._array = ds.asarray()/scipy.expand_dims(ds.asarray().std(axis), axis)
icon = laydi.icon_factory.get(ds)
project.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
def on_log(self, item, navigator):
project = main.project
projectview = main.projectview
try:
if not scipy.all(self.dataset.asarray()>0):
raise ValueError
@@ -455,7 +455,7 @@ class NavigatorMenu(gtk.Menu):
ds._array = scipy.log(ds.asarray())
icon = laydi.icon_factory.get(ds)
ds._name = ds._name + ".log"
project.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, ds.get_name(), ds, None, "black", icon)
def on_split(self, item, navigator):
if self.dataset is None:
@@ -464,13 +464,13 @@ class NavigatorMenu(gtk.Menu):
dim = self.dataset.get_dim_name(0)
project = main.project
sel_ids = set(project.get_selection()[dim])
projectview = main.projectview
sel_ids = set(projectview.get_selection()[dim])
sel_ds = self.dataset.subdata(dim, sel_ids)
unsel_ids = set(self.dataset.get_identifiers(dim)) - set(sel_ids)
unsel_ds = self.dataset.subdata(dim, unsel_ids)
icon = laydi.icon_factory.get(self.dataset)
project.data_tree_insert(self.tree_iter, 'Selected', sel_ds, None, "black", icon)
project.data_tree_insert(self.tree_iter, 'Unselected', unsel_ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, 'Selected', sel_ds, None, "black", icon)
projectview.data_tree_insert(self.tree_iter, 'Unselected', unsel_ds, None, "black", icon)