コード例 #1
0
ファイル: widgets.py プロジェクト: caizikun/labcore
    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
コード例 #2
0
    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()
コード例 #3
0
    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
コード例 #4
0
    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)
コード例 #5
0
ファイル: widgets.py プロジェクト: sberkseth/brawl4d
    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