[gevice] add functios for select,insert,update and delete models
- From: Alejandro Valdes Jimenez <avaldes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gevice] add functios for select,insert,update and delete models
- Date: Tue, 12 May 2009 18:16:17 -0400 (EDT)
commit 7fe7d88ea0f2e7115a6f45ad26ed1bbe7cdb5566
Author: Alejandro Valdes Jimenez <avaldes lenny utalca cl>
Date: Tue May 12 18:16:30 2009 -0400
add functios for select,insert,update and delete models
---
src/gevicemaintainer.py | 174 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 173 insertions(+), 1 deletions(-)
diff --git a/src/gevicemaintainer.py b/src/gevicemaintainer.py
index f3fccfb..f918d00 100644
--- a/src/gevicemaintainer.py
+++ b/src/gevicemaintainer.py
@@ -13,7 +13,9 @@ import config
class GeviceMaintainer:
def __ini__ (self):
- pass
+ self.list_mark = None
+ self.list_type = None
+
def load_interface (self,gevice,title,sql):
glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "gevice.glade"),"window_maintainer",None)
@@ -48,6 +50,85 @@ class GeviceMaintainer:
self.button_add.connect ("clicked",self.on_button_add_clicked,gevice,sql)
self.button_rem.connect ("clicked",self.on_button_rem_clicked,gevice,sql)
+ def load_interface1 (self,gevice,title,sql):
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "gevice.glade"),"window_maintainer1",None)
+ self.window_maintainer = glade_file.get_widget ("window_maintainer1")
+ self.button_add = glade_file.get_widget ("button_add1")
+ self.button_rem = glade_file.get_widget ("button_rem1")
+ self.button_close = glade_file.get_widget ("button_close1")
+ self.treeview = glade_file.get_widget ("treeview1")
+
+ self.window_maintainer.set_title (title)
+
+ self.modelcell = gtk.ListStore(int, gobject.TYPE_STRING)
+
+ # create columns
+ col = gtk.TreeViewColumn (_("ID"))
+ col.set_resizable (True)
+ self.treeview.append_column (col)
+ cell = gtk.CellRendererText()
+ cell.set_property('editable',False)
+ col.pack_start (cell,True)
+ col.add_attribute (cell,"text",0)
+
+ col = gtk.TreeViewColumn (_("Device"))
+ col.set_resizable (True)
+ self.treeview.append_column (col)
+ cell = gtk.CellRendererText()
+ cell.set_property('editable',False)
+ col.pack_start (cell,True)
+ col.add_attribute (cell,"text",1)
+
+ col = gtk.TreeViewColumn (_("Model"))
+ col.set_resizable (True)
+ self.treeview.append_column (col)
+ cell = gtk.CellRendererText()
+ cell.set_property('editable',True)
+ cell.connect('edited', self.on_model_edited,gevice,sql)
+ col.pack_start (cell,True)
+ col.add_attribute (cell,"text",2)
+
+ self.button_close.connect ("clicked",self.on_button_close_clicked,)
+ self.button_rem.connect ("clicked",self.on_button_rem_model_clicked,gevice,sql)
+ self.button_add.connect ("clicked",self.on_button_add_model_clicked,gevice,sql)
+
+
+ def load_interface_model (self,gevice,sql):
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "gevice.glade"),"window_model",None)
+ self.window_model = glade_file.get_widget ("window_model")
+ self.button_ok = glade_file.get_widget ("button_ok")
+ self.button_cancel = glade_file.get_widget ("button_cancel")
+ self.combobox_type = glade_file.get_widget ("combobox_type")
+ self.combobox_mark = glade_file.get_widget ("combobox_mark")
+ self.entry_model = glade_file.get_widget ("entry_model")
+
+ self.button_cancel.connect ("clicked",self.on_button_model_cancel_clicked)
+ self.button_ok.connect ("clicked",self.on_button_model_ok_clicked,gevice,sql)
+
+
+ self.list_type = gevice.gdbase.get_list_of_type(gevice)
+ self.combobox_type.set_model(self.list_type)
+ cell = gtk.CellRendererText()
+ self.combobox_type.pack_start(cell, True)
+ self.combobox_type.add_attribute(cell, 'text', 0)
+
+ self.list_mark = gevice.gdbase.get_list_of_mark(gevice)
+ self.combobox_mark.set_model (self.list_mark)
+ cell = gtk.CellRendererText()
+ self.combobox_mark.pack_start(cell, True)
+ self.combobox_mark.add_attribute(cell, 'text', 0)
+
+ self.entry_model.set_text("")
+ self.combobox_type.set_active(0)
+ self.combobox_mark.set_active(0)
+
+ self.window_model.show_all()
+
+
+ def on_button_model_cancel_clicked (self,button):
+ self.close_window (self.window_model)
+
+
def show_interface (self):
self.window_maintainer.show_all()
@@ -70,12 +151,36 @@ class GeviceMaintainer:
0,row[0],
1,row[1])
+
+ def load_data1 (self,gevice,sql):
+ liststore = gtk.ListStore(
+ gobject.TYPE_INT,
+ gobject.TYPE_STRING,
+ gobject.TYPE_STRING)
+
+ self.treeview.set_model (None)
+ self.treeview.set_model (liststore)
+
+ rows = gevice.gdbase.execute_sql_select(gevice,sql["select"])
+
+ if rows:
+ for row in rows:
+ iter = liststore.append ()
+ liststore.set (
+ iter,
+ 0,row[0],
+ 1,row[1],
+ 2,row[2])
+
+
def close_window (self,window):
window.destroy()
+
def on_button_close_clicked (self,button):
self.close_window (self.window_maintainer)
+
def on_name_edited (self, cell, path, newname,gevice,sql):
newname = newname.strip()
model = self.treeview.get_model()
@@ -110,6 +215,23 @@ class GeviceMaintainer:
self.is_in_list = True;
return True
return False;
+
+ def on_model_edited(self, cell, path, newname,gevice,sql):
+ newname = newname.strip()
+ model = self.treeview.get_model()
+ iter = model.get_iter_from_string(path)
+ id,oldname = model.get(iter,0,2)
+
+ # check, newname exists
+ if oldname == newname:
+ return
+
+ model.set(iter,2,newname)
+ update = sql["update1"] + "'" + newname + "'" + sql["update2"] + str(id)
+
+ if (gevice.gdbase.execute_sql_update(gevice,update)):
+ gevice.gdbase.conn.commit()
+
def on_button_add_clicked(self,button,gevice,sql):
row = gevice.gdbase.execute_sql_select (gevice,sql["max_id"])
@@ -121,11 +243,18 @@ class GeviceMaintainer:
0,row[0][0],
1,"New" + str(row[0][0]))
+ path = liststore.get_path(iter)
+ self.treeview.set_cursor(path,None,False)
+
insert = sql["insert"] + " (" + str(row[0][0]) + ",'" + "New" + str(row[0][0]) + "')"
if (gevice.gdbase.execute_sql_insert (gevice,insert)):
gevice.gdbase.conn.commit()
+
+ def on_button_add_model_clicked(self,button,gevice,sql):
+ self.load_interface_model(gevice,sql)
+
def on_button_rem_clicked(self,button,gevice,sql):
selection = self.treeview.get_selection()
@@ -149,3 +278,46 @@ class GeviceMaintainer:
dialog.destroy()
+ def on_button_rem_model_clicked(self,button,gevice,sql):
+ selection = self.treeview.get_selection()
+ model,iter = selection.get_selected()
+
+ id = model.get(iter,0)[0]
+ device = model.get(iter,1)[0]
+ name = model.get(iter,2)[0]
+
+ delete = sql["delete"] + str(id)
+
+ dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
+ gtk.BUTTONS_YES_NO, _("Really delete: ") + device + " " + name)
+
+ result = dialog.run()
+
+ if result == gtk.RESPONSE_YES:
+ if (gevice.gdbase.execute_sql_delete (gevice,delete)):
+ model.remove(iter)
+
+ gevice.gdbase.conn.commit()
+
+ dialog.destroy()
+
+
+ def on_button_model_ok_clicked (self,button,gevice,sql):
+ nmodel = self.entry_model.get_text()
+
+ iter_mark = self.combobox_mark.get_active_iter()
+ id_mark = self.list_mark.get_value(iter_mark,1)
+
+ iter_type = self.combobox_type.get_active_iter()
+ id_type = self.list_type.get_value(iter_type,1)
+
+
+ row = gevice.gdbase.execute_sql_select (gevice,sql["max_id"])
+
+ insert = sql["insert"] + " (" + str(row[0][0]) + "," + str(id_type) + "," + str(id_mark) + ",'" + nmodel + "')"
+
+ if (gevice.gdbase.execute_sql_insert (gevice,insert)):
+ gevice.gdbase.conn.commit()
+
+ self.load_data1(gevice,sql)
+ self.on_button_model_cancel_clicked(None)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]