diff -r bcbd41efd846 -r 0d32b17f15b9 connectors/PYRO/__init__.py --- a/connectors/PYRO/__init__.py Fri Apr 20 11:21:20 2018 +0200 +++ b/connectors/PYRO/__init__.py Wed May 09 11:16:27 2018 +0200 @@ -36,9 +36,14 @@ import Pyro.util from Pyro.errors import PyroError -import wx -from controls.UriLocationEditor import IConnectorPanel -from zope.interface import implementer +try: + import wx + isWx = True +except ImportError: + isWx = False +else: + from controls.UriLocationEditor import IConnectorPanel + from zope.interface import implementer service_type = '_PYRO._tcp.local.' # this module attribute contains a list of DNS-SD (Zeroconf) service types @@ -210,55 +215,55 @@ return PyroProxyProxy() - -def PYRO_connector_dialog(confnodesroot): - [ID_IPTEXT, ID_PORTTEXT] = [wx.NewId() for _init_ctrls in range(2)] - - - @implementer(IConnectorPanel) - class PYROConnectorPanel(wx.Panel): - def __init__(self, typeConnector, parrent, *args, **kwargs): - self.type = typeConnector - self.parrent = parrent - wx.Panel.__init__(self, parrent, *args, **kwargs) - self._init_ctrls() - self._init_sizers() - self.uri = None - - def _init_ctrls(self): - self.IpText = wx.TextCtrl(parent=self, id=ID_IPTEXT, size = wx.Size(200, -1)) - self.PortText = wx.TextCtrl(parent=self, id=ID_PORTTEXT, size = wx.Size(200, -1)) - - def _init_sizers(self): - self.mainSizer = wx.BoxSizer(wx.VERTICAL) - self.uriSizer = wx.BoxSizer(wx.HORIZONTAL) - self.portSizer = wx.BoxSizer(wx.HORIZONTAL) - - self.uriSizer.Add(wx.StaticText(self, wx.ID_ANY, "URI host:", size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL) - self.uriSizer.AddSpacer((0,0)) - self.uriSizer.Add(self.IpText, proportion=1, flag=wx.ALIGN_RIGHT) - self.mainSizer.Add(self.uriSizer, border=2, flag=wx.ALL) - - self.portSizer.Add(wx.StaticText(self, wx.ID_ANY, "URI port:", size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL) - self.portSizer.AddSpacer((0,0)) - self.portSizer.Add(self.PortText, proportion=1, flag=wx.ALIGN_RIGHT) - self.mainSizer.Add(self.portSizer, border=2, flag=wx.ALL) - - self.SetSizer(self.mainSizer) - - def SetURI(self, uri): - self.uri = uri - uri_list = uri.strip().split(":") - length = len(uri_list) - if length == 3: - self.IpText.SetValue(uri_list[1].strip("/")) - self.PortText.SetValue(uri_list[2]) - elif length == 2: - self.IpText.SetValue(uri_list[1].strip("/")) - - - def GetURI(self): - self.uri = self.type+"://"+self.IpText.GetValue()+":"+self.PortText.GetValue() - return self.uri - - return PYROConnectorPanel("PYRO", confnodesroot) +if isWx: + def PYRO_connector_dialog(confnodesroot): + [ID_IPTEXT, ID_PORTTEXT] = [wx.NewId() for _init_ctrls in range(2)] + + + @implementer(IConnectorPanel) + class PYROConnectorPanel(wx.Panel): + def __init__(self, typeConnector, parrent, *args, **kwargs): + self.type = typeConnector + self.parrent = parrent + wx.Panel.__init__(self, parrent, *args, **kwargs) + self._init_ctrls() + self._init_sizers() + self.uri = None + + def _init_ctrls(self): + self.IpText = wx.TextCtrl(parent=self, id=ID_IPTEXT, size = wx.Size(200, -1)) + self.PortText = wx.TextCtrl(parent=self, id=ID_PORTTEXT, size = wx.Size(200, -1)) + + def _init_sizers(self): + self.mainSizer = wx.BoxSizer(wx.VERTICAL) + self.uriSizer = wx.BoxSizer(wx.HORIZONTAL) + self.portSizer = wx.BoxSizer(wx.HORIZONTAL) + + self.uriSizer.Add(wx.StaticText(self, wx.ID_ANY, "URI host:", size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL) + self.uriSizer.AddSpacer((0,0)) + self.uriSizer.Add(self.IpText, proportion=1, flag=wx.ALIGN_RIGHT) + self.mainSizer.Add(self.uriSizer, border=2, flag=wx.ALL) + + self.portSizer.Add(wx.StaticText(self, wx.ID_ANY, "URI port:", size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL) + self.portSizer.AddSpacer((0,0)) + self.portSizer.Add(self.PortText, proportion=1, flag=wx.ALIGN_RIGHT) + self.mainSizer.Add(self.portSizer, border=2, flag=wx.ALL) + + self.SetSizer(self.mainSizer) + + def SetURI(self, uri): + self.uri = uri + uri_list = uri.strip().split(":") + length = len(uri_list) + if length == 3: + self.IpText.SetValue(uri_list[1].strip("/")) + self.PortText.SetValue(uri_list[2]) + elif length == 2: + self.IpText.SetValue(uri_list[1].strip("/")) + + + def GetURI(self): + self.uri = self.type+"://"+self.IpText.GetValue()+":"+self.PortText.GetValue() + return self.uri + + return PYROConnectorPanel("PYRO", confnodesroot)