def create_case_widget(self):
     controller = self.controller 
     if controller.ds is None:
         return
     by_signature = Checkbox(
                     description='Cases indicated by signature?', 
                     value=self.by_signature
                     )
     case_id = Text(description='* Analysis for case:')        
     if 'biological_constraints' not in controller.options:
         bio_constraints = ''
     else:
         bio_constraints = ', '.join(controller.defaults('biological_constraints')) 
     constraints = Textarea(description='Biological constraints:',
                                          value=bio_constraints)
     button = Button(description='Create Analysis')
     button.on_click(self.create_report)
     button.case_id = case_id
     button.by_signature = by_signature
     button.constraints = constraints
     wi = VBox(children=[by_signature,
                                            case_id,
                                            constraints,
                                            button])
     return ('Analyze Case', wi)
 def colocalization_widget(self):
     controller = self.controller
     cases = Textarea(description='* Cases to co-localize:')
     by_signature = Checkbox(description='Cases indicated by signature?', 
                                           value=self.by_signature)
     slice_variables = Textarea(description='* Slice variables:')
     if 'biological_constraints' not in controller.options:
         bio_constraints = ''
     else:
         bio_constraints = ', '.join(controller.defaults('biological_constraints')) 
     constraints = Textarea(description='Biological constraints:',
                                          value=bio_constraints)
     button = Button(description='Create Co-Localization')
     button.on_click(self.make_colocalization)
     button.cases = cases
     button.by_signature = by_signature
     button.slice_variables = slice_variables
     button.constraints = constraints
     wi = VBox(children=[cases,
                              by_signature,
                              slice_variables,
                              constraints,
                              button])
     return ('Co-localizations', wi)
 def edit_equations_widget(self, editing=False):
     kinetic_orders = self.options['kinetic_orders']
     if kinetic_orders is None:
         kinetic_orders = []
     name = Text(description='* Name', value=self.name)
     version = Text(description='Version', value=self.version)
     self.version_field = version
     equations=Textarea(description='* Equations',
                                      value='\n'.join(self.equations))
     aux=Textarea(description='Auxiliary Variables',
                                value=', '.join(self.auxiliary))
     html = HTML(value='<b>Architectural Constraints</b>')
     constraints=Textarea(description='Parameters',
                          value=', '.join(self.constraints)
                          )
     options_html = HTML(value='<b>Additional Options</b>')
     cyclical = Checkbox(description='Check for Cycles',
                         value = self.cyclical)
     codominance = Checkbox(description='Check for Co-dominance',
                            value = self.codominance)
     recast = Checkbox(description='Recast Equations',
                            value = self.recast)
     replacements=Textarea(description='Kinetic Orders',
                           value=', '.join(
                            [i for i in kinetic_orders]))
     wi = VBox(children=[equations, 
                         aux, html,
                         constraints, replacements,
                         options_html, cyclical,
                         codominance,recast,
                         ])
     button = Button(value=False, 
                                   description='Create Design Space')
     button.on_click(self.make_design_space)
     button.equations = equations
     button.aux = aux
     button.constraints = constraints
     button.cyclical = cyclical
     button.codominance = codominance
     button.recast = recast
     button.replacements = replacements
     button.wi = wi
     button.name = name
     ## button.version = version
     load = Button(value=False, 
                   description='Load Data')
     load.on_click(self.load_widget)
     load.equations = equations
     ## load.version = version
     load.aux = aux
     load.constraints = constraints
     load.cyclical = cyclical
     load.codominance = codominance
     load.replacements = replacements
     load.wi = wi
     load.name = name
     load.button = button
     button.load = load
     edit_symbols = Button(value=False, description='Edit Symbols')
     edit_symbols.on_click(self.create_edit_symbols)
     edit_parameters = Button(value=False, description='Edit Parameters')
     edit_parameters.on_click(self.create_edit_parameters)
     button.edit_symbols = edit_symbols
     button.edit_parameters = edit_parameters
     edit_equations = VBox(description='Edit Equations', 
                           children=[name, version, wi, 
                                     edit_symbols,
                                     edit_parameters,
                                     button,
                                     load])
     wi.visible = False
     edit_symbols.visible = False
     edit_parameters.visible = False
     if self.ds is not None:
         wi.visible = True
         ## self.update_widgets()
         self.make_options_menu(button)
     if editing is True:
         self.make_design_space(button)
     return edit_equations