From def8c40ffba0438573a3413b5db6f251deb6821a Mon Sep 17 00:00:00 2001 From: Cecilia Date: Wed, 23 Jan 2013 21:08:55 +0000 Subject: se agrego metadata, data y se realizo el borrado --- diff --git a/CalculArte.activity/activity.py b/CalculArte.activity/activity.py index 7c67a03..85436e2 100644 --- a/CalculArte.activity/activity.py +++ b/CalculArte.activity/activity.py @@ -81,22 +81,23 @@ class CalculArteActivity(activity.Activity): # label with the text, make the string translatable vbox = gtk.VBox() - hbox = gtk.HBox() - label_historial = gtk.Label() - entry_visor = gtk.Entry() + hbox = gtk.HBox(True) + self.label_historial = gtk.Label() + self.label_historial.set_line_wrap(True) + self.entry_visor = gtk.Entry() table = gtk.Table(5,5, True) boton = gtk.Button('boton falso') #window.connect('destroy', self.destroy) - label_historial.set_text('Ultimo resultado:') + self.label_historial.set_text('Ultimo resultado:') #label_historial.justify() #window.add(hbox) self.set_canvas(hbox) hbox.add(vbox) - hbox.add(label_historial) - vbox.add(entry_visor) + hbox.add(self.label_historial) + vbox.add(self.entry_visor) vbox.add(table) vbox.add(boton) @@ -107,7 +108,7 @@ class CalculArteActivity(activity.Activity): button = gtk.Button() option = OPTIONS.pop() button.set_label(option) - button.connect('activate', self.__button_cb, entry_visor, boton, label_historial) + button.connect('activate', self.__button_cb, self.entry_visor, boton, self.label_historial) self.connect('key-press-event', self.__barrido_columnas_cb) #canvas = self.get_canvas() #canvas.connect('key-press-event', self.__barrido_columnas_cb) @@ -133,8 +134,23 @@ class CalculArteActivity(activity.Activity): def __button_cb(self, button, entry, boton, label): if (button.get_label() == 'Aceptar'): - resultado = str(eval(entry.get_text())) - label.set_label('Ultimo resultado:\n' + entry.get_text() + ': ' + resultado) + try: + + resultado = str(eval(entry.get_text())) + label.set_label('Ultimo resultado:\n' + entry.get_text() + ': ' + resultado) + except ZeroDivisionError: + label.set_label('Ultimo resultado:\n Error: Division por cero [' + entry.get_text()+']' ) + entry.set_text("") + + except: + label.set_label('Ultimo resultado:\n Imposible de realizar la operacion. Intente nuevamente') + entry.set_text("") + + + entry.set_text("") + elif (button.get_label() == 'Borrar'): + entry.set_text(entry.get_text()[0:entry.get_text_length()-1]) + else: entry.set_text(entry.get_text() + button.get_label()) self._flag_fila_columna = 0 @@ -170,8 +186,6 @@ class CalculArteActivity(activity.Activity): self._columnas_index = (self._columnas_index) % OPT_LENGHT buttons_focus = buttons[(self._filas_index-1)*OPT_LENGHT:(self._filas_index-1)*OPT_LENGHT+OPT_LENGHT] - print self._filas_index - print self._columnas_index button = buttons_focus[self._columnas_index] button.grab_focus() @@ -184,3 +198,46 @@ class CalculArteActivity(activity.Activity): def __barrido_columnas_cb(self, table, arg): self._flag_fila_columna = 1 + + + def read_file(self, tmp_file): + """ datastore high-level interaction to read + logging.debug("The tmp_file is at %s, for reading", tmp_file)""" + + # resume metadata + try: + self.label_historial.set_label(self.metadata['entry']) + self._filas_index = int(self.metadata['fila']) + self._columnas_index = int(self.metadata['columna']) + self._flag_fila_columna = int(self.metadata['flag']) + buttons = table.get_children() + buttons.reverse() + buttons_focus = buttons[self._filas_index*OPT_LENGHT:self._filas_index*OPT_LENGHT+OPT_LENGHT] + for button in buttons: + button.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color('dark gray')) + for button in buttons_focus: + button.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color('light gray')) + except KeyError: + logging.error("No entry metadata") + + # resume data + data = open(tmp_file, "r") + buffer = self.entry_visor + buffer.set_text(data.read()) + data.close() + + def write_file(self, tmp_file): + """ datastore high-level interaction to write + logging.debug("The tmp_file is at %s, for writing", tmp_file)""" + + # save metadata + self.metadata['entry'] = self.label_historial.get_label() + self.metadata['fila'] = self._filas_index + self.metadata['columna'] = self._columnas_index + self.metadata['flag'] = self._flag_fila_columna + + # save data + data = open(tmp_file, "w") + buffer = self.entry_visor.get_text() + data.write(buffer) + data.close() -- cgit v0.9.1