Mercurial > libervia-backend
diff frontends/src/wix/param.py @ 545:8f88ae7ed886
wix: fixed parameters management
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 14 Nov 2012 21:30:21 +0100 |
parents | 2a072735e459 |
children | ca13633d3b6b |
line wrap: on
line diff
--- a/frontends/src/wix/param.py Wed Nov 14 21:29:38 2012 +0100 +++ b/frontends/src/wix/param.py Wed Nov 14 21:30:21 2012 +0100 @@ -57,48 +57,54 @@ panel=wx.Panel(self.notebook) panel.sizer = wx.BoxSizer(wx.VERTICAL) - cat_dom = minidom.parseString(self.host.bridge.getParamsForCategory(category, profile_key = self.host.profile).encode('utf-8')) - - for param in cat_dom.documentElement.getElementsByTagName("param"): - name = param.getAttribute("name") - label = param.getAttribute("label") - type = param.getAttribute("type") - value = param.getAttribute("value") - sizer = wx.BoxSizer(wx.HORIZONTAL) - if type=="string": - label=wx.StaticText(panel, -1, (label or name)+" ") - ctrl = wx.TextCtrl(panel, -1, value) - sizer.Add(label) - elif type=="password": - label=wx.StaticText(panel, -1, (label or name)+" ") - ctrl = wx.TextCtrl(panel, -1, value, style=wx.TE_PASSWORD) - sizer.Add(label) - elif type=="bool": - ctrl = wx.CheckBox(panel, -1, label or name, style = wx.CHK_2STATE) - ctrl.SetValue(value=="true") - elif type=="button": - ctrl = wx.Button(panel, -1, value) - ctrl.callback_id = param.getAttribute("callback_id") - else: - error(_("FIXME FIXME FIXME")) #FIXME ! - raise NotImplementedError - if name: - ctrl.param_id=(name, category) - self.ctl_list[(name, category)] = ctrl - sizer.Add(ctrl, 1, flag=wx.EXPAND) - panel.sizer.Add(sizer, flag=wx.EXPAND) + def errorGettingParams(ignore): + wx.MessageDialog(self, _("Can't get parameters"), _("Parameters error"), wx.ICON_ERROR).ShowModal() - if type=="string" or type=="password": - panel.Bind(wx.EVT_TEXT, self.onTextChanged, ctrl) - elif type=="bool": - panel.Bind(wx.EVT_CHECKBOX, self.onCheckBoxClicked, ctrl) - elif type=="button": - panel.Bind(wx.EVT_BUTTON, self.onButtonClicked, ctrl) + def gotParams(result): + cat_dom = minidom.parseString(result.encode('utf-8')) + + for param in cat_dom.documentElement.getElementsByTagName("param"): + name = param.getAttribute("name") + label = param.getAttribute("label") + type = param.getAttribute("type") + value = param.getAttribute("value") + sizer = wx.BoxSizer(wx.HORIZONTAL) + if type=="string": + label=wx.StaticText(panel, -1, (label or name)+" ") + ctrl = wx.TextCtrl(panel, -1, value) + sizer.Add(label) + elif type=="password": + label=wx.StaticText(panel, -1, (label or name)+" ") + ctrl = wx.TextCtrl(panel, -1, value, style=wx.TE_PASSWORD) + sizer.Add(label) + elif type=="bool": + ctrl = wx.CheckBox(panel, -1, label or name, style = wx.CHK_2STATE) + ctrl.SetValue(value=="true") + elif type=="button": + ctrl = wx.Button(panel, -1, value) + ctrl.callback_id = param.getAttribute("callback_id") + else: + error(_("FIXME FIXME FIXME")) #FIXME ! + raise NotImplementedError + if name: + ctrl.param_id=(name, category) + self.ctl_list[(name, category)] = ctrl + sizer.Add(ctrl, 1, flag=wx.EXPAND) + panel.sizer.Add(sizer, flag=wx.EXPAND) - panel.SetSizer(panel.sizer) - panel.SetAutoLayout(True) - self.notebook.AddPage(panel, category) - cat_dom.unlink() + if type=="string" or type=="password": + panel.Bind(wx.EVT_TEXT, self.onTextChanged, ctrl) + elif type=="bool": + panel.Bind(wx.EVT_CHECKBOX, self.onCheckBoxClicked, ctrl) + elif type=="button": + panel.Bind(wx.EVT_BUTTON, self.onButtonClicked, ctrl) + + panel.SetSizer(panel.sizer) + panel.SetAutoLayout(True) + self.notebook.AddPage(panel, category) + cat_dom.unlink() + + self.host.bridge.getParamsForCategory(category, profile_key = self.host.profile, callback = gotParams, errback = errorGettingParams) def onTextChanged(self, event): """Called when a string paramater is modified"""