Упражнения

Добавим события (event) для кнопок, описанных в модуле webtext/buttons.py:

            def dirbuttons(context, main=None, add=None, filterinfo=None, session=None, elementId=None):
            
            buttonstyle = "blue"
            
            # Описание кнопки "Добавить"
            addButton = {"div":{"@class": "newbutton highbutton",
            "span": {"@class": "blue xforms-trigger",
            "span": {"@class": "value",
            "button": {"@style": "width: 135px; text-align: center",
            "@onclick": "gwtWebTextFunc('%s','1');" % elementId,
            "span": {"@class": "xforms-label", "#text": "Добавить"
            }
            }
            
            }
            }
            }
            }
            
            # Описание кнопки "Редактировать"
            editButton = {"div":{"@class": "newbutton highbutton",
            "span": {"@class": buttonstyle + ' xforms-trigger',
            "span": {"@class": "value",
            "button": {"@style": "width: 135px; text-align: center",
            "@onclick": "gwtWebTextFunc('%s','2');" % elementId,
            "span": {"@class": "xforms-label", "#text": "Редактировать"
            }
            }
            
            }
            }
            }
            }
            
            # Описание кнопки "Удалить"
            delButton = {"div":{"@class": "newbutton highbutton",
            "span": {"@class": buttonstyle + ' xforms-trigger',
            "span": {"@class": "value",
            "button": {"@style": "width: 135px; text-align: center",
            "@onclick": "var answer=confirm(''Вы действительно хотите удалить запись?''); if (answer) gwtWebTextFunc('%s','3');" % elementId,
            "span": {"@class": "xforms-label", "#text": "Удалить"
            }
            }
            
            }
            }
            }
            }
            
            # Разметка кнопок
            data = {"div": {"table": {"@cellpadding": "0px",
            "@cellspacing": "1px",
            "tr":{"td": [addButton,
            editButton,
            delButton
            ]
            }
            }
            }
            }
            
            addButtonSettings = {
            "@name": "single_click",
            "@linkId": "1",
            "action": ""
            }
            
            editButtonSettings = {
            "@name": "single_click",
            "@linkId": "2",
            "action": ""
            }
            
            delButtonSettings = {
            "@name": "single_click",
            "@linkId": "3",
            "action": ""
            }
            
            settings = { "properties": {"event": [
            addButtonSettings, 
            editButtonSettings, 
            delButtonSettings]} 
            }
            
            return JythonDTO(XMLJSONConverter(input=data).parse(), XMLJSONConverter(input=settings).parse())
            

События, описанные в приведённом листинге не выполняют никаких действий. Обратите внимание на значения атрибута @linkId и параметры атрибута @onclick в описании кнопок.