Skip to content
Snippets Groups Projects
periodic_table_presenter.py 1.58 KiB
Newer Older
from __future__ import print_function

    def __init__(self, view, model):
        self.view = view
        self.model = model
    @property
    def peak_data(self):
        return self.model.peak_data

    @property
    def selection(self):
        return self.view.ptable.getSelection()

    def set_buttons(self):
        for el in self.view.ptable.elements:
            if el.symbol in self.model.peak_data:
                self.view.ptable.enableElementButton(el.symbol)
            else:
                self.view.ptable.disableElementButton(el.symbol)

    def element_data(self, element):
        try:
            return self.model.peak_data[element]
        except KeyError:
            return None

    def select_element(self, element, deselect=False):
        self.view.ptable.setElementSelected(element, not deselect)

    def is_selected(self, element):
        return self.view.ptable.isElementSelected(element)

    def add_elements(self, *elements):
        self.view.ptable.setSelection(elements)

    def register_table_changed(self, slot):
        self.view.on_table_changed(slot)

    def unregister_table_changed(self, slot):
        self.view.unreg_on_table_changed(slot)

    def register_table_lclicked(self, slot):
        self.view.on_table_lclicked(slot)

    def unregister_table_lclicked(self, slot):
        self.view.unreg_on_table_lclicked(slot)

    def register_table_rclicked(self, slot):
        self.view.on_table_rclicked(slot)

    def unregister_table_rclicked(self, slot):
        self.view.unreg_on_table_rclicked(slot)