dialogs/UriEditor.py
changeset 2492 7dd551ac2fa0
parent 2475 39ba6a125a97
child 2521 48ebcbe7f19b
equal deleted inserted replaced
2491:362039519454 2492:7dd551ac2fa0
     1 from __future__ import absolute_import
     1 from __future__ import absolute_import
     2 
     2 
     3 import wx
     3 import wx
     4 from connectors import ConnectorSchemes, EditorClassFromScheme
     4 from connectors import ConnectorSchemes, EditorClassFromScheme
     5 from controls.DiscoveryPanel import DiscoveryPanel
     5 from controls.DiscoveryPanel import DiscoveryPanel
       
     6 
     6 
     7 
     7 class UriEditor(wx.Dialog):
     8 class UriEditor(wx.Dialog):
     8     def _init_ctrls(self, parent):
     9     def _init_ctrls(self, parent):
     9         self.UriTypeChoice = wx.Choice(parent=self, choices=self.choices)
    10         self.UriTypeChoice = wx.Choice(parent=self, choices=self.choices)
    10         self.UriTypeChoice.SetSelection(0)
    11         self.UriTypeChoice.SetSelection(0)
    14 
    15 
    15     def _init_sizers(self):
    16     def _init_sizers(self):
    16         self.mainSizer = wx.BoxSizer(wx.VERTICAL)
    17         self.mainSizer = wx.BoxSizer(wx.VERTICAL)
    17         typeSizer = wx.BoxSizer(wx.HORIZONTAL)
    18         typeSizer = wx.BoxSizer(wx.HORIZONTAL)
    18         typeSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Scheme :")), border=5,
    19         typeSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Scheme :")), border=5,
    19                                     flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL)
    20                       flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL)
    20         typeSizer.Add(self.UriTypeChoice, border=5, flag=wx.ALL)
    21         typeSizer.Add(self.UriTypeChoice, border=5, flag=wx.ALL)
    21         self.mainSizer.Add(typeSizer)
    22         self.mainSizer.Add(typeSizer)
    22 
    23 
    23         self.mainSizer.Add(self.editor_sizer, border=5, flag=wx.ALL)
    24         self.mainSizer.Add(self.editor_sizer, border=5, flag=wx.ALL)
    24         self.mainSizer.Add(self.ButtonSizer, border=5,
    25         self.mainSizer.Add(self.ButtonSizer, border=5,
    44         index = event.GetSelection()
    45         index = event.GetSelection()
    45         self._replaceSchemeEditor(event.GetString() if index > 0 else None)
    46         self._replaceSchemeEditor(event.GetString() if index > 0 else None)
    46 
    47 
    47     def SetURI(self, uri):
    48     def SetURI(self, uri):
    48         try:
    49         try:
    49             scheme, loc = uri.strip().split("://",1)
    50             scheme, loc = uri.strip().split("://", 1)
    50             scheme = scheme.upper()
    51             scheme = scheme.upper()
    51         except:
    52         except Exception:
    52             scheme = None
    53             scheme = None
    53 
    54 
    54         if scheme in ConnectorSchemes():
    55         if scheme in ConnectorSchemes():
    55             self.UriTypeChoice.SetStringSelection(scheme)
    56             self.UriTypeChoice.SetStringSelection(scheme)
    56         else:
    57         else:
    60         self._replaceSchemeEditor(scheme)
    61         self._replaceSchemeEditor(scheme)
    61 
    62 
    62         if scheme is not None:
    63         if scheme is not None:
    63             self.scheme_editor.SetLoc(loc)
    64             self.scheme_editor.SetLoc(loc)
    64 
    65 
    65 
       
    66     def GetURI(self):
    66     def GetURI(self):
    67         if self.scheme is None:
    67         if self.scheme is None:
    68             return self.scheme_editor.GetURI()
    68             return self.scheme_editor.GetURI()
    69         else:
    69         else:
    70             return self.scheme+"://"+self.scheme_editor.GetLoc()
    70             return self.scheme+"://"+self.scheme_editor.GetLoc()
    71 
    71 
    72     def _replaceSchemeEditor(self, scheme):
    72     def _replaceSchemeEditor(self, scheme):
    73         self.scheme = scheme
    73         self.scheme = scheme
    74        
    74 
    75         if self.scheme_editor is not None:
    75         if self.scheme_editor is not None:
    76             self.editor_sizer.Detach(self.scheme_editor)
    76             self.editor_sizer.Detach(self.scheme_editor)
    77             self.scheme_editor.Destroy()
    77             self.scheme_editor.Destroy()
    78             self.scheme_editor = None
    78             self.scheme_editor = None
    79 
    79 
    80         if scheme is not None :
    80         if scheme is not None:
    81             EditorClass = EditorClassFromScheme(scheme)
    81             EditorClass = EditorClassFromScheme(scheme)
    82             self.scheme_editor = EditorClass(scheme,self)
    82             self.scheme_editor = EditorClass(scheme, self)
    83         else :
    83         else:
    84             # None is for searching local network
    84             # None is for searching local network
    85             self.scheme_editor = DiscoveryPanel(self) 
    85             self.scheme_editor = DiscoveryPanel(self)
    86 
    86 
    87         self.editor_sizer.Add(self.scheme_editor)
    87         self.editor_sizer.Add(self.scheme_editor)
    88         self.scheme_editor.Refresh()
    88         self.scheme_editor.Refresh()
    89             
    89 
    90         self.editor_sizer.Layout()
    90         self.editor_sizer.Layout()
    91         self.mainSizer.Layout()
    91         self.mainSizer.Layout()
    92         self.Fit()
    92         self.Fit()
    93