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 |