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 ''