Source code for glue_jupyter.common.state_widgets.viewer_image
from ipywidgets import VBox, Checkbox
from ...link import link
from ...widgets.linked_dropdown import LinkedDropdown
from ...common.slice_helpers import MultiSliceWidgetHelper
__all__ = ['ImageViewerStateWidget']
[docs]class ImageViewerStateWidget(VBox):
def __init__(self, viewer_state):
self.state = viewer_state
# Set checkbox for showing/hiding axes
self.widget_show_axes = Checkbox(value=True, description="Show axes")
link((self.widget_show_axes, 'value'), (self.state, 'show_axes'))
# Set up dropdown for color mode
self.widget_color_mode = LinkedDropdown(self.state, 'color_mode', label='mode')
# Set up checkbox for aspect ratio
self.widgets_aspect = Checkbox(description='Equal aspect ratio')
aspect_mapping = {'equal': True, 'auto': False}
aspect_mapping_inverse = {True: 'equal', False: 'auto'}
link((self.state, 'aspect'), (self.widgets_aspect, 'value'),
lambda x: aspect_mapping[x], lambda x: aspect_mapping_inverse[x])
# Set up dropdown for reference data
self.widget_reference_data = LinkedDropdown(self.state, 'reference_data', label='reference')
# Set up dropdowns for main attributes
self.widget_axis_x = LinkedDropdown(self.state, 'x_att_world', label='x axis')
self.widget_axis_y = LinkedDropdown(self.state, 'y_att_world', label='y axis')
# Set up sliders for remaining dimensions
self.sliders = VBox()
self.sliders_helper = MultiSliceWidgetHelper(self.state, self.sliders)
super().__init__([self.widget_color_mode, self.widget_reference_data,
self.widgets_aspect, self.widget_axis_x,
self.widget_axis_y, self.sliders, self.widget_show_axes])