objdictgen/networkedit.py
changeset 238 be485a93e3f7
parent 206 6787754b251b
child 242 4864f7f01e1d
equal deleted inserted replaced
237:5dcfc996e563 238:be485a93e3f7
    35 from nodelist import *
    35 from nodelist import *
    36 from nodemanager import *
    36 from nodemanager import *
    37 from subindextable import *
    37 from subindextable import *
    38 from commondialogs import *
    38 from commondialogs import *
    39 from doc_index.DS301_index import *
    39 from doc_index.DS301_index import *
       
    40 from config_utils import *
    40 
    41 
    41 def create(parent):
    42 def create(parent):
    42     return networkedit(parent)
    43     return networkedit(parent)
    43 
    44 
    44 def usage():
    45 def usage():
   264               kind=wx.ITEM_NORMAL, text='Build Master Dictionary')
   265               kind=wx.ITEM_NORMAL, text='Build Master Dictionary')
   265         self.Bind(wx.EVT_MENU, self.OnAddSlaveMenu,
   266         self.Bind(wx.EVT_MENU, self.OnAddSlaveMenu,
   266               id=wxID_NETWORKEDITNETWORKMENUITEMS0)
   267               id=wxID_NETWORKEDITNETWORKMENUITEMS0)
   267         self.Bind(wx.EVT_MENU, self.OnRemoveSlaveMenu,
   268         self.Bind(wx.EVT_MENU, self.OnRemoveSlaveMenu,
   268               id=wxID_NETWORKEDITNETWORKMENUITEMS1)
   269               id=wxID_NETWORKEDITNETWORKMENUITEMS1)
   269 ##        self.Bind(wx.EVT_MENU, self.OnBuildMasterMenu,
   270         self.Bind(wx.EVT_MENU, self.OnBuildMasterMenu,
   270 ##              id=wxID_NETWORKEDITNETWORKMENUITEMS3)
   271               id=wxID_NETWORKEDITNETWORKMENUITEMS3)
   271     
   272     
   272     def _init_coll_AddMenu_Items(self, parent):
   273     def _init_coll_AddMenu_Items(self, parent):
   273         # generated method, don't edit
   274         # generated method, don't edit
   274 
   275 
   275         parent.Append(help='', id=wxID_NETWORKEDITADDMENUITEMS0,
   276         parent.Append(help='', id=wxID_NETWORKEDITADDMENUITEMS0,
   489         if result:
   490         if result:
   490             message = wxMessageDialog(self, result, "Error", wxOK|wxICON_ERROR)
   491             message = wxMessageDialog(self, result, "Error", wxOK|wxICON_ERROR)
   491             message.ShowModal()
   492             message.ShowModal()
   492             message.Destroy()
   493             message.Destroy()
   493         event.Skip()
   494         event.Skip()
       
   495 
       
   496     def OnBuildMasterMenu(self, event):
       
   497         if self.NodeList:
       
   498             dialog = wxFileDialog(self, "Choose a locations file", os.getcwd(), "",  "text files (*.txt)|*.od|All files|*.*", wxOPEN|wxCHANGE_DIR)
       
   499             if dialog.ShowModal() == wxID_OK:
       
   500                 filepath = dialog.GetPath()
       
   501                 dialog.Destroy()
       
   502                 if os.path.isfile(filepath):
       
   503                     dialog = wxTextEntryDialog(self, "Busname selection", "Please enter the bus number", "", wxOK|wxCANCEL)
       
   504                     if dialog.ShowModal() == wxID_OK:
       
   505                         busname = None
       
   506                         try:
       
   507                             busname = int(dialog.GetValue())
       
   508                         except:
       
   509                             pass
       
   510                         if busname:
       
   511                             file = open(filepath, "r")
       
   512                             locations = [(elements[0], elements[1]) for elements in [line.strip().split(" ") for line in file.readlines()]]
       
   513                             GenerateConciseDCF(locations, busname, self.NodeList)
       
   514                             message = wxMessageDialog(self, "Master node generation successful!", "Error", wxOK|wxICON_ERROR)
       
   515                             message.ShowModal()
       
   516                             message.Destroy()
       
   517                         else:
       
   518                             message = wxMessageDialog(self, "Busname must be a number!", "Error", wxOK|wxICON_ERROR)
       
   519                             message.ShowModal()
       
   520                             message.Destroy()
       
   521                 else:
       
   522                     message = wxMessageDialog(self, "\"%s\" isn't a valid file!"%filepath, "Error", wxOK|wxICON_ERROR)
       
   523                     message.ShowModal()
       
   524                     message.Destroy()
       
   525         event.Skip()
       
   526         
   494 
   527 
   495 #-------------------------------------------------------------------------------
   528 #-------------------------------------------------------------------------------
   496 #                             Slave Nodes Management
   529 #                             Slave Nodes Management
   497 #-------------------------------------------------------------------------------
   530 #-------------------------------------------------------------------------------
   498 
   531 
   605                 for i in xrange(3):
   638                 for i in xrange(3):
   606                     self.HelpBar.SetStatusText("", i)
   639                     self.HelpBar.SetStatusText("", i)
   607 
   640 
   608     def RefreshMainMenu(self):
   641     def RefreshMainMenu(self):
   609         if self.menuBar1:
   642         if self.menuBar1:
   610             self.NetworkMenu.Enable(wxID_NETWORKEDITNETWORKMENUITEMS3, False)
       
   611             if self.NodeList == None:
   643             if self.NodeList == None:
       
   644                 self.NetworkMenu.Enable(wxID_NETWORKEDITNETWORKMENUITEMS3, False)
   612                 if self.Mode == "solo":
   645                 if self.Mode == "solo":
   613                     self.menuBar1.EnableTop(1, False)
   646                     self.menuBar1.EnableTop(1, False)
   614                     self.menuBar1.EnableTop(2, False)
   647                     self.menuBar1.EnableTop(2, False)
   615                     self.menuBar1.EnableTop(3, False)
   648                     self.menuBar1.EnableTop(3, False)
   616                     if self.FileMenu:
   649                     if self.FileMenu:
   619                 else:
   652                 else:
   620                     self.menuBar1.EnableTop(0, False)
   653                     self.menuBar1.EnableTop(0, False)
   621                     self.menuBar1.EnableTop(1, False)
   654                     self.menuBar1.EnableTop(1, False)
   622                     self.menuBar1.EnableTop(2, False)
   655                     self.menuBar1.EnableTop(2, False)
   623             else:
   656             else:
       
   657                 self.NetworkMenu.Enable(wxID_NETWORKEDITNETWORKMENUITEMS3, True)
   624                 if self.Mode == "solo":
   658                 if self.Mode == "solo":
   625                     self.menuBar1.EnableTop(1, True)
   659                     self.menuBar1.EnableTop(1, True)
   626                     if self.FileMenu:
   660                     if self.FileMenu:
   627                         self.FileMenu.Enable(wxID_NETWORKEDITFILEMENUITEMS1, True)
   661                         self.FileMenu.Enable(wxID_NETWORKEDITFILEMENUITEMS1, True)
   628                         self.FileMenu.Enable(wxID_NETWORKEDITFILEMENUITEMS2, False)
   662                         self.FileMenu.Enable(wxID_NETWORKEDITFILEMENUITEMS2, True)
   629                     if self.NetworkNodes.GetSelection() == 0:
   663                     if self.NetworkNodes.GetSelection() == 0:
   630                         self.menuBar1.EnableTop(2, True)
   664                         self.menuBar1.EnableTop(2, True)
   631                         self.menuBar1.EnableTop(3, True)
   665                         self.menuBar1.EnableTop(3, True)
   632                     else:
   666                     else:
   633                         self.menuBar1.EnableTop(2, False)      
   667                         self.menuBar1.EnableTop(2, False)      
   659                         self.AddMenu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=text)
   693                         self.AddMenu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=text)
   660                         self.Bind(wx.EVT_MENU, self.GetProfileCallBack(text), id=new_id)
   694                         self.Bind(wx.EVT_MENU, self.GetProfileCallBack(text), id=new_id)
   661                 else:
   695                 else:
   662                     edititem.SetText("Other Profile")
   696                     edititem.SetText("Other Profile")
   663                     edititem.Enable(False)
   697                     edititem.Enable(False)
       
   698 
       
   699     def GetProfileCallBack(self, text):
       
   700         def ProfileCallBack(event):
       
   701             self.Manager.AddSpecificEntryToCurrent(text)
       
   702             self.RefreshBufferState()
       
   703             self.RefreshCurrentIndexList()
       
   704             event.Skip()
       
   705         return ProfileCallBack
   664 
   706 
   665 #-------------------------------------------------------------------------------
   707 #-------------------------------------------------------------------------------
   666 #                              Buffer Functions
   708 #                              Buffer Functions
   667 #-------------------------------------------------------------------------------
   709 #-------------------------------------------------------------------------------
   668 
   710