objdictgen/nodeeditor.py
changeset 778 9edaa9d21cf9
parent 776 30ced15f996f
child 779 5bbf6e4521bb
--- a/objdictgen/nodeeditor.py	Wed Mar 06 23:50:35 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-from types import *
-
-import wx
-
-from node import OD_Subindex, OD_MultipleSubindexes, OD_IdenticalSubindexes, OD_IdenticalIndexes
-from commondialogs import *
-
-class NodeEditorTemplate:
-    
-    EDITMENU_ID = None
-    
-    def __init__(self, manager, frame, mode_solo):
-        self.Manager = manager
-        self.Frame = frame
-        self.ModeSolo = mode_solo
-        
-        self.BusId = None
-        self.Closing = False
-    
-    def SetBusId(self, bus_id):
-        self.BusId = bus_id
-
-    def GetBusId(self):
-        return self.BusId
-
-    def IsClosing(self):
-        return self.Closing
-    
-    def OnAddSDOServerMenu(self, event):
-        self.Manager.AddSDOServerToCurrent()
-        self.RefreshBufferState()
-        self.RefreshCurrentIndexList()
-        
-    def OnAddSDOClientMenu(self, event):
-        self.Manager.AddSDOClientToCurrent()
-        self.RefreshBufferState()
-        self.RefreshCurrentIndexList()
-        
-    def OnAddPDOTransmitMenu(self, event):
-        self.Manager.AddPDOTransmitToCurrent()
-        self.RefreshBufferState()
-        self.RefreshCurrentIndexList()
-        
-    def OnAddPDOReceiveMenu(self, event):
-        self.Manager.AddPDOReceiveToCurrent()
-        self.RefreshBufferState()
-        self.RefreshCurrentIndexList()
-        
-    def OnAddMapVariableMenu(self, event):
-        self.AddMapVariable()
-        
-    def OnAddUserTypeMenu(self, event):
-        self.AddUserType()
-    
-    def OnRefreshMenu(self, event):
-        self.RefreshCurrentIndexList()
-        
-    def RefreshCurrentIndexList(self):
-        pass
-    
-    def RefreshStatusBar(self):
-        pass
-    
-    def SetStatusBarText(self, selection, manager):
-        if selection:
-            index, subIndex = selection
-            if manager.IsCurrentEntry(index):
-                self.Frame.HelpBar.SetStatusText(_("Index: 0x%04X")%index, 0)
-                self.Frame.HelpBar.SetStatusText(_("Subindex: 0x%02X")%subIndex, 1)
-                entryinfos = manager.GetEntryInfos(index)
-                name = entryinfos["name"]
-                category = _("Optional")
-                if entryinfos["need"]:
-                    category = _("Mandatory")
-                struct = "VAR"
-                number = ""
-                if entryinfos["struct"] & OD_IdenticalIndexes:
-                    number = _(" possibly defined %d times")%entryinfos["nbmax"]
-                if entryinfos["struct"] & OD_IdenticalSubindexes:
-                    struct = "REC"
-                elif entryinfos["struct"] & OD_MultipleSubindexes:
-                    struct = "ARRAY"
-                text = _("%s: %s entry of struct %s%s.")%(name,category,struct,number)
-                self.Frame.HelpBar.SetStatusText(text, 2)
-            else:
-                for i in xrange(3):
-                    self.Frame.HelpBar.SetStatusText("", i)
-        else:
-            for i in xrange(3):
-                self.Frame.HelpBar.SetStatusText("", i)
-    
-    def RefreshProfileMenu(self):
-        if self.EDITMENU_ID is not None:
-            profile = self.Manager.GetCurrentProfileName()
-            edititem = self.Frame.EditMenu.FindItemById(self.EDITMENU_ID)
-            if edititem:
-                length = self.Frame.AddMenu.GetMenuItemCount()
-                for i in xrange(length-6):
-                    additem = self.Frame.AddMenu.FindItemByPosition(6)
-                    self.Frame.AddMenu.Delete(additem.GetId())
-                if profile not in ("None", "DS-301"):
-                    edititem.SetText(_("%s Profile")%profile)
-                    edititem.Enable(True)
-                    self.Frame.AddMenu.AppendSeparator()
-                    for text, indexes in self.Manager.GetCurrentSpecificMenu():
-                        new_id = wx.NewId()
-                        self.Frame.AddMenu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=text)
-                        self.Frame.Bind(wx.EVT_MENU, self.GetProfileCallBack(text), id=new_id)
-                else:
-                    edititem.SetText(_("Other Profile"))
-                    edititem.Enable(False)
-        
-#-------------------------------------------------------------------------------
-#                            Buffer Functions
-#-------------------------------------------------------------------------------
-
-    def RefreshBufferState(self):
-        pass
-
-    def OnUndoMenu(self, event):
-        self.Manager.LoadCurrentPrevious()
-        self.RefreshCurrentIndexList()
-        self.RefreshBufferState()
-        
-    def OnRedoMenu(self, event):
-        self.Manager.LoadCurrentNext()
-        self.RefreshCurrentIndexList()
-        self.RefreshBufferState()
-
-#-------------------------------------------------------------------------------
-#                          Editing Profiles functions
-#-------------------------------------------------------------------------------
-
-    def OnCommunicationMenu(self, event):
-        dictionary,current = self.Manager.GetCurrentCommunicationLists()
-        self.EditProfile(_("Edit DS-301 Profile"), dictionary, current)
-    
-    def OnOtherCommunicationMenu(self, event):
-        dictionary,current = self.Manager.GetCurrentDS302Lists()
-        self.EditProfile(_("Edit DS-302 Profile"), dictionary, current)
-    
-    def OnEditProfileMenu(self, event):
-        title = _("Edit %s Profile") % self.Manager.GetCurrentProfileName()
-        dictionary,current = self.Manager.GetCurrentProfileLists()
-        self.EditProfile(title, dictionary, current)
-    
-    def EditProfile(self, title, dictionary, current):
-        dialog = CommunicationDialog(self.Frame)
-        dialog.SetTitle(title)
-        dialog.SetIndexDictionary(dictionary)
-        dialog.SetCurrentList(current)
-        dialog.RefreshLists()
-        if dialog.ShowModal() == wx.ID_OK:
-            new_profile = dialog.GetCurrentList()
-            addinglist = []
-            removinglist = []
-            for index in new_profile:
-                if index not in current:
-                    addinglist.append(index)
-            for index in current:
-                if index not in new_profile:
-                    removinglist.append(index)
-            self.Manager.ManageEntriesOfCurrent(addinglist, removinglist)
-            self.Manager.BufferCurrentNode()
-            self.RefreshBufferState()
-            
-        dialog.Destroy()
-
-    def GetProfileCallBack(self, text):
-        def ProfileCallBack(event):
-            self.Manager.AddSpecificEntryToCurrent(text)
-            self.RefreshBufferState()
-            self.RefreshCurrentIndexList()
-        return ProfileCallBack
-
-#-------------------------------------------------------------------------------
-#                         Edit Node informations function
-#-------------------------------------------------------------------------------
-
-    def OnNodeInfosMenu(self, event):
-        dialog = NodeInfosDialog(self.Frame)
-        name, id, type, description = self.Manager.GetCurrentNodeInfos()
-        defaultstringsize = self.Manager.GetCurrentNodeDefaultStringSize()
-        dialog.SetValues(name, id, type, description, defaultstringsize)
-        if dialog.ShowModal() == wx.ID_OK:
-            name, id, type, description, defaultstringsize = dialog.GetValues()
-            self.Manager.SetCurrentNodeInfos(name, id, type, description)
-            self.Manager.SetCurrentNodeDefaultStringSize(defaultstringsize)
-            self.RefreshBufferState()
-            self.RefreshCurrentIndexList()
-            self.RefreshProfileMenu()
-
-#-------------------------------------------------------------------------------
-#                           Add User Types and Variables
-#-------------------------------------------------------------------------------
-        
-    def AddMapVariable(self):
-        index = self.Manager.GetCurrentNextMapIndex()
-        if index:
-            dialog = MapVariableDialog(self.Frame)
-            dialog.SetIndex(index)
-            if dialog.ShowModal() == wx.ID_OK:
-                result = self.Manager.AddMapVariableToCurrent(*dialog.GetValues())
-                if not isinstance(result, (StringType, UnicodeType)):
-                    self.RefreshBufferState()
-                    self.RefreshCurrentIndexList()
-                else:
-                    self.ShowErrorMessage(result)
-            dialog.Destroy()
-        else:
-            self.ShowErrorMessage(_("No map variable index left!"))
-        
-    def AddUserType(self):
-        dialog = UserTypeDialog(self)
-        dialog.SetTypeList(self.Manager.GetCustomisableTypes())
-        if dialog.ShowModal() == wx.ID_OK:
-            result = self.Manager.AddUserTypeToCurrent(*dialog.GetValues())
-            if not isinstance(result, (StringType, UnicodeType)):
-                self.RefreshBufferState()
-                self.RefreshCurrentIndexList()
-            else:
-                self.ShowErrorMessage(result)
-        dialog.Destroy()
-
-    def ShowErrorMessage(self, message):
-        message = wx.MessageDialog(self.Frame, message, _("Error"), wx.OK|wx.ICON_ERROR)
-        message.ShowModal()
-        message.Destroy()