Added a selection view tab, placed next to the "Log" tab. The tab currently

only displays the current selection.
This commit is contained in:
2006-08-07 14:14:42 +00:00
parent 57cb203316
commit b769288b3b
6 changed files with 140 additions and 11 deletions

View File

@@ -6,26 +6,40 @@ from system import dataset, plots
class Project:
def __init__(self,name="Testing"):
self.data_tree = gtk.TreeStore(gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_PYOBJECT,gobject.TYPE_STRING,gobject.TYPE_STRING, gobject.TYPE_DOUBLE)
self.data_tree = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
gobject.TYPE_PYOBJECT, gobject.TYPE_STRING,
gobject.TYPE_STRING, gobject.TYPE_DOUBLE)
self.name = name
self.dim_names = []
self._selection_observers = []
self._dataset_observers = []
self.current_data = []
self.datasets = []
self.sel_obj = dataset.Selection()
def notify_selection_listeners(self):
def add_selection_observer(self, observer):
self._selection_observers.append(observer)
observer.selection_changed(self.get_selection())
def notify_selection_listeners(self, dim_name):
"""Notifies observers"""
for observer in self._selection_observers:
observer.selection_changed(self.get_selection())
def set_selection(self,dim_name,selection):
def add_dataset_observer(self, observer):
self._dataset_observers.append(observer)
observer.dataset_changed()
def notify_dataset_listeners(self):
"""Notifies observers when new datasets are added"""
for observer in self._dataset_observers:
observer.dataset_changed()
def set_selection(self, dim_name, selection):
"""Sets a current selection and notify observers"""
self.sel_obj.current_selection[dim_name] = set(selection)
self.notify_selection_listeners()
self.notify_selection_listeners(dim_name)
def get_selection(self):
"""Returns the current selection object"""
@@ -79,6 +93,7 @@ class Project:
if dim_name not in self.dim_names:
self.dim_names.append(dim_name)
self.sel_obj.current_selection[dim_name] = set()
self.notify_dataset_listeners()
def object_at(self, path):