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
denis@2007: 
Edouard@2329: from connectors.SchemeEditor import SchemeEditor
denis@2007: 
denis@2007: 
edouard@2492: model = [('host', _("Host:")),
edouard@2492:          ('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@2492: _PerSchemeConf = {sch: (mod, sec) for sch, mod, sec in models}
edouard@2492: 
denis@2007: 
Edouard@2329: class PYRO_dialog(SchemeEditor):
Edouard@2329:     def __init__(self, scheme, *args, **kwargs):
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@2492:     # pylint: disable=unused-variable
Edouard@2329:     def SetLoc(self, loc):
edouard@2492:         hostport, ID = list(islice(chain(loc.split("#"), repeat("")), 2))
edouard@2492:         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@2492:                 template += ":{port}"
Edouard@2609:             if self.EnableIDSelector:
Edouard@2609:                 if fields['ID']:
Edouard@2609:                     template += "#{ID}"
Edouard@2329: 
Edouard@2329:             return template.format(**fields)
Edouard@2329:         return ''