+
+ parent = widget.get_model()[path][0]
+ type = widget.get_model()[path][2]
+ if type == 1:
+ self.show_record(parent)
+ return
+ print parent
+ #create button for back
+ if self.buttons.has_key(self.max_buttons) == 0:
+ self.buttons[self.max_buttons] = gtk.Button()
+ self.hbox.add(self.buttons[self.max_buttons])
+ self.buttons[self.max_buttons].set_label(widget.get_model()[path][1])
+ self.buttons[self.max_buttons].connect("clicked", self.button_back, parent, self.max_buttons)
+
+ self.buttons[self.max_buttons].show()
+ self.hbox.add(self.buttons[self.max_buttons])
+ self.max_buttons = self.max_buttons + 1
+# self.buttons[self.max_buttons] = gtk.Button()
+ self.show_list(parent)
+
+ def show_list(self, parent):
+
+ store = gtk.ListStore(int, str, int)
+ data = self.dbo.get_list(parent)
+ for d in data:
+ store.append([d, data[d], 0])
+ #add people
+ data = self.dbo.get_allrecords('cn', parent)
+ for d in data:
+ store.append([d, data[d], 1])
+ self.tree.set_model(store)
+
+ def button_back(self, widget, id=None, number=None):
+
+ """return back"""
+ self.show_list(id)
+
+ # delete not use buttons
+ while self.max_buttons - 1 > number:
+ self.buttons[self.max_buttons-1].set_label(" ")
+ self.hbox.remove(self.buttons[self.max_buttons-1])
+ self.max_buttons = self.max_buttons - 1
+
+ print "button back data= %i " % number
+
+ def show_record(self, id):
+ self.dialog = gtk.Dialog("Item descrition",
+ self.window,
+ gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+ (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+
+ rec = self.dbo.get_record(id)
+ #print rec
+ text = ""
+ tb = gtk.TextBuffer()
+
+ for r in rec:
+ #print "%s -> %s" % (r, rec[r])
+ text += "%s: %s\n" % (r, rec[r])
+
+ tb.insert_at_cursor(text)
+
+ sw = gtk.ScrolledWindow()
+ sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+ sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+
+ tv = gtk.TextView(tb)
+ sw.add(tv)
+
+ self.dialog.vbox.pack_start(sw)
+ self.dialog.set_size_request(600, 360)
+ tv.show()
+ sw.show()
+ response = self.dialog.run()
+ self.dialog.destroy()
+ print "response= %s" % response
+
+ def select_item1(self, widget, path, column):
+
+ #print "select_item path:%s" % path