def __populate_gui(self, event): """ Populate the GUI for a given form event. """ # Set source handle = self.citation.get_reference_handle() source = self.db.get_source_from_handle(handle) source_text = self.widgets['source_text'] source_text.set_text(source.get_title()) form_id = get_form_id(source) # Set event type event_type = EventType() event_type.set_from_xml_str(get_form_type(form_id)) self.event.set_type(event_type) # Set date form_date = get_form_date(form_id) date_text = self.widgets['date_text'] date_button = self.widgets['date_button'] if form_date is not None: date_text.set_text(displayer.display(form_date)) self.event.set_date_object(form_date) self.citation.set_date_object(form_date) date_text.set_editable(False) date_button.set_sensitive(False) else: date_text.set_text(get_date(event)) date_text.set_editable(True) date_button.set_sensitive(True) # Create tabs self.details = DetailsTab(self.dbstate, self.uistate, self.track, self.event, self.citation, form_id) self.headings = HeadingsTab(self.dbstate, self.uistate, self.track, self.event, self.citation, form_id) self.gallery_list = GalleryTab(self.dbstate, self.uistate, self.track, self.citation.get_media_list()) self._add_tab(self.notebook, self.details) self._add_tab(self.notebook, self.headings) self._add_tab(self.notebook, self.gallery_list) self.notebook.show_all() self.notebook.set_current_page(0)
def find_form_event(db, citation): """ Given a citation for a form source, find the corresponding event. """ handle = citation.get_reference_handle() source = db.get_source_from_handle(handle) form_type = get_form_type(get_form_id(source)) for item in db.find_backlink_handles(citation.handle, ['Event']): event = db.get_event_from_handle(item[1]) if event.get_type().xml_str() == form_type: return event return Event()
def _populate_model(self): """ Populate the model. """ self.model.clear() form_types = {} for handle in self.dbstate.db.get_source_handles(): source = self.dbstate.db.get_source_from_handle(handle) form_id = get_form_id(source) if form_id in get_form_ids(): form_type = get_form_type(form_id) if _(form_type) in form_types: parent = form_types[_(form_type)] else: parent = self.model.append(None, (None, _(form_type))) form_types[_(form_type)] = parent self.model.append(parent, (source.handle, source.title)) self.model.set_sort_column_id(1, Gtk.SortType.ASCENDING) self.tree.expand_all()