connectors/WAMP/__init__.py
branch#2476
changeset 2005 0d32b17f15b9
parent 2001 bcbd41efd846
child 2006 c4ba142bf3fb
equal deleted inserted replaced
2001:bcbd41efd846 2005:0d32b17f15b9
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    24 
    24 
    25 
    25 
    26 from __future__ import absolute_import
    26 from __future__ import absolute_import
    27 from __future__ import print_function
    27 from __future__ import print_function
    28 import wx
    28 try:
    29 from controls.UriLocationEditor import IConnectorPanel
    29     import wx
    30 from zope.interface import implementer
    30     isWx = True
       
    31 except ImportError:
       
    32     isWx = False
       
    33 else:
       
    34     from controls.UriLocationEditor import IConnectorPanel
       
    35     from zope.interface import implementer
    31 
    36 
    32 import traceback
    37 import traceback
    33 from threading import Thread, Event
    38 from threading import Thread, Event
    34 
    39 
    35 from twisted.internet import reactor, threads
    40 from twisted.internet import reactor, threads
   161     except Exception:
   166     except Exception:
   162         confnodesroot.logger.write_error(_("WAMP connection to '%s' failed.\n") % location)
   167         confnodesroot.logger.write_error(_("WAMP connection to '%s' failed.\n") % location)
   163         confnodesroot.logger.write_error(traceback.format_exc())
   168         confnodesroot.logger.write_error(traceback.format_exc())
   164         return None
   169         return None
   165 
   170 
   166 
   171 if isWx:
   167 def WAMP_connector_dialog(confnodesroot):
   172     def WAMP_connector_dialog(confnodesroot):
   168     [ID_IPTEXT, ID_PORTTEXT, ID_REALMTEXT, ID_WAMPIDTEXT, ID_SECURECHECKBOX] = [wx.NewId() for _init_ctrls in range(5)]
   173         [ID_IPTEXT, ID_PORTTEXT, ID_REALMTEXT, ID_WAMPIDTEXT, ID_SECURECHECKBOX] = [wx.NewId() for _init_ctrls in range(5)]
   169 
   174 
   170 
   175 
   171     @implementer(IConnectorPanel)
   176         @implementer(IConnectorPanel)
   172     class WAMPConnectorPanel(wx.Panel):
   177         class WAMPConnectorPanel(wx.Panel):
   173         def __init__(self, typeConnector, parrent, *args, **kwargs):
   178             def __init__(self, typeConnector, parrent, *args, **kwargs):
   174             self.type = typeConnector
   179                 self.type = typeConnector
   175             self.parrent = parrent
   180                 self.parrent = parrent
   176             wx.Panel.__init__(self, parrent, *args, **kwargs)
   181                 wx.Panel.__init__(self, parrent, *args, **kwargs)
   177             self._init_ctrls()
   182                 self._init_ctrls()
   178             self._init_sizers()
   183                 self._init_sizers()
   179             self.uri = None
   184                 self.uri = None
   180 
   185 
   181         def _init_ctrls(self):
   186             def _init_ctrls(self):
   182             self.IpText = wx.TextCtrl(parent=self, id=ID_IPTEXT, size = wx.Size(200, -1))
   187                 self.IpText = wx.TextCtrl(parent=self, id=ID_IPTEXT, size = wx.Size(200, -1))
   183             self.PortText = wx.TextCtrl(parent=self, id=ID_PORTTEXT, size = wx.Size(200, -1))
   188                 self.PortText = wx.TextCtrl(parent=self, id=ID_PORTTEXT, size = wx.Size(200, -1))
   184             self.RealmText = wx.TextCtrl(parent=self, id=ID_REALMTEXT, size = wx.Size(200, -1))
   189                 self.RealmText = wx.TextCtrl(parent=self, id=ID_REALMTEXT, size = wx.Size(200, -1))
   185             self.WAMPIDText = wx.TextCtrl(parent=self, id=ID_WAMPIDTEXT, size = wx.Size(200, -1))
   190                 self.WAMPIDText = wx.TextCtrl(parent=self, id=ID_WAMPIDTEXT, size = wx.Size(200, -1))
   186             self.SecureCheckbox = wx.CheckBox(self, ID_SECURECHECKBOX, _("Is connection secure?"))
   191                 self.SecureCheckbox = wx.CheckBox(self, ID_SECURECHECKBOX, _("Is connection secure?"))
   187 
   192 
   188         def _init_sizers(self):
   193             def _init_sizers(self):
   189             self.mainSizer = wx.BoxSizer(wx.VERTICAL)
   194                 self.mainSizer = wx.BoxSizer(wx.VERTICAL)
   190             self.uriSizer = wx.BoxSizer(wx.HORIZONTAL)
   195                 self.uriSizer = wx.BoxSizer(wx.HORIZONTAL)
   191             self.portSizer = wx.BoxSizer(wx.HORIZONTAL)
   196                 self.portSizer = wx.BoxSizer(wx.HORIZONTAL)
   192             self.realmSizer = wx.BoxSizer(wx.HORIZONTAL)
   197                 self.realmSizer = wx.BoxSizer(wx.HORIZONTAL)
   193             self.wampIDSizer = wx.BoxSizer(wx.HORIZONTAL)
   198                 self.wampIDSizer = wx.BoxSizer(wx.HORIZONTAL)
   194 
   199 
   195             self.uriSizer.Add(wx.StaticText(self, wx.ID_ANY, _("URI host:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   200                 self.uriSizer.Add(wx.StaticText(self, wx.ID_ANY, _("URI host:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   196             self.uriSizer.AddSpacer((0,0))
   201                 self.uriSizer.AddSpacer((0,0))
   197             self.uriSizer.Add(self.IpText, proportion=1, flag=wx.ALIGN_RIGHT)
   202                 self.uriSizer.Add(self.IpText, proportion=1, flag=wx.ALIGN_RIGHT)
   198             self.mainSizer.Add(self.uriSizer, border=2, flag=wx.ALL)
   203                 self.mainSizer.Add(self.uriSizer, border=2, flag=wx.ALL)
   199 
   204 
   200             self.portSizer.Add(wx.StaticText(self, wx.ID_ANY, _("URI port:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   205                 self.portSizer.Add(wx.StaticText(self, wx.ID_ANY, _("URI port:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   201             self.portSizer.AddSpacer((0,0))
   206                 self.portSizer.AddSpacer((0,0))
   202             self.portSizer.Add(self.PortText, proportion=1, flag=wx.ALIGN_RIGHT)
   207                 self.portSizer.Add(self.PortText, proportion=1, flag=wx.ALIGN_RIGHT)
   203             self.mainSizer.Add(self.portSizer, border=2, flag=wx.ALL)
   208                 self.mainSizer.Add(self.portSizer, border=2, flag=wx.ALL)
   204 
   209 
   205             self.realmSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Realm:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   210                 self.realmSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Realm:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   206             self.realmSizer.AddSpacer((0, 0))
   211                 self.realmSizer.AddSpacer((0, 0))
   207             self.realmSizer.Add(self.RealmText, proportion=1, flag=wx.ALIGN_RIGHT)
   212                 self.realmSizer.Add(self.RealmText, proportion=1, flag=wx.ALIGN_RIGHT)
   208             self.mainSizer.Add(self.realmSizer, border=2, flag=wx.ALL)
   213                 self.mainSizer.Add(self.realmSizer, border=2, flag=wx.ALL)
   209 
   214 
   210             self.wampIDSizer.Add(wx.StaticText(self, wx.ID_ANY, _("WAMP ID:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   215                 self.wampIDSizer.Add(wx.StaticText(self, wx.ID_ANY, _("WAMP ID:"), size = wx.Size(70, -1)), proportion=0, flag=wx.ALIGN_CENTER_VERTICAL)
   211             self.wampIDSizer.AddSpacer((0, 0))
   216                 self.wampIDSizer.AddSpacer((0, 0))
   212             self.wampIDSizer.Add(self.WAMPIDText, proportion=1, flag=wx.ALIGN_RIGHT)
   217                 self.wampIDSizer.Add(self.WAMPIDText, proportion=1, flag=wx.ALIGN_RIGHT)
   213             self.mainSizer.Add(self.wampIDSizer, border=2, flag=wx.ALL)
   218                 self.mainSizer.Add(self.wampIDSizer, border=2, flag=wx.ALL)
   214 
   219 
   215             self.mainSizer.Add(self.SecureCheckbox, proportion=1, flag=wx.ALIGN_LEFT)
   220                 self.mainSizer.Add(self.SecureCheckbox, proportion=1, flag=wx.ALIGN_LEFT)
   216 
   221 
   217             self.SetSizer(self.mainSizer)
   222                 self.SetSizer(self.mainSizer)
   218 
   223 
   219         def SetURI(self, uri):
   224             def SetURI(self, uri):
   220             self.uri = uri
   225                 self.uri = uri
   221             uri_list = uri.strip().split(":")
   226                 uri_list = uri.strip().split(":")
   222             length = len(uri_list)
   227                 length = len(uri_list)
   223 
   228 
   224             if length > 0:
   229                 if length > 0:
   225                 if uri_list[0] == URITypes[1]:
   230                     if uri_list[0] == URITypes[1]:
   226                     self.SecureCheckbox.SetValue(True)
   231                         self.SecureCheckbox.SetValue(True)
   227 
   232 
   228                 if length > 2:
   233                     if length > 2:
   229                     self.IpText.SetValue(uri_list[1].strip("/"))
   234                         self.IpText.SetValue(uri_list[1].strip("/"))
   230                     wampSett = uri_list[2].split("#")
   235                         wampSett = uri_list[2].split("#")
   231                     length2 = len(wampSett)
   236                         length2 = len(wampSett)
   232                     if length2 > 0:
   237                         if length2 > 0:
   233                         self.PortText.SetValue(wampSett[0])
   238                             self.PortText.SetValue(wampSett[0])
   234                         if length2 > 1:
   239                             if length2 > 1:
   235                             self.RealmText.SetValue(wampSett[1])
   240                                 self.RealmText.SetValue(wampSett[1])
   236                             if length2 > 2:
   241                                 if length2 > 2:
   237                                 self.WAMPIDText.SetValue(wampSett[2])
   242                                     self.WAMPIDText.SetValue(wampSett[2])
   238 
   243 
   239         def GetURI(self):
   244             def GetURI(self):
   240             if self.IpText.Validate():
   245                 if self.IpText.Validate():
   241                 typeForURI = self.type + "S" if self.SecureCheckbox.GetValue() else self.type
   246                     typeForURI = self.type + "S" if self.SecureCheckbox.GetValue() else self.type
   242                 self.uri = typeForURI + "://" + self.IpText.GetValue() + ":" + self.PortText.GetValue() + "#" + self.RealmText.GetValue() + "#" + self.WAMPIDText.GetValue()
   247                     self.uri = typeForURI + "://" + self.IpText.GetValue() + ":" + self.PortText.GetValue() + "#" + self.RealmText.GetValue() + "#" + self.WAMPIDText.GetValue()
   243                 return self.uri
   248                     return self.uri
   244             else:
   249                 else:
   245                 return ""
   250                     return ""
   246 
   251 
   247     return WAMPConnectorPanel("WAMP", confnodesroot)
   252         return WAMPConnectorPanel("WAMP", confnodesroot)