Hi all,

I wrote a patch for display of the description of the parameter. (see attached)
This patch revises next problems.

1)When added a parameter, a description is not displayed.
2)When changed a parameter by hand, description is not displayed.

Please test out it first, and let me know your comments or
questions.
If everybody likes it, and it meets a criterion for
Heartbeat, I hope the next release includes it officially.

Best Regards,
Hideo YAMAUCHI


*** haclient.py.in      2007-10-22 16:56:31.000000000 +0900
--- haclient.py.in.130  2007-10-22 17:01:24.000000000 +0900
***************
*** 40,45 ****
--- 40,48 ----
  
  UI_FILE = "@HA_DATADIR@/heartbeat-gui/haclient.glade"
  
+ ADDNATIVEDLG_PARAMETERS_NAME_COLUMN = 1
+ ADDNATIVEDLG_PARAMETERS_DESC_COLUMN = 3
+ 
  window = None
  manager = None
  debug_level = 0
***************
*** 68,75 ****
        return vfalse
        
  def edited_cb(cell, path, new_text, user_data):
!       liststore, column, call_back = user_data
        liststore[path][column] = new_text
        if call_back != None :
              call_back(None)
        return
--- 71,91 ----
        return vfalse
        
  def edited_cb(cell, path, new_text, user_data):
!       liststore, column, call_back, meta = user_data
        liststore[path][column] = new_text
+ 
+       names = []
+       # The next condition supports only the handling of AddNativeDlg class
+       if meta != None and column == ADDNATIVEDLG_PARAMETERS_NAME_COLUMN :
+               boFind = False
+               for paramMeta in meta.parameters :
+                       if new_text == paramMeta["name"] :
+                               
liststore[path][ADDNATIVEDLG_PARAMETERS_DESC_COLUMN] = paramMeta["shortdesc"]
+                               boFind = True
+                               break
+               if boFind == False :
+                       liststore[path][ADDNATIVEDLG_PARAMETERS_DESC_COLUMN] = 
""
+ 
        if call_back != None :
              call_back(None)
        return
***************
*** 144,150 ****
        return False
        
  def add_column(widget, label, value, icon_cell_func = None, editable = False
!               , options=None, call_back=None, visible = True) :
        tvcolumn = gtk.TreeViewColumn(label)
        widget.append_column(tvcolumn)
        if options == None or not pygtk_2_6_newer():
--- 160,166 ----
        return False
        
  def add_column(widget, label, value, icon_cell_func = None, editable = False
!               , options=None, call_back=None, visible = True, meta = None) :
        tvcolumn = gtk.TreeViewColumn(label)
        widget.append_column(tvcolumn)
        if options == None or not pygtk_2_6_newer():
***************
*** 159,165 ****
        
        if editable :
                cell.set_property('editable', True)
!               cell.connect('edited', edited_cb, (widget.get_model(), value, 
call_back))
        if icon_cell_func != None :
                icon_cell = gtk.CellRendererPixbuf()
                tvcolumn.pack_start(icon_cell, False)
--- 175,181 ----
        
        if editable :
                cell.set_property('editable', True)
!               cell.connect('edited', edited_cb, (widget.get_model(), value, 
call_back, meta))
        if icon_cell_func != None :
                icon_cell = gtk.CellRendererPixbuf()
                tvcolumn.pack_start(icon_cell, False)
***************
*** 451,456 ****
--- 467,473 ----
        fields = None
        add_btn_handler = None
        del_btn_handler = None
+       meta = None
        def on_del(self, widget) :
                selection = self.widget.get_selection()
                (model, iter) = selection.get_selected()
***************
*** 474,486 ****
                        return gtk.ListStore(str, str, str, str, str,str, str, 
str, str, str)
                return None
                
!       def __init__(self, widget, add_btn, del_btn, title, fields, 
call_back=None, auto_fill=None) :
                self.add_btn = add_btn
                self.del_btn = del_btn
                self.widget = widget
                self.call_back = call_back
                self.title = title
                self.fields = fields
                self.add_btn_handler = add_btn.connect("clicked", self.on_add)
                self.del_btn_handler = del_btn.connect("clicked", self.on_del)
                self.auto_fill = auto_fill
--- 491,504 ----
                        return gtk.ListStore(str, str, str, str, str,str, str, 
str, str, str)
                return None
                
!       def __init__(self, widget, add_btn, del_btn, title, fields, meta=None, 
call_back=None, auto_fill=None) :
                self.add_btn = add_btn
                self.del_btn = del_btn
                self.widget = widget
                self.call_back = call_back
                self.title = title
                self.fields = fields
+               self.meta = meta
                self.add_btn_handler = add_btn.connect("clicked", self.on_add)
                self.del_btn_handler = del_btn.connect("clicked", self.on_del)
                self.auto_fill = auto_fill
***************
*** 488,494 ****
                widget.set_model(self.store)
                for i in range(len(fields)) :
                        add_column(widget, fields[i].label, i, None, 
fields[i].editable,
!                               fields[i].options, call_back, not 
fields[i].auto_gen)
                        
                
        def clear(self) :
--- 506,512 ----
                widget.set_model(self.store)
                for i in range(len(fields)) :
                        add_column(widget, fields[i].label, i, None, 
fields[i].editable,
!                               fields[i].options, call_back, not 
fields[i].auto_gen, meta)
                        
                
        def clear(self) :
***************
*** 507,513 ****
                        if item.has_key(f.key) :
                                values.append(item[f.key])
                        else :
!                               values.append("")
                self.store.append(values)
                if self.call_back != None :
                        self.call_back(self)
--- 525,541 ----
                        if item.has_key(f.key) :
                                values.append(item[f.key])
                        else :
!                               if f.key == "shortdesc" and self.meta != None :
!                                       finddesc = False
!                                       for paramMeta in self.meta.parameters :
!                                               if item["name"] == 
paramMeta["name"] :
!                                                       
values.append(paramMeta["shortdesc"])
!                                                       finddesc = True
!                                                       break
!                                       if finddesc == False :
!                                               values.append("")
!                               else :
!                                       values.append("")
                self.store.append(values)
                if self.call_back != None :
                        self.call_back(self)
***************
*** 1166,1171 ****
--- 1194,1200 ----
                        Field("operation", _("Operation"), "eq",
                                
['lt','gt','lte','gte','eq','ne','defined','not_defined'], False),
                        Field("value", _("Value"), "", manager.get_all_nodes(), 
False)],
+                       None,
                        self.on_changed)
                self.update()
                
***************
*** 1299,1304 ****
--- 1328,1334 ----
                                            [Field("id", _("ID"), "", None, 
False, auto_gen=True),
                                             Field("name", _("Name"), "", 
param_options, False),
                                             Field("value", _("Value"), "", 
None, True)],
+                                               None,
                                            self.on_changed,
                                                self.autofill_param)
                                      
***************
*** 1316,1321 ****
--- 1346,1352 ----
                                             Field("role", 
_("Role"),"Started",["Master","Slave","Started","Stopped"],True),
                                             Field("prereq", _("Prereq"), "", 
["nothing","quorum","fencing"], True),
                                             Field("on_fail", _("On Fail"), 
"",["ignore","block","stop","restart","fence"], True)],
+                                               None,
                                         self.on_changed,
                                         self.autofill_op)
                
***************
*** 1399,1404 ****
--- 1430,1436 ----
                                            [Field("id", _("ID"), "", None, 
False, auto_gen=True),
                                             Field("name", _("Name"), "", None, 
False),
                                             Field("value", _("Value"), "", 
None, True)],
+                                               None,
                                            self.on_changed)
                                            
                options_dict = {"is_managed":["default","true","false"],
***************
*** 1455,1461 ****
                param_list = ListWithAddDel(glade.get_widget("parameters"),
                                       glade.get_widget("addparam"),
                                       glade.get_widget("delparam"),
!                                      _("Add Parameter"), fields)
                self.param_list = param_list
                if meta != None :
                        for param in meta.parameters :
--- 1487,1493 ----
                param_list = ListWithAddDel(glade.get_widget("parameters"),
                                       glade.get_widget("addparam"),
                                       glade.get_widget("delparam"),
!                                      _("Add Parameter"), fields, meta)
                self.param_list = param_list
                if meta != None :
                        for param in meta.parameters :
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to