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: