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/