Ejemplo n.º 1
0
class AladinLiteOptionsPanel(QtWidgets.QWidget):
    def __init__(self, parent=None, viewer_state=None):

        super(AladinLiteOptionsPanel, self).__init__(parent=parent)

        self._data_collection = self.parent()._data

        self.viewer_state = viewer_state

        self.ui = load_ui('options_widget.ui',
                          self,
                          directory=os.path.dirname(__file__))

        autoconnect_callbacks_to_qt(self.viewer_state, self.ui)

        self._ra_att_helpers = ComponentIDComboHelper(self.ui.combodata_ra_att,
                                                      self._data_collection,
                                                      categorical=False,
                                                      default_index=0)

        self._dec_att_helpers = ComponentIDComboHelper(
            self.ui.combodata_dec_att,
            self._data_collection,
            categorical=False,
            default_index=1)

        self.viewer_state.add_callback('layers', nonpartial(self._update_data))

    def _update_data(self):
        datasets = [layer.layer for layer in self.viewer_state.layers]
        self._ra_att_helpers.set_multiple_data(datasets)
        self._dec_att_helpers.set_multiple_data(datasets)
Ejemplo n.º 2
0
class HistogramOptionsWidget(QtWidgets.QWidget):
    def __init__(self, viewer_state, session, parent=None):

        super(HistogramOptionsWidget, self).__init__(parent=parent)

        self.ui = load_ui('options_widget.ui',
                          self,
                          directory=os.path.dirname(__file__))

        autoconnect_callbacks_to_qt(viewer_state, self.ui)

        viewer_state.add_callback('layers', self._update_combo_data)

        self.x_att_helper = ComponentIDComboHelper(self.ui.combodata_x_att,
                                                   session.data_collection)

        self.viewer_state = viewer_state

        viewer_state.add_callback('x_att', nonpartial(self._update_attribute))

    def _update_attribute(self):
        # If at least one of the components is categorical, disable log button
        log_enabled = not any(
            comp.categorical for comp in self.viewer_state._get_x_components())
        self.ui.bool_x_log.setEnabled(log_enabled)
        if not log_enabled:
            self.ui.bool_x_log.setChecked(False)

    def _update_combo_data(self, *args):
        # TODO: what about if only subset and not data is present?
        layers = [
            layer_state.layer for layer_state in self.viewer_state.layers
            if isinstance(layer_state.layer, Data)
        ]
        self.x_att_helper.set_multiple_data(layers)