From 46506b16e5c98ed35dbf962987e752afc7cf9209 Mon Sep 17 00:00:00 2001 From: lbessard Date: Mon, 10 Sep 2007 16:13:28 +0000 Subject: [PATCH] Adding support for using Networkedit with Beremiz --- objdictgen/networkedit.py | 30 +++++++++++++++++++++--------- objdictgen/subindextable.py | 30 +++++++++++++++--------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/objdictgen/networkedit.py b/objdictgen/networkedit.py index 2586dac..09e16d3 100644 --- a/objdictgen/networkedit.py +++ b/objdictgen/networkedit.py @@ -27,7 +27,7 @@ import wx.grid from types import * import os, re, platform, sys, time, traceback, getopt -__version__ = "$Revision: 1.8 $" +__version__ = "$Revision: 1.9 $" from nodelist import * from nodemanager import * @@ -320,6 +320,10 @@ class networkedit(wx.Frame): self.SetClientSize(wx.Size(1000, 700)) self.SetMenuBar(self.menuBar1) self.Bind(wx.EVT_CLOSE, self.OnCloseFrame, id=ID_NETWORKEDIT) + if not self.ModeSolo: + self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu, id=ID_NETWORKEDITFILEMENUITEMS1) + accel = wx.AcceleratorTable([wx.AcceleratorEntry(wx.ACCEL_CTRL, 83, ID_NETWORKEDITFILEMENUITEMS1)]) + self.SetAcceleratorTable(accel) self.NetworkNodes = wx.Notebook(id=ID_NETWORKEDITNETWORKNODES, name='NetworkNodes', parent=self, pos=wx.Point(0, 0), @@ -335,7 +339,6 @@ class networkedit(wx.Frame): def __init__(self, parent, nodelist = None): self.ModeSolo = nodelist == None self._init_ctrls(parent) - self.Parent = parent self.HtmlFrameOpened = [] self.BusId = None @@ -354,6 +357,7 @@ class networkedit(wx.Frame): self.NodeList.SetCurrentSelected(0) self.RefreshNetworkNodes() self.RefreshProfileMenu() + self.NetworkNodes.SetFocus() self.RefreshBufferState() self.RefreshTitle() @@ -375,8 +379,13 @@ class networkedit(wx.Frame): return 0 def OnCloseFrame(self, event): - if not self.ModeSolo: - self.Parent.CloseEditor(self.BusId) + if not self.ModeSolo and getattr(self, "_onclose", None) != None: + self._onclose() + event.Skip() + + def OnChar(self, event): + if event.ControlDown() and event.GetKeyCode() == 83 and getattr(self, "_onsave", None) != None: + self._onsave() event.Skip() def GetNoteBook(self): @@ -490,11 +499,14 @@ class networkedit(wx.Frame): event.Skip() def OnSaveProjectMenu(self, event): - result = self.NodeList.SaveProject() - if result: - message = wx.MessageDialog(self, result, "Error", wx.OK|wx.ICON_ERROR) - message.ShowModal() - message.Destroy() + if not self.ModeSolo and getattr(self, "_onsave", None) != None: + self._onsave() + else: + result = self.NodeList.SaveProject() + if result: + message = wx.MessageDialog(self, result, "Error", wx.OK|wx.ICON_ERROR) + message.ShowModal() + message.Destroy() event.Skip() def OnCloseProjectMenu(self, event): diff --git a/objdictgen/subindextable.py b/objdictgen/subindextable.py index f813105..c664dcd 100644 --- a/objdictgen/subindextable.py +++ b/objdictgen/subindextable.py @@ -392,7 +392,7 @@ class EditingPanel(wx.SplitterWindow): def __init__(self, parent, manager, editable = True): self._init_ctrls(parent.GetNoteBook()) - self.Parent = parent + self.ParentWindow = parent self.Manager = manager self.ListIndex = [] self.ChoiceIndex = [] @@ -439,7 +439,7 @@ class EditingPanel(wx.SplitterWindow): selected = self.IndexChoice.GetStringSelection() if selected != "": if selected == "User Type": - self.Parent.AddUserType() + self.ParentWindow.AddUserType() elif selected == "SDO Server": self.Manager.AddSDOServerToCurrent() elif selected == "SDO Client": @@ -449,13 +449,13 @@ class EditingPanel(wx.SplitterWindow): elif selected == "PDO Transmit": self.Manager.AddPDOTransmitToCurrent() elif selected == "Map Variable": - self.Parent.AddMapVariable() + self.ParentWindow.AddMapVariable() elif selected in [menu for menu, indexes in self.Manager.GetCurrentSpecificMenu()]: self.Manager.AddSpecificEntryToCurrent(selected) else: index = self.ChoiceIndex[self.IndexChoice.GetSelection()] self.Manager.ManageEntriesOfCurrent([index], []) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() event.Skip() @@ -471,11 +471,11 @@ class EditingPanel(wx.SplitterWindow): def OnSubindexGridSelectCell(self, event): wx.CallAfter(self.BeginDrag) - wx.CallAfter(self.Parent.RefreshStatusBar) + wx.CallAfter(self.ParentWindow.RefreshStatusBar) event.Skip() def BeginDrag(self): - if not self.Parent.ModeSolo: + if not self.ParentWindow.ModeSolo: row = self.SubindexGrid.GetGridCursorRow() col = self.SubindexGrid.GetGridCursorCol() if not self.Editable and col == 0: @@ -551,7 +551,7 @@ class EditingPanel(wx.SplitterWindow): self.CallbackCheck.SetValue(False) self.CallbackCheck.Disable() self.Table.ResetView(self.SubindexGrid) - self.Parent.RefreshStatusBar() + self.ParentWindow.RefreshStatusBar() else: self.IndexList.SetSelection(selected) self.RefreshTable() @@ -570,7 +570,7 @@ class EditingPanel(wx.SplitterWindow): self.Table.SetData(data) self.Table.SetEditors(editors) self.Table.ResetView(self.SubindexGrid) - self.Parent.RefreshStatusBar() + self.ParentWindow.RefreshStatusBar() #------------------------------------------------------------------------------- # Editing Table value function @@ -585,7 +585,7 @@ class EditingPanel(wx.SplitterWindow): value = self.Table.GetValue(subIndex, col) editor = self.Table.GetEditor(subIndex, col) self.Manager.SetCurrentEntry(index, subIndex, value, name, editor) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() wx.CallAfter(self.RefreshTable) event.Skip() @@ -593,7 +593,7 @@ class EditingPanel(wx.SplitterWindow): if self.Editable: index = self.Table.GetCurrentIndex() self.Manager.SetCurrentEntryCallbacks(index, self.CallbackCheck.GetValue()) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() wx.CallAfter(self.RefreshTable) event.Skip() @@ -650,7 +650,7 @@ class EditingPanel(wx.SplitterWindow): "Rename an index", infos["name"], wx.OK|wx.CANCEL) if dialog.ShowModal() == wx.ID_OK: self.Manager.SetCurrentEntryName(index, dialog.GetValue()) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() dialog.Destroy() event.Skip() @@ -671,7 +671,7 @@ class EditingPanel(wx.SplitterWindow): if dialog.ShowModal() == wx.ID_OK: type, min, max, length = dialog.GetValues() self.Manager.SetCurrentUserType(index, type, min, max, length) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() event.Skip() @@ -682,7 +682,7 @@ class EditingPanel(wx.SplitterWindow): index = self.ListIndex[selected] if self.Manager.IsCurrentEntry(index): self.Manager.ManageEntriesOfCurrent([],[index]) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() event.Skip() @@ -698,7 +698,7 @@ class EditingPanel(wx.SplitterWindow): try: number = int(dialog.GetValue()) self.Manager.AddSubentriesToCurrent(index, number) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() except: message = wx.MessageDialog(self, "An integer is required!", "ERROR", wx.OK|wx.ICON_ERROR) @@ -719,7 +719,7 @@ class EditingPanel(wx.SplitterWindow): try: number = int(dialog.GetValue()) self.Manager.RemoveSubentriesFromCurrent(index, number) - self.Parent.RefreshBufferState() + self.ParentWindow.RefreshBufferState() self.RefreshIndexList() except: message = wx.MessageDialog(self, "An integer is required!", "ERROR", wx.OK|wx.ICON_ERROR) -- 2.39.2