refactoring: using xml params part II

This commit is contained in:
Goffi 2009-11-06 23:31:00 +01:00
commit a18f064aa2
4 changed files with 68 additions and 64 deletions

View file

@ -42,8 +42,8 @@ class QuickApp():
self.bridge.register("askConfirmation", self.askConfirmation, "request")
###now we get the essential params###
self.whoami=JID(self.bridge.getParam("JabberID","Connection")[0])
self.watched=self.bridge.getParam("Watched", "Misc")[0].split() #TODO: put this in a plugin
self.whoami=JID(self.bridge.getParamV("JabberID","Connection"))
self.watched=self.bridge.getParamV("Watched", "Misc").split() #TODO: put this in a plugin
## misc ##
self.onlineContact = set() #FIXME: temporary

View file

@ -61,14 +61,17 @@ class DBusBridgeFrontend(BridgeFrontend):
def setPresence(self, to="", type="", show="", status="", priority=0):
return self.db_comm_iface.setPresence(to, type, show, status, priority)
def setParam(self, name, value, namespace="default"):
return self.db_comm_iface.setParam(name, value, namespace)
def setParam(self, name, value, category):
return self.db_comm_iface.setParam(name, value, category)
def getParam(self, name, namespace="default"):
return self.db_comm_iface.getParam(name, namespace)
def getParamV(self, name, category):
return self.db_comm_iface.getParamV(name, category)
def getParams(self, namespace="default"):
return self.db_comm_iface.getParams(namespace)
def getParams(self):
return self.db_comm_iface.getParams()
def getParamsForCategory(self, category):
return self.db_comm_iface.getParamsForCategory(category)
def getParamsCategories(self):
return self.db_comm_iface.getParamsCategories()

View file

@ -340,7 +340,7 @@ class MainWindow(wx.Frame, QuickApp):
def onParam(self, e):
debug("Param request")
param=Param(self.bridge.setParam, self.bridge.getParam, self.bridge.getParams, self.bridge.getParamsCategories)
param=Param(self.bridge)
def onExit(self, e):
self.Close()

View file

@ -23,17 +23,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import wx
import pdb
from xml.dom import minidom
from logging import debug, info, error
class Param(wx.Frame):
def __init__(self, setParam, getParam, getParams, getParamsCategories, title="Configuration"):
def __init__(self, bridge, title="Configuration"):
super(Param, self).__init__(None, title=title)
self.setParam=setParam
self.getParam=getParam
self.getParams=getParams
self.getParamsCategories=getParamsCategories
self.bridge = bridge
self.modified={} # dict of modified data (i.e. what we have to save)
@ -48,7 +46,7 @@ class Param(wx.Frame):
self.MakeModal()
for category in self.getParamsCategories():
for category in self.bridge.getParamsCategories():
self.addCategory(category)
self.Show()
@ -57,17 +55,22 @@ class Param(wx.Frame):
panel=wx.Panel(self.notebook)
panel.sizer = wx.BoxSizer(wx.VERTICAL)
for param in self.getParams(category):
cat_dom = minidom.parseString(self.bridge.getParamsForCategory(category))
for param in cat_dom.documentElement.getElementsByTagName("param"):
name = param.getAttribute("name")
type = param.getAttribute("type")
value = param.getAttribute("value")
sizer = wx.BoxSizer(wx.HORIZONTAL)
label=wx.StaticText(panel, -1, param[0]+" ")
if param[2]=="string":
ctrl = wx.TextCtrl(panel, -1, param[1])
elif param[2]=="password":
ctrl = wx.TextCtrl(panel, -1, param[1], style=wx.TE_PASSWORD)
label=wx.StaticText(panel, -1, name+" ")
if type=="string":
ctrl = wx.TextCtrl(panel, -1, value)
elif type=="password":
ctrl = wx.TextCtrl(panel, -1, value, style=wx.TE_PASSWORD)
else:
error("FIXME FIXME FIXME") #FIXME !
raise NotImplementedError
ctrl.param_id=(param[0], category)
ctrl.param_id=(name, category)
sizer.Add(label)
sizer.Add(ctrl, 1, flag=wx.EXPAND)
panel.sizer.Add(sizer, flag=wx.EXPAND)
@ -76,6 +79,7 @@ class Param(wx.Frame):
panel.SetSizer(panel.sizer)
panel.SetAutoLayout(True)
self.notebook.AddPage(panel, category)
cat_dom.unlink()
def onTextChanged(self, event):
"""Called when a paramated is modified"""
@ -88,7 +92,7 @@ class Param(wx.Frame):
debug("close")
#now we save the modifier params
for param in self.modified:
self.setParam(param[0], self.modified[param], param[1])
self.bridge.setParam(param[0], self.modified[param], param[1])
self.MakeModal(False)
event.Skip()