denis@2007: #!/usr/bin/env python
denis@2007: # -*- coding: utf-8 -*-
denis@2007: 
denis@2007: # See COPYING file for copyrights details.
denis@2007: 
Edouard@2329: from __future__ import absolute_import
denis@2007: 
Edouard@2329: from itertools import repeat, islice, chain
Edouard@2329: import wx
denis@2007: 
Edouard@2329: from connectors.SchemeEditor import SchemeEditor
denis@2007: 
denis@2007: 
Edouard@2329: model = [('host',_("Host:")),
Edouard@2329:          ('port',_("Port:"))]
denis@2007: 
Edouard@2334: # (scheme, model, secure)
Edouard@2334: models = [("LOCAL", [], False), ("PYRO", model, False), ("PYROS", model, True)]
denis@2007: 
Edouard@2329: Schemes = list(zip(*models)[0])
denis@2007: 
Edouard@2334: _PerSchemeConf = {sch : (mod,sec) for sch,mod,sec in models}
denis@2007: 
Edouard@2329: class PYRO_dialog(SchemeEditor):
Edouard@2329:     def __init__(self, scheme, *args, **kwargs):
Edouard@2334:        
Edouard@2334:         # ID selector is enabled only on PYROS (secure)
Edouard@2334:         self.model, self.EnableIDSelector = _PerSchemeConf[scheme]
Edouard@2334: 
Edouard@2329:         SchemeEditor.__init__(self, scheme, *args, **kwargs)
denis@2007: 
Edouard@2329:     def SetLoc(self, loc):
Edouard@2329:         hostport, ID = list(islice(chain(loc.split("#"), repeat("")),2))
Edouard@2329:         host, port = list(islice(chain(hostport.split(":"), repeat("")),2))
Edouard@2329:         self.SetFields(locals())
denis@2007: 
Edouard@2329:     def GetLoc(self):
Edouard@2329:         if self.model:
Edouard@2329:             fields = self.GetFields()
Edouard@2329:             template = "{host}"
Edouard@2329:             if fields['port']:
Edouard@2329:                 template += ":{port}" 
Edouard@2334:             if fields['ID']:
Edouard@2334:                 template += "#{ID}" 
Edouard@2329: 
Edouard@2329:             return template.format(**fields)
Edouard@2329:         return ''
Edouard@2329: