canfestival/NetworkEditor.py
changeset 762 aaacc83aa86b
parent 738 413946c04c87
child 771 85d33a130a5c
equal deleted inserted replaced
761:7788545f4137 762:aaacc83aa86b
     1 
     1 
     2 import wx
     2 import wx
     3 
     3 
     4 from subindextable import EditingPanel
     4 from subindextable import EditingPanel
     5 from networkedit import NetworkEditorTemplate
     5 from networkedit import NetworkEditorTemplate
     6 from controls import EditorPanel
     6 from ConfTreeNodeEditor import ConfTreeNodeEditor
     7 
     7 
     8 [ID_NETWORKEDITOR, 
     8 [ID_NETWORKEDITOR, 
     9 ] = [wx.NewId() for _init_ctrls in range(1)]
     9 ] = [wx.NewId() for _init_ctrls in range(1)]
    10 
    10 
    11 [ID_NETWORKEDITORCONFNODEMENUADDSLAVE, ID_NETWORKEDITORCONFNODEMENUREMOVESLAVE, 
    11 [ID_NETWORKEDITORCONFNODEMENUADDSLAVE, ID_NETWORKEDITORCONFNODEMENUREMOVESLAVE, 
    20 [ID_NETWORKEDITORADDMENUSDOSERVER, ID_NETWORKEDITORADDMENUSDOCLIENT,
    20 [ID_NETWORKEDITORADDMENUSDOSERVER, ID_NETWORKEDITORADDMENUSDOCLIENT,
    21  ID_NETWORKEDITORADDMENUPDOTRANSMIT, ID_NETWORKEDITORADDMENUPDORECEIVE,
    21  ID_NETWORKEDITORADDMENUPDOTRANSMIT, ID_NETWORKEDITORADDMENUPDORECEIVE,
    22  ID_NETWORKEDITORADDMENUMAPVARIABLE, ID_NETWORKEDITORADDMENUUSERTYPE,
    22  ID_NETWORKEDITORADDMENUMAPVARIABLE, ID_NETWORKEDITORADDMENUUSERTYPE,
    23 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)]
    23 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)]
    24 
    24 
    25 class NetworkEditor(EditorPanel, NetworkEditorTemplate):
    25 class NetworkEditor(ConfTreeNodeEditor, NetworkEditorTemplate):
    26     
    26     
    27     ID = ID_NETWORKEDITOR
    27     ID = ID_NETWORKEDITOR
    28     
    28     
    29     def _init_coll_MainSizer_Items(self, parent):
    29     def _init_coll_MainSizer_Items(self, parent):
    30         parent.AddWindow(self.NetworkNodes, 0, border=5, flag=wx.GROW|wx.ALL)
    30         parent.AddWindow(self.NetworkNodes, 0, border=5, flag=wx.GROW|wx.ALL)
    37         self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=0)
    37         self.MainSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=0)
    38         
    38         
    39         self._init_coll_MainSizer_Items(self.MainSizer)
    39         self._init_coll_MainSizer_Items(self.MainSizer)
    40         self._init_coll_MainSizer_Growables(self.MainSizer)
    40         self._init_coll_MainSizer_Growables(self.MainSizer)
    41         
    41         
    42         self.Editor.SetSizer(self.MainSizer)
    42         self.ConfNodeEditor.SetSizer(self.MainSizer)
    43     
    43     
    44     def _init_Editor(self, prnt):
    44     def _init_ConfNodeEditor(self, prnt):
    45         self.Editor = wx.Panel(id=-1, parent=prnt, pos=wx.Point(0, 0), 
    45         self.ConfNodeEditor = wx.Panel(id=-1, parent=prnt, pos=wx.Point(0, 0), 
    46                 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
    46                 size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
    47         
    47         
    48         NetworkEditorTemplate._init_ctrls(self, self.Editor)
    48         NetworkEditorTemplate._init_ctrls(self, self.ConfNodeEditor)
    49         
    49         
    50         self._init_sizers()
    50         self._init_sizers()
    51         
    51         
    52     def __init__(self, parent, controler, window):
    52     def __init__(self, parent, controler, window):
    53         EditorPanel.__init__(self, parent, "", window, controler)
    53         ConfTreeNodeEditor.__init__(self, parent, controler, window)
    54         NetworkEditorTemplate.__init__(self, controler, window, False)
    54         NetworkEditorTemplate.__init__(self, controler, window, False)
    55     
    55     
    56         img = wx.Bitmap(controler.GetIconPath(), wx.BITMAP_TYPE_PNG).ConvertToImage()
       
    57         self.SetIcon(wx.BitmapFromImage(img.Rescale(16, 16)))
       
    58         
       
    59         self.RefreshNetworkNodes()
    56         self.RefreshNetworkNodes()
    60         self.RefreshBufferState()
    57         self.RefreshBufferState()
    61     
    58     
    62     def __del__(self):
    59     def __del__(self):
    63         self.Controler.OnCloseEditor(self)
    60         self.Controler.OnCloseEditor(self)
    95         pass
    92         pass
    96     
    93     
    97     def RefreshConfNodeMenu(self, confnode_menu):
    94     def RefreshConfNodeMenu(self, confnode_menu):
    98         confnode_menu.Enable(ID_NETWORKEDITORCONFNODEMENUMASTER, self.NetworkNodes.GetSelection() == 0)
    95         confnode_menu.Enable(ID_NETWORKEDITORCONFNODEMENUMASTER, self.NetworkNodes.GetSelection() == 0)
    99     
    96     
   100     def GetTitle(self):
       
   101         fullname = self.Controler.CTNFullName()
       
   102         if not self.Manager.CurrentIsSaved():
       
   103             return "~%s~" % fullname
       
   104         return fullname
       
   105 
       
   106     def RefreshView(self):
    97     def RefreshView(self):
       
    98         ConfTreeNodeEditor.RefreshView(self)
   107         self.RefreshCurrentIndexList()
    99         self.RefreshCurrentIndexList()
   108     
   100     
   109     def RefreshBufferState(self):
   101     def RefreshBufferState(self):
   110         NetworkEditorTemplate.RefreshBufferState(self)
   102         NetworkEditorTemplate.RefreshBufferState(self)
   111         self.ParentWindow.RefreshTitle()
   103         self.ParentWindow.RefreshTitle()
   114         self.ParentWindow.RefreshPageTitles()
   106         self.ParentWindow.RefreshPageTitles()
   115     
   107     
   116     def OnNodeSelectedChanged(self, event):
   108     def OnNodeSelectedChanged(self, event):
   117         NetworkEditorTemplate.OnNodeSelectedChanged(self, event)
   109         NetworkEditorTemplate.OnNodeSelectedChanged(self, event)
   118         wx.CallAfter(self.ParentWindow.RefreshConfNodeMenu)
   110         wx.CallAfter(self.ParentWindow.RefreshConfNodeMenu)
   119