Source code for jdaviz.configs.default.plugins.subset_tools.subset_tools

from glue.core.message import EditSubsetMessage
from glue.core.edit_subset_mode import (AndMode, AndNotMode, OrMode,
                                        ReplaceMode, XorMode)
from glue_jupyter.widgets.subset_mode_vuetify import SelectionModeMenu
from glue_jupyter.widgets.subset_select_vuetify import SubsetSelect
from traitlets import Int, List

from jdaviz.core.registries import tool_registry
from jdaviz.core.template_mixin import TemplateMixin

__all__ = ['SubsetTools']

SUBSET_MODES = {
    'replace': ReplaceMode,
    'add': OrMode,
    'and': AndMode,
    'xor': XorMode,
    'remove': AndNotMode
}


[docs] @tool_registry('g-subset-tools') class SubsetTools(TemplateMixin): template_file = __file__, "subset_tools.vue" select = List([]).tag(sync=True) subset_mode = Int(0).tag(sync=True) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.components = { 'g-subset-select': SubsetSelect(session=self.session), 'g-subset-mode': SelectionModeMenu(session=self.session) } self.hub.subscribe(self, EditSubsetMessage, handler=self._subset_edit_event) def _subset_edit_event(self, msg): # NOTE: here we'll assume that only a single subset is selected (glue supports # multiple subsets being selected, but jdaviz doesn't) if not (len(msg.subset)): # then changed to "Create New", we want to revert the mode to ReplaceMode self.session.edit_subset_mode.mode = ReplaceMode