def get_view (self, compact=False): """Generate a view widget to edit the ruleset.""" q=SimpleQuery() q.from_xml(self.element.stream) self.edit=EditQuery(q, controller=self.controller, editable=self.editable) self.view = self.edit.get_widget() scroll_win = Gtk.ScrolledWindow () scroll_win.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scroll_win.add_with_viewport(self.view) return scroll_win
def build_widget(self): vbox = Gtk.VBox() self.eq=EditQuery(self.query, editable=True, controller=self.controller) vbox.add(self.eq.widget) hb=Gtk.HButtonBox() b=Gtk.Button(stock=Gtk.STOCK_OK) b.connect('clicked', self.validate) hb.pack_start(b, False, True, 0) b=Gtk.Button(stock=Gtk.STOCK_CANCEL) b.connect('clicked', self.cancel) hb.pack_start(b, False, True, 0) vbox.pack_start(hb, False, True, 0) def handle_key_press_event(widget, event): if event.keyval == Gdk.KEY_Return: self.validate() return True elif event.keyval == Gdk.KEY_Escape: self.cancel() return True return False vbox.connect('key-press-event', handle_key_press_event) return vbox
class SimpleQueryContentHandler (ContentHandler): """Create a SimpleQuery edit form for the given element (a view, presumably). """ def can_handle(mimetype): res=0 if mimetype == 'application/x-advene-simplequery': res=80 return res can_handle=staticmethod(can_handle) def __init__ (self, element, controller=None, parent=None, editable=True, **kw): self.element = element self.controller=controller self.parent=parent self.editable = editable self.view = None def check_validity(self): iv=self.edit.invalid_items() if iv: dialog.message_dialog( _("The following items seem to be\ninvalid TALES expressions:\n\n%s") % "\n".join(iv), icon=gtk.MESSAGE_ERROR) return False else: return True def set_editable (self, boo): self.editable = boo def update_element (self): """Update the element fields according to the values in the view.""" if not self.editable: return False if not self.edit.update_value(): return False self.element.data = self.edit.model.xml_repr() # Just to be sure: self.element.mimetype = 'application/x-advene-simplequery' return True def get_view (self, compact=False): """Generate a view widget to edit the ruleset.""" q=SimpleQuery() f=self.element.as_file q.from_xml(self.element.as_file) f.close() self.edit=EditQuery(q, controller=self.controller, editable=self.editable) self.view = self.edit.get_widget() scroll_win = gtk.ScrolledWindow () scroll_win.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll_win.add_with_viewport(self.view) return scroll_win
class SimpleQueryContentHandler (ContentHandler): """Create a SimpleQuery edit form for the given element (a view, presumably). """ def can_handle(mimetype): res=0 if mimetype == 'application/x-advene-simplequery': res=80 return res can_handle=staticmethod(can_handle) def __init__ (self, element, controller=None, parent=None, editable=True, **kw): self.element = element self.controller=controller self.parent=parent self.editable = editable self.view = None def check_validity(self): iv=self.edit.invalid_items() if iv: dialog.message_dialog( _("The following items seem to be\ninvalid TALES expressions:\n\n%s") % "\n".join(iv), icon=Gtk.MessageType.ERROR) return False else: return True def set_editable (self, boo): self.editable = boo def update_element (self): """Update the element fields according to the values in the view.""" if not self.editable: return False if not self.edit.update_value(): return False self.element.data = self.edit.model.xml_repr() # Just to be sure: self.element.mimetype = 'application/x-advene-simplequery' return True def get_view (self, compact=False): """Generate a view widget to edit the ruleset.""" q=SimpleQuery() q.from_xml(self.element.stream) self.edit=EditQuery(q, controller=self.controller, editable=self.editable) self.view = self.edit.get_widget() scroll_win = Gtk.ScrolledWindow () scroll_win.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scroll_win.add_with_viewport(self.view) return scroll_win
def get_view (self, compact=False): """Generate a view widget to edit the ruleset.""" q=SimpleQuery() f=self.element.as_file q.from_xml(self.element.as_file) f.close() self.edit=EditQuery(q, controller=self.controller, editable=self.editable) self.view = self.edit.get_widget() scroll_win = gtk.ScrolledWindow () scroll_win.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll_win.add_with_viewport(self.view) return scroll_win