示例#1
0
def choose_marker(marker=None, all_markers=None, change_param=True):
    global services
    if marker != None:
        return marker
    markers_box = gtk.combo_box_new_text()
    if not all_markers:
        all_markers = biology.markers.get_marker_names()
    for name in all_markers:
        markers_box.append_text(name)
    markers_box.show()

    dia = gtk.Dialog(
        'Marker Picker',
        services.get_top_widget(),
        gtk.DIALOG_MODAL
        | gtk.DIALOG_DESTROY_WITH_PARENT,  #binary flags or'ed together
        (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
    dia.vbox.pack_start(gtk.Label('Pick A marker'))
    dia.vbox.pack_start(markers_box)
    dia.show()
    result = dia.run()
    dia.destroy()
    if result == gtk.RESPONSE_OK:
        #res = biology.markers.marker_from_name(markers_box.get_active_text())
        res = markers_box.get_active_text()
        if change_param:
            services.get_current_changer().set_parameter(0, repr(res))
        return res
    elif result == gtk.RESPONSE_CANCEL:
        return None
示例#2
0
def choose_marker(marker=None, all_markers=None, change_param=True):
  global services
  if marker != None:
    return marker
  markers_box = gtk.combo_box_new_text()
  if not all_markers:
    all_markers = biology.markers.get_marker_names()
  for name in all_markers:
      markers_box.append_text(name)
  markers_box.show()
  
  dia = gtk.Dialog('Marker Picker',
               services.get_top_widget(),
               gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,  #binary flags or'ed together
               (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
  dia.vbox.pack_start(gtk.Label('Pick A marker'))
  dia.vbox.pack_start(markers_box)
  dia.show()
  result = dia.run()
  dia.destroy()
  if result == gtk.RESPONSE_OK:
    #res = biology.markers.marker_from_name(markers_box.get_active_text())
    res = markers_box.get_active_text()
    if change_param:
      services.get_current_changer().set_parameter(0, repr(res))
    return res
  elif result == gtk.RESPONSE_CANCEL:
    return None
示例#3
0
def choose_file(filename=None):
  if filename != None:
    return filename
  def run_dialog_gui():
    dialog = gtk.FileChooserDialog(
    title='Choose file',
    action=gtk.FILE_CHOOSER_ACTION_OPEN,
    buttons=(
        gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
        gtk.STOCK_OPEN, gtk.RESPONSE_OK))
    dialog.set_default_response(gtk.RESPONSE_OK)
    filename = None
    if dialog.run() == gtk.RESPONSE_OK:
      filename = dialog.get_filename()
    dialog.destroy()   
    return filename

  synced_run_dialog_gui = create_sync_wrapper(run_dialog_gui)
  filename = synced_run_dialog_gui()
  if not filename:
    raise Exception('No file chosen')
  global services
  services.get_current_changer().set_parameter(0, "r'%s'" % filename)
  return filename

  
    
示例#4
0
  def cache(data):
    def update_params(changer, data):
      new_choices = []
      for i in xrange(len(data.option_lists)):
        choices_for_list = []
        for j in xrange(len(data.option_lists[i])):
          if(data.tree_store[(i,j)][1]):
            choices_for_list.append(data.option_lists[i][j])
        new_choices.append(choices_for_list)
      expanded = [data.tree_view.row_expanded((i)) for i in xrange(len(data.titles))]
      changer.set_parameter_by_name('choices', repr(new_choices))
      changer.set_parameter_by_name('expanded_titles', repr(expanded))
      changer.set_parameter_by_name('expanded_titles', repr(expanded))
      
    def apply_clicked(button, data, changer):
      update_params(changer, data)
      services.replay_script()

    def row_expanded_collapsed(treeview, iter, path, data, changer):
      update_params(changer, data)

    def row_toggled(cell, path, data, changer):
      data.button.show()
      parent = data.tree_store[path].parent
      if parent:
        data.tree_store[path][1] = not data.tree_store[path][1]
        update_title_values(parent, data)
      else:
        new_val = not any([child[1] for child in data.tree_store[path].iterchildren()])
        for child in data.tree_store[path].iterchildren():
          child[1] = new_val
        update_title_values(data.tree_store[path], data)
      update_params(changer, data)

    data.tree_store = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN) 
    data.tree_view = gtk.TreeView(data.tree_store)
    data.tree_view.connect('row_expanded', row_expanded_collapsed, data, services.get_current_changer())
    data.tree_view.connect('row_collapsed', row_expanded_collapsed, data, services.get_current_changer())
    data.tree_view.set_headers_visible(False)
    data.renderer_toggle = gtk.CellRendererToggle()
    data.renderer_toggle.set_property('activatable', True)
    data.renderer_toggle.connect('toggled', row_toggled, data, services.get_current_changer())
    data.renderer_text = gtk.CellRendererText()
    data.renderer_text.set_property('wrap-width', 220)
    data.column0 = gtk.TreeViewColumn("Item", data.renderer_text, text=0)
    data.column1 = gtk.TreeViewColumn("Selected", data.renderer_toggle, active=1, inconsistent=2) # TODO: add inconsistent here
    #data.renderer_text.set_fixed_size(250,-1)
    data.tree_view.append_column(data.column0)
    data.tree_view.append_column(data.column1)
    data.vbox = gtk.VBox()    
    data.vbox.pack_start(data.tree_view)
    data.button = gtk.Button('Apply')
    data.button.connect('clicked', apply_clicked, data, services.get_current_changer())
    data.vbox.pack_start(data.button)
    data.tree_view.show()
    data.vbox.show()
    data.title_label = services.add_widget_in_control_box(control_title, data.vbox)
示例#5
0
 def cache(data):
   def button_click(button, changer):
       new_file = file_dialog(title, filename and os.path.dirname(filename))
       if new_file:
         changer.set_parameter_by_name('filename', repr(new_file))
         services.replay_script()
   data.button = gtk.Button(label=filename)
   data.button.set_size_request(250,-1)
   data.button.connect('clicked', button_click, services.get_current_changer())
   data.title_label = services.add_widget_in_control_box(title, data.button)
示例#6
0
 def cache(data):
   def changed(combobox, changer):
     changer.set_parameter(0, repr(combobox.get_active_text()))
     services.replay_script()
   data.box = gtk.combo_box_new_text() 
   for option in options:
     data.box.append_text(option)
   data.handler_id = data.box.connect(
       'changed', changed, services.get_current_changer())
   #data.slider.set_size_request(150,-1)
   data.title_label = services.add_widget_in_control_box(title, data.box)
示例#7
0
 def cache(data):
   def button_release(range, event, changer):
     changer.set_parameter(0, range.get_value())
     services.replay_script()
   data.slider = gtk.HScale()
   data.slider.set_value_pos(gtk.POS_LEFT)
   data.slider.set_range(min_val, max_val)
   data.slider.connect(
       'button-release-event', button_release, services.get_current_changer())
   #data.slider.set_size_request(150,-1)
   data.title_label = services.add_widget_in_control_box(title, data.slider)
示例#8
0
    def cache(data):
        def changed(combobox, changer):
            changer.set_parameter(0, repr(combobox.get_active_text()))
            services.replay_script()

        data.box = gtk.combo_box_new_text()
        for option in options:
            data.box.append_text(option)
        data.handler_id = data.box.connect('changed', changed,
                                           services.get_current_changer())
        #data.slider.set_size_request(150,-1)
        data.title_label = services.add_widget_in_control_box(title, data.box)
示例#9
0
    def cache(data):
        def button_release(range, event, changer):
            changer.set_parameter(0, range.get_value())
            services.replay_script()

        data.slider = gtk.HScale()
        data.slider.set_value_pos(gtk.POS_LEFT)
        data.slider.set_range(min_val, max_val)
        data.slider.connect('button-release-event', button_release,
                            services.get_current_changer())
        #data.slider.set_size_request(150,-1)
        data.title_label = services.add_widget_in_control_box(
            title, data.slider)
示例#10
0
    def cache(data):
        def button_click(button, changer):
            new_file = file_dialog(title, filename
                                   and os.path.dirname(filename))
            if new_file:
                changer.set_parameter_by_name('filename', repr(new_file))
                services.replay_script()

        data.button = gtk.Button(label=filename)
        data.button.set_size_request(250, -1)
        data.button.connect('clicked', button_click,
                            services.get_current_changer())
        data.title_label = services.add_widget_in_control_box(
            title, data.button)
示例#11
0
 def __init__(self, ax, all_markers, rect_range, color_label, only_x=False, no_selection=False):
   self.all_markers = all_markers
   self.ax = ax
   self.color_label = color_label
   self.rect = None
   self.press = None
   self.ignore_next_on_press = False
   self.only_x = only_x
   self.no_selection = no_selection
   if not self.no_selection:
     self.renew_rect(rect_range)
   self.connect()
   global services
   self.changer = services.get_current_changer()
示例#12
0
def choose_file(filename=None):
    if filename != None:
        return filename

    def run_dialog_gui():
        dialog = gtk.FileChooserDialog(
            title='Choose file',
            action=gtk.FILE_CHOOSER_ACTION_OPEN,
            buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
                     gtk.RESPONSE_OK))
        dialog.set_default_response(gtk.RESPONSE_OK)
        filename = None
        if dialog.run() == gtk.RESPONSE_OK:
            filename = dialog.get_filename()
        dialog.destroy()
        return filename

    synced_run_dialog_gui = create_sync_wrapper(run_dialog_gui)
    filename = synced_run_dialog_gui()
    if not filename:
        raise Exception('No file chosen')
    global services
    services.get_current_changer().set_parameter(0, "r'%s'" % filename)
    return filename
示例#13
0
 def __init__(self,
              ax,
              all_markers,
              rect_range,
              color_label,
              only_x=False,
              no_selection=False):
     self.all_markers = all_markers
     self.ax = ax
     self.color_label = color_label
     self.rect = None
     self.press = None
     self.ignore_next_on_press = False
     self.only_x = only_x
     self.no_selection = no_selection
     if not self.no_selection:
         self.renew_rect(rect_range)
     self.connect()
     global services
     self.changer = services.get_current_changer()
示例#14
0
 def __init__(self, ax, dims):
     self.ax = ax
     self.changer = services.get_current_changer()
     self.cidrelease = self.ax.figure.canvas.mpl_connect(
         'button_release_event', self.on_release)
     self.dims = dims
示例#15
0
    def cache(data):
        def update_params(changer, data):
            new_choices = []
            for i in xrange(len(data.option_lists)):
                choices_for_list = []
                for j in xrange(len(data.option_lists[i])):
                    if (data.tree_store[(i, j)][1]):
                        choices_for_list.append(data.option_lists[i][j])
                new_choices.append(choices_for_list)
            expanded = [
                data.tree_view.row_expanded((i))
                for i in xrange(len(data.titles))
            ]
            changer.set_parameter_by_name('choices', repr(new_choices))
            changer.set_parameter_by_name('expanded_titles', repr(expanded))
            changer.set_parameter_by_name('expanded_titles', repr(expanded))

        def apply_clicked(button, data, changer):
            update_params(changer, data)
            services.replay_script()

        def row_expanded_collapsed(treeview, iter, path, data, changer):
            update_params(changer, data)

        def row_toggled(cell, path, data, changer):
            data.button.show()
            parent = data.tree_store[path].parent
            if parent:
                data.tree_store[path][1] = not data.tree_store[path][1]
                update_title_values(parent, data)
            else:
                new_val = not any([
                    child[1] for child in data.tree_store[path].iterchildren()
                ])
                for child in data.tree_store[path].iterchildren():
                    child[1] = new_val
                update_title_values(data.tree_store[path], data)
            update_params(changer, data)

        data.tree_store = gtk.TreeStore(gobject.TYPE_STRING,
                                        gobject.TYPE_BOOLEAN,
                                        gobject.TYPE_BOOLEAN)
        data.tree_view = gtk.TreeView(data.tree_store)
        data.tree_view.connect('row_expanded', row_expanded_collapsed, data,
                               services.get_current_changer())
        data.tree_view.connect('row_collapsed', row_expanded_collapsed, data,
                               services.get_current_changer())
        data.tree_view.set_headers_visible(False)
        data.renderer_toggle = gtk.CellRendererToggle()
        data.renderer_toggle.set_property('activatable', True)
        data.renderer_toggle.connect('toggled', row_toggled, data,
                                     services.get_current_changer())
        data.renderer_text = gtk.CellRendererText()
        data.renderer_text.set_property('wrap-width', 220)
        data.column0 = gtk.TreeViewColumn("Item", data.renderer_text, text=0)
        data.column1 = gtk.TreeViewColumn(
            "Selected", data.renderer_toggle, active=1,
            inconsistent=2)  # TODO: add inconsistent here
        #data.renderer_text.set_fixed_size(250,-1)
        data.tree_view.append_column(data.column0)
        data.tree_view.append_column(data.column1)
        data.vbox = gtk.VBox()
        data.vbox.pack_start(data.tree_view)
        data.button = gtk.Button('Apply')
        data.button.connect('clicked', apply_clicked, data,
                            services.get_current_changer())
        data.vbox.pack_start(data.button)
        data.tree_view.show()
        data.vbox.show()
        data.title_label = services.add_widget_in_control_box(
            control_title, data.vbox)
示例#16
0
 def __init__(self, ax, dims):
   self.ax = ax
   self.changer = services.get_current_changer()
   self.cidrelease = self.ax.figure.canvas.mpl_connect(
       'button_release_event', self.on_release)
   self.dims = dims