class Editor: def __init__(self, db_url, parent_panel): self.db_url = db_url self.doc_id = None self.parent_panel = parent_panel def loadDocument(self, doc_id): # Load document into editor HTTPRequest().asyncGet(None, None, url=self.db_url+doc_id, handler=DocLoader(self)) def reloadDocument(self): if self.doc_id is None: Window.Alert('Trying to reload blank doc') else: self.loadDocument(self.doc_id) def updateDoc(self, json): doc_obj = JSONParser().decode(json) self.doc_id = doc_obj['_id'] self.id_label.setText('ID : %s'%doc_obj['_id']) self.rev_label.setText('REV: %s'%doc_obj['_rev']) self.save_button.setEnabled(True) self.doc_area.setText(json) self.doc_area.setEnabled(True) self.doc_area.setFocus(True) def saveDocument(self): self.doc_area.setEnabled(False) self.save_button.setEnabled(False) HTTPRequest().asyncPut(None, None, url=self.db_url+self.doc_id, postData=self.doc_area.getText(), handler=DocSaver(self)) def onModuleLoad(self): # Editor self.editor_panel = VerticalPanel() self.id_label = Label('ID: ') self.editor_panel.add(self.id_label) self.rev_label = Label('REV: ') self.editor_panel.add(self.rev_label) self.doc_area = TextArea() self.doc_area.setCharacterWidth(80) self.doc_area.setVisibleLines(24) self.doc_area.setEnabled(False) self.editor_panel.add(self.doc_area) self.parent_panel.add(self.editor_panel) # Buttons self.button_panel = HorizontalPanel() self.save_button = Button("Save", self.saveDocument) self.save_button.setEnabled(False) self.button_panel.add(self.save_button) self.parent_panel.add(self.button_panel)
def init(self, parent): """ Finishes initializing the editor by creating the underlying toolkit widget. """ if (self.item.resizable is True) or (self.item.height != -1.0): control = TextArea() else: control = TextBox() control.setEnabled(False) # control.setStyleName( element = "color", style = WindowColor ) self.control = control self.set_tooltip()