Hi

I attached the patch which I revised.
If there is not the problem of this patch, I put the patch of the final version 
in buguzilla.
* http://old.linux-foundation.org/developer_bugzilla/show_bug.cgi?id=1748

Regards,
Hideo Yamauchi

--- YAMAUCHI HIDEO <[EMAIL PROTECTED]> wrote:

> Hi.
> 
> > Sorry, You forgot to change the parameter of the "edited_cb" function
> > been connected in NVList. So it got an error in the "Attributes" table.
> 
> OK.
> It will review it tomorrow. 
> 
> Regards,
> Hideo Yamauchi 
> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
> 
diff -r 5b4aad7a6598 mgmt/client/haclient.py.in
--- a/mgmt/client/haclient.py.in        Tue Oct 16 16:39:48 2007 -0600
+++ b/mgmt/client/haclient.py.in        Thu Oct 25 09:56:00 2007 +0900
@@ -40,6 +40,9 @@ import gtk, gtk.glade, gobject
 
 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,8 +71,21 @@ def cond(condition, vtrue, vfalse) :
        return vfalse
        
 def edited_cb(cell, path, new_text, user_data):
-      liststore, column, call_back = 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
@@ -97,7 +113,7 @@ def pygtk_2_4_newer () :
        return False
        
 def add_column(widget, label, value, icon_cell_func = None, editable = False
-               , options=None, call_back=None, visible = True) :
+               , 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():
@@ -112,7 +128,7 @@ def add_column(widget, label, value, ico
        
        if editable :
                cell.set_property('editable', True)
-               cell.connect('edited', edited_cb, (widget.get_model(), value, 
call_back))
+               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)
@@ -365,7 +381,7 @@ class NVList :
                else :
                        cell = gtk.CellRendererText()
                cell.set_property('editable', True)
-               cell.connect('edited', edited_cb, (self.store, 1, call_back))
+               cell.connect('edited', edited_cb, (self.store, 1, call_back, 
None))
                tvcolumn = gtk.TreeViewColumn(_("Value"),cell,text=1)
                self.call_back = call_back
                self.widget.append_column(tvcolumn)
@@ -404,6 +420,7 @@ class ListWithAddDel :
        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()
@@ -427,13 +444,14 @@ class ListWithAddDel :
                        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) :
+       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
@@ -441,7 +459,7 @@ class ListWithAddDel :
                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)
+                               fields[i].options, call_back, not 
fields[i].auto_gen, meta)
                        
                
        def clear(self) :
@@ -460,7 +478,17 @@ class ListWithAddDel :
                        if item.has_key(f.key) :
                                values.append(item[f.key])
                        else :
-                               values.append("")
+                               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)
@@ -1119,6 +1147,7 @@ class LocationView(View) :
                        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()
                
@@ -1247,6 +1276,7 @@ class RscView(View) :
                                            [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)
                                      
@@ -1264,6 +1294,7 @@ class RscView(View) :
                                             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)
                
@@ -1347,6 +1378,7 @@ class CompoundRscView(View) :
                                            [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"],
@@ -1403,7 +1435,7 @@ class AddNativeDlg :
                param_list = ListWithAddDel(glade.get_widget("parameters"),
                                       glade.get_widget("addparam"),
                                       glade.get_widget("delparam"),
-                                      _("Add Parameter"), fields)
+                                      _("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