Source code for jdaviz.configs.mosviz.plugins.row_lock.row_lock
from traitlets import Bool
from jdaviz.core.registries import tool_registry
from jdaviz.core.template_mixin import TemplateMixin
from jdaviz.core.events import RowLockMessage
__all__ = ['RowLock']
[docs]
@tool_registry('g-row-lock')
class RowLock(TemplateMixin):
template_file = __file__, "row_lock.vue"
is_locked = Bool(False).tag(sync=True)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Watch for messages from Specviz helper redshift functions
self.session.hub.subscribe(self, RowLockMessage,
handler=self._row_lock_changed)
def _row_lock_changed(self, msg):
self.is_locked = msg.is_locked
[docs]
def vue_toggle_lock(self, event):
# Send the RowLockMessage which will update is_locked in _row_lock_changed
# but will also set the application state in the Mosviz helper
msg = RowLockMessage(not self.is_locked, sender=self)
self.app.hub.broadcast(msg)