Added a selection view tab, placed next to the "Log" tab. The tab currently
only displays the current selection.
This commit is contained in:
@@ -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):
|
||||
|
Reference in New Issue
Block a user