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