def _value_changed(self, value): title = widgets.LatexWidget(self.description) children = [title] for elem in value: wcont = widgets.ContainerWidget(description = str(elem)) wtitle = widgets.LatexWidget(value = str(elem)) edit_button = widgets.ButtonWidget(description = "Edit") delete_button = widgets.ButtonWidget(description = "Delete") wcont.children = [wtitle, edit_button, delete_button] children.append(wcont) add_button = widgets.ButtonWidget(description = "Add Command") def add_f(button): if self.add_representation: wr = self.add_representation(self.klass, container_widget = widgets.PopupWidget) else: raise NotImplementedError() wr.create_object() add_button.on_click(add_f) children.append(add_button) self.children = children
def _value_changed(self, __ ,value): title = widgets.HTMLWidget(value ='<h5>%s</h5>' % self.description) children = [title] for elem in value: wcont = widgets.ContainerWidget(description = str(elem)) wtitle = widgets.LatexWidget(value = str(elem)) edit_button = widgets.ButtonWidget(description = "Edit") delete_button = widgets.ButtonWidget(description = "Delete") wcont.children = [wtitle, edit_button, delete_button] def edit_f(button): if self.add_representation: wr = self.add_representation(self.klass, container_widget = widgets.PopupWidget, ) else: raise NotImplementedError() def edit_callback(obj): wr.cont.close() wr.edit_object(elem) wr.edit_callback = edit_callback edit_button.on_click(edit_f) def delete_f(button): l = list(self.value) l.remove(elem) self.value = l delete_button.on_click(delete_f) children.append(wcont) wcont.on_displayed(self._set_style) add_button = widgets.ButtonWidget(description = "Add %s" % self.klass.__name__) def add_f(button): if self.add_representation: wr = self.add_representation(self.klass, container_widget = widgets.PopupWidget, ) def handler(obj): self.value = list(self.value) + [obj] wr.cont.close() wr.create_handler = handler else: raise NotImplementedError() wr.create_object() add_button.on_click(add_f) children.append(add_button) self.children = children self._fire_children_displayed()
def __init__(self, header='Automatic Display System'): ''' This is simply an HTML display widget, and is going to contain stuff which you want to be displayed at any times ''' self.header = widgets.LatexWidget(value=header) display(self.header) self.header.font_size = '15pt' self.header.margin = '5pt' self.clearButton = widgets.ButtonWidget( description='Clear the Display') self.clearButton.on_click(callback=self.clearDisplay) self.visibleButton = widgets.ButtonWidget(description='Toggle Display') self.visibleButton.on_click(callback=self.toggleDisplay) self.container = widgets.HBox() self.container.background_color = '#999999' self.container.width = '100%' display(self.container) self.container.children = [self.clearButton, self.visibleButton] self.textToDisplay = '[-------------- %s -----------]' % header self.dispFrame = widgets.HTMLWidget() self.dispFrame.background_color = '#F0F0F0' self.dispFrame.margin = '5pt' self.dispFrame.width = '100%' self.dispFrame.height = '300px' display(self.dispFrame) self.display() return
def timelineSelector(self, directoryName): info = self.timelineInfo(directoryName) lst = [widgets.LatexWidget(value="Fields:")] fieldsSelected = set() storeButton = widgets.ButtonWidget(description="Store to", disabled=True) def make_field_toggle(fName): def f(name, value): if value: fieldsSelected.add(fName) else: try: fieldsSelected.remove(fName) except KeyError: pass # this should not happen, but hey! if len(fieldsSelected) > 0: storeButton.disabled = False else: storeButton.disabled = True return f for f in info["fields"]: w = widgets.ToggleButtonWidget(description=f) w.on_trait_change(make_field_toggle(f), 'value') lst.append(w) fields = widgets.ContainerWidget(description="Fields", children=lst) fields.add_class("hbox") varName = widgets.TextWidget(description="Variable Name") def varname_change(name, value): storeButton.description = "Store to " + value if len(value) == 0 or len(fieldsSelected) == 0: storeButton.disabled = True else: dis = False if not value[0].isalpha(): dis = True storeButton.disabled = dis varName.on_trait_change(varname_change, 'value') def store_clicked(b): v = varName.value f = list(fieldsSelected) print_("Storing", f, "from", directoryName, "in", self.path, "to variable", v) name = self.__getObjectName(self) store = self.__getStorageName() cmd = "%s.timeline('%s',%s)" % (name, directoryName, str(f)) if store: sname, sval = store create_code_cell("%s=%s('%s',lambda:%s)" % (v, sname, v, cmd), "below") val = sval(v, lambda: self.timeline(directoryName, f)) else: create_code_cell("%s=%s" % (v, cmd), "below") val = self.timeline(directoryName, f) get_ipython().push({v: val}) varName.value = "" storeButton.on_click(store_clicked) total = widgets.ContainerWidget( children=[fields, varName, storeButton]) total.add_class("vbox") display(total)
def __init__( self, panels, lma_ctrl, scatter_ctrl, charge_lasso, d ): #, station_number_selection, charge_lasso_widget, draw_lasso_widget, color_field_widget, animation_time_widget, animate_button, label, LMA_Controlsa, LMA_Controlsb, tools_popup, number_of_stations): self.panels = panels self.lma_ctrl = lma_ctrl self.d = d self.scatter_ctrl = scatter_ctrl self.charge_lasso = charge_lasso #Max Chi2 Value: chi2_selection = widgets.BoundedFloatTextWidget( description='Max Chi2:', min='0.0', max='1000.0', value='1') chi2_selection.set_css({ 'max-width': '30px', }) chi2_selection.on_trait_change(self.max_chi2, 'value') #Station Number Selection: station_number_selection = widgets.DropdownWidget( description='Number of Stations:', values=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], value=7) station_number_selection.set_css({ 'background-dropdown': '#888888', 'color': 'white', }) station_number_selection.on_trait_change(self.number_of_stations, 'value') #Charge Lasso and Draw Button: charge_lasso_widget = widgets.RadioButtonsWidget( description='Charge Selection:', values=["-1", "0", "1"], value="-1") charge_lasso_widget.on_trait_change(self.change_lasso_charge, 'value') draw_lasso_widget = widgets.ButtonWidget(description='Draw') draw_lasso_widget.set_css({ 'background': '#888888', 'color': 'white', }) draw_lasso_widget.on_click(self.lasso_button) #Color Field Selection: color_field_widget = widgets.RadioButtonsWidget( description='Color By:', values=["chi2", "time", "charge"], value="time") color_field_widget.on_trait_change(self.change_color_field, 'value') #Animate (Slider and Button) Optional Manual Numerical Input commented out: animation_time_widget = widgets.IntSliderWidget( description='Animation Time:', min='0', max='30') animation_time_widget.value = '5' # animation_time_widget = widgets.TextWidget(Description='Animation Time') # animation_time_widget.placeholder = "value" animate_button = widgets.ButtonWidget(description="Animate") animate_button.set_css({ 'display': 'flex', 'align-content': 'flex-end', 'background': '#888888', 'color': 'white', }) animate_button.on_click(self.run_animation_button) #FOR CONTAINERS AND POPUP label = widgets.LatexWidget(value='LMA Tools') label.set_css({ 'font-size': '20px', 'font-weight': 'bold', 'align-self': 'center', 'padding': '15px', 'background': 'd8d8d8', }) LMA_Controlsa = widgets.ContainerWidget() LMA_Controlsa.children = [ station_number_selection, charge_lasso_widget, draw_lasso_widget, chi2_selection ] LMA_Controlsa.set_css({ 'display': 'flex', 'flex-direction': 'column', # 'max-width': '300px', 'flex-flow': 'row wrap', 'align-content': 'flex-start', 'padding': '10px', 'background': '#e8e8e8', 'font-weight': 'bold', }) LMA_Controlsa.remove_class('vbox') LMA_Controlsa.add_class('hbox') LMA_Controlsb = widgets.ContainerWidget() LMA_Controlsb.children = [ color_field_widget, animation_time_widget, animate_button ] LMA_Controlsb.set_css({ 'display': 'flex', 'flex-flow': 'wrap', 'align-items': 'right', 'columns': '1', 'padding': '10px', 'background': '#e8e8e8', 'font-weight': 'bold', }) LMA_Controlsb.remove_class('vbox') LMA_Controlsb.add_class('hbox') tools_popup = widgets.PopupWidget(description='LMA Control Hub') tools_popup.set_css({ 'font-size': '14px', 'align-self': 'center', 'padding': '15px', 'border': '5px ridge #989898', 'background': '#e8e8e8', }) tools_popup.children = [label, LMA_Controlsa, LMA_Controlsb] self.chi2_selection = chi2_selection self.station_number_selection = station_number_selection self.charge_lasso_widget = charge_lasso_widget self.draw_lasso_widget = draw_lasso_widget self.color_field_widget = color_field_widget self.animation_time_widget = animation_time_widget self.animate_button = animate_button self.label = label self.LMA_Controlsa = LMA_Controlsa self.LMA_Controlsb = LMA_Controlsb self.tools_popup = tools_popup