def __init__(self): ''' ''' button_defs = [ {'name': 'IPNIButton', '_base_uri': "http://www.ipni.org/ipni/advPlantNameSearch.do?find_family=%(family)s&find_isAPNIRecord=on& find_isGCIRecord=on&find_isIKRecord=on&output_format=normal", '_space': ' ', 'title': _("Search IPNI"), 'tooltip': _("Search the International Plant Names Index"), }, {'name': 'GoogleButton', '_base_uri': "http://www.google.com/search?q=%s", '_space': '+', 'title': "Search Google", 'tooltip': None, }, {'name': 'GBIFButton', '_base_uri': "http://www.gbif.org/species/search?q=%s", '_space': '+', 'title': _("Search GBIF"), 'tooltip': _("Search the Global Biodiversity Information Facility"), }, {'name': 'ITISButton', '_base_uri': "http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=Scientific_Name&search_value=%s&search_kingdom=Plant&search_span=containing&categories=All&source=html&search_credRating=All", '_space': '%20', 'title': _("Search ITIS"), 'tooltip': _("Search the Intergrated Taxonomic Information System"), }, {'name': 'GRINButton', '_base_uri': "http://www.ars-grin.gov/cgi-bin/npgs/swish/accboth?query=%s&submit=Submit+Text+Query&si=0", '_space': '+', 'title': _("Search NPGS/GRIN"), 'tooltip': _('Search National Plant Germplasm System'), }, {'name': 'ALAButton', '_base_uri': "http://bie.ala.org.au/search?q=%s", '_space': '+', 'title': _("Search ALA"), 'tooltip': _("Search the Atlas of Living Australia"), }, ] InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.general = GeneralFamilyExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = view.LinksExpander('notes', links=button_defs) self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if 'GardenPlugin' not in pluginmgr.plugins: self.widgets.remove_parent('fam_nacc_label') self.widgets.remove_parent('fam_nacc_data') self.widgets.remove_parent('fam_nplants_label') self.widgets.remove_parent('fam_nplants_data')
def __init__(self): ''' the constructor ''' super(SearchView, self).__init__() filename = os.path.join(paths.lib_dir(), 'bauble.glade') self.widgets = utils.load_widgets(filename) self.create_gui() import pictures_view pictures_view.floating_window = pictures_view.PicturesView( parent=self.widgets.search_h2pane) # we only need this for the timeout version of populate_results self.populate_callback_id = None # the context menu cache holds the context menus by type in the results # view so that we don't have to rebuild them every time self.context_menu_cache = {} self.infobox_cache = {} self.infobox = None # keep all the search results in the same session, this should # be cleared when we do a new search self.session = db.Session()
def __init__(self): super(SourceDetailInfoBox, self).__init__() filename = os.path.join(paths.lib_dir(), "plugins", "garden", "source_detail_infobox.glade") self.widgets = utils.load_widgets(filename) self.general = GeneralSourceDetailExpander(self.widgets) self.add_expander(self.general)
def __init__(self): button_defs = [ {'name': 'GoogleButton', '_base_uri': "http://www.google.com/search?q=%s", '_space': '+', 'title': "Search Google", 'tooltip': None, }, {'name': 'GBIFButton', '_base_uri': "http://www.gbif.org/species/search?q=%s", '_space': '+', 'title': _("Search GBIF"), 'tooltip': _("Search the Global Biodiversity Information Facility"), }, {'name': 'ITISButton', '_base_uri': "http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=Scientific_Name&search_value=%s&search_kingdom=Plant&search_span=containing&categories=All&source=html&search_credRating=All", '_space': '%20', 'title': _("Search ITIS"), 'tooltip': _("Search the Intergrated Taxonomic Information System"), }, {'name': 'GRINButton', '_base_uri': "http://www.ars-grin.gov/cgi-bin/npgs/swish/accboth?query=%s&submit=Submit+Text+Query&si=0", '_space': '+', 'title': _("Search NPGS/GRIN"), 'tooltip': _('Search National Plant Germplasm System'), }, {'name': 'ALAButton', '_base_uri': "http://bie.ala.org.au/search?q=%s", '_space': '+', 'title': _("Search ALA"), 'tooltip': _("Search the Atlas of Living Australia"), }, {'name': 'IPNIButton', '_base_uri': "http://www.ipni.org/ipni/advPlantNameSearch.do?find_genus=%(genus)s&find_isAPNIRecord=on& find_isGCIRecord=on&find_isIKRecord=on&output_format=normal", '_space': ' ', 'title': _("Search IPNI"), 'tooltip': _("Search the International Plant Names Index"), }, {'name': 'BGCIButton', '_base_uri': "http://www.bgci.org/plant_search.php?action=Find&ftrGenus=%(genus)s&ftrRedList=&ftrRedList1997=&ftrEpithet=&ftrCWR=&x=0&y=0#results", '_space': ' ', 'title': _("Search BGCI"), 'tooltip': _("Search Botanic Gardens Conservation International"), }, {'name': 'TPLButton', '_base_uri': "http://www.theplantlist.org/tpl1.1/search?q=%(genus)s", '_space': '+', 'title': _("Search TPL"), 'tooltip': _("Search The Plant List online database"), }, {'name': 'TropicosButton', '_base_uri': "http://tropicos.org/NameSearch.aspx?name=%(genus)s", '_space': '+', 'title': _("Search Tropicos"), 'tooltip': _("Search Tropicos (MissouriBG) online database"), }, ] InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.general = GeneralGenusExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = view.LinksExpander('notes', button_defs) self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if 'GardenPlugin' not in pluginmgr.plugins: self.widgets.remove_parent('gen_nacc_label') self.widgets.remove_parent('gen_nacc_data') self.widgets.remove_parent('gen_nplants_label') self.widgets.remove_parent('gen_nplants_data')
def __init__(self, report_dialog=None, *args): super(MakoFormatterSettingsBox, self).__init__(*args) self.widgets = utils.load_widgets(os.path.join(paths.lib_dir(), "plugins", "report", "mako", "gui.glade")) # keep a refefence to settings box so it doesn't get destroyed in # remove_parent() self.settings_box = self.widgets.settings_box self.widgets.remove_parent(self.widgets.settings_box) self.pack_start(self.settings_box)
def __init__(self, report_dialog=None, *args): super(MakoFormatterSettingsBox, self).__init__(*args) self.widgets = utils.load_widgets( os.path.join(paths.lib_dir(), "plugins", "report", 'mako', 'gui.glade')) # keep a refefence to settings box so it doesn't get destroyed in # remove_parent() self.settings_box = self.widgets.settings_box self.widgets.remove_parent(self.widgets.settings_box) self.pack_start(self.settings_box)
def __init__(self): """ """ InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), "plugins", "garden", "loc_infobox.glade") self.widgets = utils.load_widgets(filename) self.general = GeneralLocationExpander(self.widgets) self.add_expander(self.general) self.description = DescriptionExpander(self.widgets) self.add_expander(self.description) self.props = PropertiesExpander() self.add_expander(self.props)
def __init__(self): ''' ''' InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), "plugins", "garden", "loc_infobox.glade") self.widgets = utils.load_widgets(filename) self.general = GeneralLocationExpander(self.widgets) self.add_expander(self.general) self.description = DescriptionExpander(self.widgets) self.add_expander(self.description) self.props = PropertiesExpander() self.add_expander(self.props)
def __init__(self): self.widgets = utils.load_widgets(os.path.join(paths.lib_dir(), "plugins", "report", 'report.glade')) self.dialog = self.widgets.report_dialog self.dialog.set_transient_for(bauble.gui.window) utils.setup_text_combobox(self.widgets.names_combo) utils.setup_text_combobox(self.widgets.formatter_combo) self._delete_sid = self.dialog.connect('delete-event', self.on_dialog_close_or_delete) self._close_sid = self.dialog.connect('close', self.on_dialog_close_or_delete) self._response_sid = self.dialog.connect('response', self.on_dialog_response)
def __init__(self): self.widgets = utils.load_widgets( os.path.join(paths.lib_dir(), "plugins", "report", 'report.glade')) self.dialog = self.widgets.report_dialog self.dialog.set_transient_for(bauble.gui.window) self.builder = self.widgets.builder utils.setup_text_combobox(self.widgets.names_combo) utils.setup_text_combobox(self.widgets.formatter_combo) self._delete_sid = self.dialog.connect( 'delete-event', self.on_dialog_close_or_delete) self._close_sid = self.dialog.connect( 'close', self.on_dialog_close_or_delete) self._response_sid = self.dialog.connect( 'response', self.on_dialog_response)
def __init__(self): InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.general = GeneralGenusExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = LinksExpander() self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if 'GardenPlugin' not in pluginmgr.plugins: self.widgets.remove_parent('gen_nacc_label') self.widgets.remove_parent('gen_nacc_data') self.widgets.remove_parent('gen_nplants_label') self.widgets.remove_parent('gen_nplants_data')
def __init__(self): """ """ InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), "plugins", "plants", "infoboxes.glade") self.widgets = utils.load_widgets(filename) self.general = GeneralFamilyExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = LinksExpander() self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if "GardenPlugin" not in pluginmgr.plugins: self.widgets.remove_parent("fam_nacc_label") self.widgets.remove_parent("fam_nacc_data") self.widgets.remove_parent("fam_nplants_label") self.widgets.remove_parent("fam_nplants_data")
def __init__(self, *args, **kwargs): """ If a class extends this View and provides its own __init__ it *must* call its parent (this) __init__ """ filename = kwargs.get('filename') if filename is not None: del kwargs['filename'] root_widget_name = kwargs.get('root_widget_name') del kwargs['root_widget_name'] super(View, self).__init__(*args, **kwargs) if filename is not None: from bauble import utils, editor self.widgets = utils.load_widgets(filename) self.view = editor.GenericEditorView( filename, root_widget_name=root_widget_name) root_widget = getattr(self.view.widgets, root_widget_name) widget = root_widget.get_children()[0] self.view.widgets.remove_parent(widget) self.add(widget) self.running_threads = []
def __init__(self): ''' ''' InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), "plugins", "garden", "plant_infobox.glade") self.widgets = utils.load_widgets(filename) self.general = GeneralPlantExpander(self.widgets) self.add_expander(self.general) self.transfers = ChangesExpander(self.widgets) self.add_expander(self.transfers) self.propagations = PropagationExpander(self.widgets) self.add_expander(self.propagations) self.links = view.LinksExpander('notes') self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props)
def __init__(self, report_dialog=None, *args): super(XSLFormatterSettingsBox, self).__init__(*args) filename = os.path.join(paths.lib_dir(), "plugins", "report", 'xsl', 'gui.glade') self.widgets = utils.load_widgets(filename) utils.setup_text_combobox(self.widgets.renderer_combo) combo = self.widgets.source_type_combo values = [_('Accession'), _('Plant/Clone'), _('Species')] utils.setup_text_combobox(combo, values=values) # keep a refefence to settings box so it doesn't get destroyed in # remove_parent() self.settings_box = self.widgets.settings_box self.widgets.remove_parent(self.widgets.settings_box) self.pack_start(self.settings_box) self.presenter = SettingsBoxPresenter(self.widgets) self.stylesheet_chooser = FileChooserButton(dialog_parent=report_dialog) self.widgets.stylesheet_alignment.add(self.stylesheet_chooser)
def __init__(self): widget_path = os.path.join(paths.lib_dir(), 'plugins', 'picasa', 'gui.glade') self.widgets = utils.load_widgets(widget_path) self.window = self.widgets.settings_dialog if bauble.gui: self.window.set_transient_for(bauble.gui.window) self.widgets.password_entry.connect('changed', self.on_changed) email = meta.get_default(PICASA_EMAIL_KEY, '').value self.widgets.email_entry.set_text(email or '') album = meta.get_default(PICASA_ALBUM_KEY, '').value self.widgets.album_entry.set_text(album or '') auth = meta.get_default(PICASA_TOKEN_KEY, '').value if auth: self.widgets.password_entry.set_text('blahblah') self._changed = False
def __init__(self, report_dialog=None, *args): super(XSLFormatterSettingsBox, self).__init__(*args) filename = os.path.join(paths.lib_dir(), "plugins", "report", 'xsl', 'gui.glade') self.widgets = utils.load_widgets(filename) utils.setup_text_combobox(self.widgets.renderer_combo) combo = self.widgets.source_type_combo values = [_('Accession'), _('Plant/Clone'), _('Species')] utils.setup_text_combobox(combo, values=values) # keep a refefence to settings box so it doesn't get destroyed in # remove_parent() self.settings_box = self.widgets.settings_box self.widgets.remove_parent(self.widgets.settings_box) self.pack_start(self.settings_box) self.presenter = SettingsBoxPresenter(self.widgets) self.stylesheet_chooser = FileChooserButton( dialog_parent=report_dialog) self.widgets.stylesheet_alignment.add(self.stylesheet_chooser)
def __init__(self): filename = os.path.join(paths.lib_dir(), 'bauble.glade') self.widgets = utils.load_widgets(filename) self.window = self.widgets.main_window self.window.hide() self.previous_view = None # restore the window size geometry = prefs[self.window_geometry_pref] if geometry is not None: self.window.set_default_size(*geometry) self.window.connect('delete-event', self.on_delete_event) self.window.connect("destroy", self.on_quit) self.window.set_title(self.title) try: pixbuf = gtk.gdk.pixbuf_new_from_file(bauble.default_icon) self.window.set_icon(pixbuf) except Exception: logger.warning(_('Could not load icon from %s') % bauble.default_icon) logger.warning(traceback.format_exc()) menubar = self.create_main_menu() self.widgets.menu_box.pack_start(menubar) combo = self.widgets.main_comboentry model = gtk.ListStore(str) combo.set_model(model) self.populate_main_entry() main_entry = combo.child main_entry.connect('activate', self.on_main_entry_activate) accel_group = gtk.AccelGroup() main_entry.add_accelerator("grab-focus", accel_group, ord('L'), gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE) self.window.add_accel_group(accel_group) self.widgets.home_button.connect( 'clicked', self.on_home_button_clicked) self.widgets.prev_view_button.connect( 'clicked', self.on_prev_view_button_clicked) self.widgets.go_button.connect( 'clicked', self.on_go_button_clicked) self.widgets.query_button.connect( 'clicked', self.on_query_button_clicked) self.set_default_view() # add a progressbar to the status bar # Warning: this relies on gtk.Statusbar internals and could break in # future versions of gtk statusbar = self.widgets.statusbar statusbar.set_spacing(10) statusbar.set_has_resize_grip(True) self._cids = [] def on_statusbar_push(sb, cid, txt): if cid not in self._cids: self._cids.append(cid) statusbar.connect('text-pushed', on_statusbar_push) # remove label from frame frame = statusbar.get_children()[0] #frame.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#FF0000')) label = frame.get_children()[0] frame.remove(label) # replace label with hbox and put label and progress bar in hbox hbox = gtk.HBox(False, 5) frame.add(hbox) hbox.pack_start(label, True, True, 0) vbox = gtk.VBox(True, 0) hbox.pack_end(vbox, False, True, 15) self.progressbar = gtk.ProgressBar() vbox.pack_start(self.progressbar, False, False, 0) self.progressbar.set_size_request(-1, 10) vbox.show() hbox.show() from pyparsing import StringStart, Word, alphanums, restOfLine, \ StringEnd cmd = StringStart() + ':' + Word( alphanums + '-_').setResultsName('cmd') arg = restOfLine.setResultsName('arg') self.cmd_parser = (cmd + StringEnd()) | (cmd + '=' + arg) | arg combo.grab_focus()
def __init__(self): filename = os.path.join(paths.lib_dir(), 'bauble.glade') self.widgets = utils.load_widgets(filename) self.window = self.widgets.main_window self.window.hide() # restore the window size geometry = prefs[self.window_geometry_pref] if geometry is not None: self.window.set_default_size(*geometry) self.window.connect('delete-event', self.on_delete_event) self.window.connect("destroy", self.on_quit) self.window.set_title(self.title) try: pixbuf = gtk.gdk.pixbuf_new_from_file(bauble.default_icon) self.window.set_icon(pixbuf) except Exception: logger.warning( _('Could not load icon from %s') % bauble.default_icon) logger.warning(traceback.format_exc()) menubar = self.create_main_menu() self.widgets.menu_box.pack_start(menubar) combo = self.widgets.main_comboentry model = gtk.ListStore(str) combo.set_model(model) self.populate_main_entry() main_entry = combo.child main_entry.connect('activate', self.on_main_entry_activate) accel_group = gtk.AccelGroup() main_entry.add_accelerator("grab-focus", accel_group, ord('L'), gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE) self.window.add_accel_group(accel_group) go_button = self.widgets.go_button go_button.connect('clicked', self.on_go_button_clicked) query_button = self.widgets.query_button query_button.connect('clicked', self.on_query_button_clicked) self.set_default_view() # add a progressbar to the status bar # Warning: this relies on gtk.Statusbar internals and could break in # future versions of gtk statusbar = self.widgets.statusbar statusbar.set_spacing(10) statusbar.set_has_resize_grip(True) self._cids = [] def on_statusbar_push(sb, cid, txt): if cid not in self._cids: self._cids.append(cid) statusbar.connect('text-pushed', on_statusbar_push) # remove label from frame frame = statusbar.get_children()[0] #frame.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#FF0000')) label = frame.get_children()[0] frame.remove(label) # replace label with hbox and put label and progress bar in hbox hbox = gtk.HBox(False, 5) frame.add(hbox) hbox.pack_start(label, True, True, 0) vbox = gtk.VBox(True, 0) hbox.pack_end(vbox, False, True, 15) self.progressbar = gtk.ProgressBar() vbox.pack_start(self.progressbar, False, False, 0) self.progressbar.set_size_request(-1, 10) vbox.show() hbox.show() from pyparsing import StringStart, Word, alphanums, restOfLine, \ StringEnd cmd = StringStart() + ':' + Word(alphanums + '-_').setResultsName('cmd') arg = restOfLine.setResultsName('arg') self.cmd_parser = (cmd + StringEnd()) | (cmd + '=' + arg) | arg combo.grab_focus()
def __init__(self): ''' ''' button_defs = [ { 'name': 'IPNIButton', '_base_uri': "http://www.ipni.org/ipni/advPlantNameSearch.do?find_family=%(family)s&find_isAPNIRecord=on& find_isGCIRecord=on&find_isIKRecord=on&output_format=normal", '_space': ' ', 'title': _("Search IPNI"), 'tooltip': _("Search the International Plant Names Index"), }, { 'name': 'GoogleButton', '_base_uri': "http://www.google.com/search?q=%s", '_space': '+', 'title': "Search Google", 'tooltip': None, }, { 'name': 'GBIFButton', '_base_uri': "http://www.gbif.org/species/search?q=%s", '_space': '+', 'title': _("Search GBIF"), 'tooltip': _("Search the Global Biodiversity Information Facility"), }, { 'name': 'ITISButton', '_base_uri': "http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=Scientific_Name&search_value=%s&search_kingdom=Plant&search_span=containing&categories=All&source=html&search_credRating=All", '_space': '%20', 'title': _("Search ITIS"), 'tooltip': _("Search the Intergrated Taxonomic Information System"), }, { 'name': 'GRINButton', '_base_uri': "http://www.ars-grin.gov/cgi-bin/npgs/swish/accboth?query=%s&submit=Submit+Text+Query&si=0", '_space': '+', 'title': _("Search NPGS/GRIN"), 'tooltip': _('Search National Plant Germplasm System'), }, { 'name': 'ALAButton', '_base_uri': "http://bie.ala.org.au/search?q=%s", '_space': '+', 'title': _("Search ALA"), 'tooltip': _("Search the Atlas of Living Australia"), }, ] InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.general = GeneralFamilyExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = view.LinksExpander('notes', links=button_defs) self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if 'GardenPlugin' not in pluginmgr.plugins: self.widgets.remove_parent('fam_nacc_label') self.widgets.remove_parent('fam_nacc_data') self.widgets.remove_parent('fam_nplants_label') self.widgets.remove_parent('fam_nplants_data')
def __init__(self): ''' ''' logger.debug('SplashInfoBox::__init__') super(SplashInfoBox, self).__init__() filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.widgets.remove_parent(self.widgets.splash_vbox) self.pack_start(self.widgets.splash_vbox, expand=False, padding=8) utils.make_label_clickable( self.widgets.splash_nfamuse, lambda *a: bauble.gui.send_command( 'family where genera.species.id != 0')) utils.make_label_clickable( self.widgets.splash_ngenuse, lambda *a: bauble.gui.send_command( 'genus where not species = Empty')) utils.make_label_clickable( self.widgets.splash_nspctot, lambda *a: bauble.gui.send_command( 'species like %')) utils.make_label_clickable( self.widgets.splash_nspcuse, lambda *a: bauble.gui.send_command( 'species where not accessions = Empty')) utils.make_label_clickable( self.widgets.splash_nspcnot, lambda *a: bauble.gui.send_command( 'species where accessions = Empty')) utils.make_label_clickable( self.widgets.splash_nacctot, lambda *a: bauble.gui.send_command( 'accession like %')) utils.make_label_clickable( self.widgets.splash_naccuse, lambda *a: bauble.gui.send_command( 'accession where sum(plants.quantity)>0')) utils.make_label_clickable( self.widgets.splash_naccnot, lambda *a: bauble.gui.send_command( 'accession where plants = Empty or sum(plants.quantity)=0')) utils.make_label_clickable( self.widgets.splash_nplttot, lambda *a: bauble.gui.send_command( 'plant like %')) utils.make_label_clickable( self.widgets.splash_npltuse, lambda *a: bauble.gui.send_command( 'plant where sum(quantity)>0')) utils.make_label_clickable( self.widgets.splash_npltnot, lambda *a: bauble.gui.send_command( 'plant where sum(quantity)=0')) utils.make_label_clickable( self.widgets.splash_nloctot, lambda *a: bauble.gui.send_command( 'location like %')) utils.make_label_clickable( self.widgets.splash_nlocuse, lambda *a: bauble.gui.send_command( 'location where sum(plants.quantity)>0')) utils.make_label_clickable( self.widgets.splash_nlocnot, lambda *a: bauble.gui.send_command( 'location where plants is Empty or sum(plants.quantity)=0')) for i in range(1, 11): wname = "stqr_%02d_button" % i widget = getattr(self.widgets, wname) widget.connect('clicked', partial(self.on_sqb_clicked, i)) wname = "splash_stqr_button" widget = getattr(self.widgets, wname) widget.connect('clicked', self.on_splash_stqr_button_clicked)
def __init__(self): ''' ''' logger.debug('SplashInfoBox::__init__') super(SplashInfoBox, self).__init__() filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.widgets.remove_parent(self.widgets.splash_vbox) self.pack_start(self.widgets.splash_vbox, expand=False, padding=8) utils.make_label_clickable( self.widgets.splash_nfamuse, lambda *a: bauble.gui.send_command( 'family where genera.species.id != 0')) utils.make_label_clickable( self.widgets.splash_ngenuse, lambda *a: bauble.gui.send_command( 'genus where not species = Empty')) utils.make_label_clickable( self.widgets.splash_nspctot, lambda *a: bauble.gui.send_command('species like %')) utils.make_label_clickable( self.widgets.splash_nspcuse, lambda *a: bauble.gui.send_command( 'species where not accessions = Empty')) utils.make_label_clickable( self.widgets.splash_nspcnot, lambda *a: bauble.gui.send_command( 'species where accessions = Empty')) utils.make_label_clickable( self.widgets.splash_nacctot, lambda *a: bauble.gui.send_command('accession like %')) utils.make_label_clickable( self.widgets.splash_naccuse, lambda *a: bauble.gui.send_command( 'accession where sum(plants.quantity)>0')) utils.make_label_clickable( self.widgets.splash_naccnot, lambda *a: bauble.gui.send_command( 'accession where plants = Empty or sum(plants.quantity)=0')) utils.make_label_clickable( self.widgets.splash_nplttot, lambda *a: bauble.gui.send_command('plant like %')) utils.make_label_clickable( self.widgets.splash_npltuse, lambda *a: bauble.gui.send_command('plant where sum(quantity)>0')) utils.make_label_clickable( self.widgets.splash_npltnot, lambda *a: bauble.gui.send_command('plant where sum(quantity)=0')) utils.make_label_clickable( self.widgets.splash_nloctot, lambda *a: bauble.gui.send_command('location like %')) utils.make_label_clickable( self.widgets.splash_nlocuse, lambda *a: bauble.gui.send_command( 'location where sum(plants.quantity)>0')) utils.make_label_clickable( self.widgets.splash_nlocnot, lambda *a: bauble.gui.send_command( 'location where plants is Empty or sum(plants.quantity)=0')) for i in range(1, 11): wname = "stqr_%02d_button" % i widget = getattr(self.widgets, wname) widget.connect('clicked', partial(self.on_sqb_clicked, i)) wname = "splash_stqr_button" widget = getattr(self.widgets, wname) widget.connect('clicked', self.on_splash_stqr_button_clicked)
def __init__(self): button_defs = [ { 'name': 'GoogleButton', '_base_uri': "http://www.google.com/search?q=%s", '_space': '+', 'title': "Search Google", 'tooltip': None, }, { 'name': 'GBIFButton', '_base_uri': "http://www.gbif.org/species/search?q=%s", '_space': '+', 'title': _("Search GBIF"), 'tooltip': _("Search the Global Biodiversity Information Facility"), }, { 'name': 'ITISButton', '_base_uri': "http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=Scientific_Name&search_value=%s&search_kingdom=Plant&search_span=containing&categories=All&source=html&search_credRating=All", '_space': '%20', 'title': _("Search ITIS"), 'tooltip': _("Search the Intergrated Taxonomic Information System"), }, { 'name': 'GRINButton', '_base_uri': "http://www.ars-grin.gov/cgi-bin/npgs/swish/accboth?query=%s&submit=Submit+Text+Query&si=0", '_space': '+', 'title': _("Search NPGS/GRIN"), 'tooltip': _('Search National Plant Germplasm System'), }, { 'name': 'ALAButton', '_base_uri': "http://bie.ala.org.au/search?q=%s", '_space': '+', 'title': _("Search ALA"), 'tooltip': _("Search the Atlas of Living Australia"), }, { 'name': 'IPNIButton', '_base_uri': "http://www.ipni.org/ipni/advPlantNameSearch.do?find_genus=%(genus)s&find_isAPNIRecord=on& find_isGCIRecord=on&find_isIKRecord=on&output_format=normal", '_space': ' ', 'title': _("Search IPNI"), 'tooltip': _("Search the International Plant Names Index"), }, { 'name': 'BGCIButton', '_base_uri': "http://www.bgci.org/plant_search.php?action=Find&ftrGenus=%(genus)s&ftrRedList=&ftrRedList1997=&ftrEpithet=&ftrCWR=&x=0&y=0#results", '_space': ' ', 'title': _("Search BGCI"), 'tooltip': _("Search Botanic Gardens Conservation International"), }, { 'name': 'TPLButton', '_base_uri': "http://www.theplantlist.org/tpl1.1/search?q=%(genus)s", '_space': '+', 'title': _("Search TPL"), 'tooltip': _("Search The Plant List online database"), }, { 'name': 'TropicosButton', '_base_uri': "http://tropicos.org/NameSearch.aspx?name=%(genus)s", '_space': '+', 'title': _("Search Tropicos"), 'tooltip': _("Search Tropicos (MissouriBG) online database"), }, ] InfoBox.__init__(self) filename = os.path.join(paths.lib_dir(), 'plugins', 'plants', 'infoboxes.glade') self.widgets = utils.load_widgets(filename) self.general = GeneralGenusExpander(self.widgets) self.add_expander(self.general) self.synonyms = SynonymsExpander(self.widgets) self.add_expander(self.synonyms) self.links = view.LinksExpander('notes', button_defs) self.add_expander(self.links) self.props = PropertiesExpander() self.add_expander(self.props) if 'GardenPlugin' not in pluginmgr.plugins: self.widgets.remove_parent('gen_nacc_label') self.widgets.remove_parent('gen_nacc_data') self.widgets.remove_parent('gen_nplants_label') self.widgets.remove_parent('gen_nplants_data')