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/