--- a/Beremiz.py Thu May 03 19:02:34 2012 +0200
+++ b/Beremiz.py Mon May 07 18:47:29 2012 +0200
@@ -146,13 +146,13 @@
import TextCtrlAutoComplete, cPickle
from BrowseValuesLibraryDialog import BrowseValuesLibraryDialog
import types, time, re, platform, time, traceback, commands
-from plugger import PluginsRoot, MiniTextControler, MATIEC_ERROR_MODEL
+from ConfigTree import ConfigTreeRoot, MiniTextControler, MATIEC_ERROR_MODEL
from wxPopen import ProcessLogger
from docutils import *
from PLCOpenEditor import IDEFrame, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
from PLCOpenEditor import EditorPanel, Viewer, TextViewer, GraphicViewer, ResourceEditor, ConfigurationEditor, DataTypeEditor
-from PLCControler import LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
+from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
SCROLLBAR_UNIT = 10
WINDOW_COLOUR = wx.Colour(240,240,240)
@@ -378,18 +378,18 @@
[ID_FILEMENURECENTPROJECTS,
] = [wx.NewId() for _init_ctrls in range(1)]
-PLUGINMENU_POSITION = 3
+CONFNODEMENU_POSITION = 3
class Beremiz(IDEFrame):
def _init_coll_MenuBar_Menus(self, parent):
IDEFrame._init_coll_MenuBar_Menus(self, parent)
- parent.Insert(pos=PLUGINMENU_POSITION,
- menu=self.PluginMenu, title=_(u'&Plugin'))
+ parent.Insert(pos=CONFNODEMENU_POSITION,
+ menu=self.ConfNodeMenu, title=_(u'&ConfNode'))
def _init_utils(self):
- self.PluginMenu = wx.Menu(title='')
+ self.ConfNodeMenu = wx.Menu(title='')
self.RecentProjectsMenu = wx.Menu(title='')
IDEFrame._init_utils(self)
@@ -451,25 +451,25 @@
def _init_coll_PLCConfigMainSizer_Items(self, parent):
parent.AddSizer(self.PLCParamsSizer, 0, border=10, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
- parent.AddSizer(self.PluginTreeSizer, 0, border=10, flag=wx.BOTTOM|wx.LEFT|wx.RIGHT)
+ parent.AddSizer(self.ConfNodeTreeSizer, 0, border=10, flag=wx.BOTTOM|wx.LEFT|wx.RIGHT)
def _init_coll_PLCConfigMainSizer_Growables(self, parent):
parent.AddGrowableCol(0)
parent.AddGrowableRow(1)
- def _init_coll_PluginTreeSizer_Growables(self, parent):
+ def _init_coll_ConfNodeTreeSizer_Growables(self, parent):
parent.AddGrowableCol(0)
parent.AddGrowableCol(1)
def _init_beremiz_sizers(self):
self.PLCConfigMainSizer = wx.FlexGridSizer(cols=1, hgap=2, rows=2, vgap=2)
self.PLCParamsSizer = wx.BoxSizer(wx.VERTICAL)
- #self.PluginTreeSizer = wx.FlexGridSizer(cols=3, hgap=0, rows=0, vgap=2)
- self.PluginTreeSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=0, vgap=2)
+ #self.ConfNodeTreeSizer = wx.FlexGridSizer(cols=3, hgap=0, rows=0, vgap=2)
+ self.ConfNodeTreeSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=0, vgap=2)
self._init_coll_PLCConfigMainSizer_Items(self.PLCConfigMainSizer)
self._init_coll_PLCConfigMainSizer_Growables(self.PLCConfigMainSizer)
- self._init_coll_PluginTreeSizer_Growables(self.PluginTreeSizer)
+ self._init_coll_ConfNodeTreeSizer_Growables(self.ConfNodeTreeSizer)
self.PLCConfig.SetSizer(self.PLCConfigMainSizer)
@@ -485,8 +485,8 @@
("Build", wx.WXK_F11)]:
def OnMethodGen(obj,meth):
def OnMethod(evt):
- if obj.PluginRoot is not None:
- obj.PluginRoot.CallMethod('_'+meth)
+ if obj.CTR is not None:
+ obj.CTR.CallMethod('_'+meth)
wx.CallAfter(self.RefreshAll)
return OnMethod
newid = wx.NewId()
@@ -516,7 +516,7 @@
self._init_beremiz_sizers()
- def __init__(self, parent, projectOpen=None, buildpath=None, plugin_root=None, debug=True):
+ def __init__(self, parent, projectOpen=None, buildpath=None, ctr=None, debug=True):
IDEFrame.__init__(self, parent, debug)
self.Log = LogPseudoFile(self.LogConsole,self.RiseLogConsole)
@@ -530,7 +530,7 @@
self.LastPanelSelected = None
- self.PluginInfos = {}
+ self.ConfNodeInfos = {}
# Define Tree item icon list
self.LocationImageList = wx.ImageList(16, 16)
@@ -538,7 +538,7 @@
# Icons for location items
for imgname, itemtype in [
- ("CONFIGURATION", LOCATION_PLUGIN),
+ ("CONFIGURATION", LOCATION_CONFNODE),
("RESOURCE", LOCATION_MODULE),
("PROGRAM", LOCATION_GROUP),
("VAR_INPUT", LOCATION_VAR_INPUT),
@@ -555,9 +555,9 @@
projectOpen = None
if projectOpen is not None and os.path.isdir(projectOpen):
- self.PluginRoot = PluginsRoot(self, self.Log)
- self.Controler = self.PluginRoot
- result = self.PluginRoot.LoadProject(projectOpen, buildpath)
+ self.CTR = ConfigTreeRoot(self, self.Log)
+ self.Controler = self.CTR
+ result = self.CTR.LoadProject(projectOpen, buildpath)
if not result:
self.LibraryPanel.SetControler(self.Controler)
self.RefreshConfigRecentProjects(os.path.abspath(projectOpen))
@@ -567,19 +567,19 @@
self.ResetView()
self.ShowErrorMessage(result)
else:
- self.PluginRoot = plugin_root
- self.Controler = plugin_root
- if plugin_root is not None:
+ self.CTR = ctr
+ self.Controler = ctr
+ if ctr is not None:
self.LibraryPanel.SetControler(self.Controler)
self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
self.RefreshAll()
if self.EnableDebug:
- self.DebugVariablePanel.SetDataProducer(self.PluginRoot)
+ self.DebugVariablePanel.SetDataProducer(self.CTR)
self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
- self.RefreshPluginMenu()
+ self.RefreshConfNodeMenu()
self.LogConsole.SetFocus()
def RiseLogConsole(self):
@@ -587,9 +587,9 @@
def RefreshTitle(self):
name = _("Beremiz")
- if self.PluginRoot is not None:
- projectname = self.PluginRoot.GetProjectName()
- if self.PluginRoot.ProjectTestModified():
+ if self.CTR is not None:
+ projectname = self.CTR.GetProjectName()
+ if self.CTR.ProjectTestModified():
projectname = "~%s~" % projectname
self.SetTitle("%s - %s" % (name, projectname))
else:
@@ -640,20 +640,20 @@
event.Skip()
def SearchLineForError(self):
- if self.PluginRoot is not None:
+ if self.CTR is not None:
text = self.LogConsole.GetRange(0, self.LogConsole.GetInsertionPoint())
line = self.LogConsole.GetLineText(len(text.splitlines()) - 1)
result = MATIEC_ERROR_MODEL.match(line)
if result is not None:
first_line, first_column, last_line, last_column, error = result.groups()
- infos = self.PluginRoot.ShowError(self.Log,
+ infos = self.CTR.ShowError(self.Log,
(int(first_line), int(first_column)),
(int(last_line), int(last_column)))
## Function displaying an Error dialog in PLCOpenEditor.
# @return False if closing cancelled.
def CheckSaveBeforeClosing(self, title=_("Close Project")):
- if self.PluginRoot.ProjectTestModified():
+ if self.CTR.ProjectTestModified():
dialog = wx.MessageDialog(self,
_("There are changes, do you want to save?"),
title,
@@ -661,7 +661,7 @@
answer = dialog.ShowModal()
dialog.Destroy()
if answer == wx.ID_YES:
- self.PluginRoot.SaveProject()
+ self.CTR.SaveProject()
elif answer == wx.ID_CANCEL:
return False
return True
@@ -674,33 +674,33 @@
ResourceEditor,
ConfigurationEditor,
DataTypeEditor))):
- return ("plugin", tab.Controler.PlugFullName())
+ return ("confnode", tab.Controler.PlugFullName())
elif (isinstance(tab, TextViewer) and
(tab.Controler is None or isinstance(tab.Controler, MiniTextControler))):
- return ("plugin", None, tab.GetInstancePath())
+ return ("confnode", None, tab.GetInstancePath())
else:
return IDEFrame.GetTabInfos(self, tab)
def LoadTab(self, notebook, page_infos):
- if page_infos[0] == "plugin":
+ if page_infos[0] == "confnode":
if page_infos[1] is None:
- plugin = self.PluginRoot
+ confnode = self.CTR
else:
- plugin = self.PluginRoot.GetChildByName(page_infos[1])
- return notebook.GetPageIndex(plugin._OpenView(*page_infos[2:]))
+ confnode = self.CTR.GetChildByName(page_infos[1])
+ return notebook.GetPageIndex(confnode._OpenView(*page_infos[2:]))
else:
return IDEFrame.LoadTab(self, notebook, page_infos)
def OnCloseFrame(self, event):
- if self.PluginRoot is None or self.CheckSaveBeforeClosing(_("Close Application")):
- if self.PluginRoot is not None:
- self.PluginRoot.KillDebugThread()
+ if self.CTR is None or self.CheckSaveBeforeClosing(_("Close Application")):
+ if self.CTR is not None:
+ self.CTR.KillDebugThread()
self.KillLocalRuntime()
self.SaveLastState()
- if self.PluginRoot is not None:
- project_path = os.path.realpath(self.PluginRoot.GetProjectPath())
+ if self.CTR is not None:
+ project_path = os.path.realpath(self.CTR.GetProjectPath())
else:
project_path = ""
self.Config.Write("currenteditedproject", project_path)
@@ -732,7 +732,7 @@
self.RefreshRecentProjectsMenu()
MenuToolBar = self.Panes["MenuToolBar"]
- if self.PluginRoot is not None:
+ if self.CTR is not None:
selected = self.TabsOpened.GetSelection()
if selected >= 0:
graphic_viewer = isinstance(self.TabsOpened.GetPage(selected), Viewer)
@@ -754,7 +754,7 @@
self.FileMenu.Enable(wx.ID_PRINT, False)
MenuToolBar.EnableTool(wx.ID_PRINT, False)
self.FileMenu.Enable(wx.ID_PAGE_SETUP, True)
- project_modified = self.PluginRoot.ProjectTestModified()
+ project_modified = self.CTR.ProjectTestModified()
self.FileMenu.Enable(wx.ID_SAVE, project_modified)
MenuToolBar.EnableTool(wx.ID_SAVE, project_modified)
self.FileMenu.Enable(wx.ID_SAVEAS, True)
@@ -789,7 +789,7 @@
def GenerateOpenRecentProjectFunction(self, projectpath):
def OpenRecentProject(event):
- if self.PluginRoot is not None and not self.CheckSaveBeforeClosing():
+ if self.CTR is not None and not self.CheckSaveBeforeClosing():
return
self.OpenProject(projectpath)
@@ -810,28 +810,28 @@
if callback is not None:
self.Bind(wx.EVT_MENU, callback, id=id)
- def RefreshPluginMenu(self):
- if self.PluginRoot is not None:
+ def RefreshConfNodeMenu(self):
+ if self.CTR is not None:
selected = self.TabsOpened.GetSelection()
if selected >= 0:
panel = self.TabsOpened.GetPage(selected)
else:
panel = None
if panel != self.LastPanelSelected:
- for i in xrange(self.PluginMenu.GetMenuItemCount()):
- item = self.PluginMenu.FindItemByPosition(0)
- self.PluginMenu.Delete(item.GetId())
+ for i in xrange(self.ConfNodeMenu.GetMenuItemCount()):
+ item = self.ConfNodeMenu.FindItemByPosition(0)
+ self.ConfNodeMenu.Delete(item.GetId())
self.LastPanelSelected = panel
if panel is not None:
- items = panel.GetPluginMenuItems()
+ items = panel.GetConfNodeMenuItems()
else:
items = []
- self.MenuBar.EnableTop(PLUGINMENU_POSITION, len(items) > 0)
- self.GenerateMenuRecursive(items, self.PluginMenu)
+ self.MenuBar.EnableTop(CONFNODEMENU_POSITION, len(items) > 0)
+ self.GenerateMenuRecursive(items, self.ConfNodeMenu)
if panel is not None:
- panel.RefreshPluginMenu(self.PluginMenu)
- else:
- self.MenuBar.EnableTop(PLUGINMENU_POSITION, False)
+ panel.RefreshConfNodeMenu(self.ConfNodeMenu)
+ else:
+ self.MenuBar.EnableTop(CONFNODEMENU_POSITION, False)
self.MenuBar.UpdateMenus()
def RefreshScrollBars(self):
@@ -850,15 +850,15 @@
self.Freeze()
self.ClearSizer(self.PLCParamsSizer)
- if self.PluginRoot is not None:
+ if self.CTR is not None:
plcwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1))
- if self.PluginRoot.PlugTestModified():
+ if self.CTR.PlugTestModified():
bkgdclr = CHANGED_TITLE_COLOUR
else:
bkgdclr = TITLE_COLOUR
- if self.PluginRoot not in self.PluginInfos:
- self.PluginInfos[self.PluginRoot] = {"right_visible" : False}
+ if self.CTR not in self.ConfNodeInfos:
+ self.ConfNodeInfos[self.CTR] = {"right_visible" : False}
plcwindow.SetBackgroundColour(TITLE_COLOUR)
plcwindow.Bind(wx.EVT_LEFT_DOWN, self.OnPanelLeftDown)
@@ -869,15 +869,15 @@
st = wx.StaticText(plcwindow, -1)
st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"]))
- st.SetLabel(self.PluginRoot.GetProjectName())
+ st.SetLabel(self.CTR.GetProjectName())
plcwindowsizer.AddWindow(st, 0, border=5, flag=wx.ALL|wx.ALIGN_CENTER)
addbutton_id = wx.NewId()
addbutton = wx.lib.buttons.GenBitmapButton(id=addbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'Add.png')),
- name='AddPluginButton', parent=plcwindow, pos=wx.Point(0, 0),
+ name='AddConfNodeButton', parent=plcwindow, pos=wx.Point(0, 0),
size=wx.Size(16, 16), style=wx.NO_BORDER)
- addbutton.SetToolTipString(_("Add a sub plugin"))
- addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddPluginMenu(self.PluginRoot), id=addbutton_id)
+ addbutton.SetToolTipString(_("Add a sub confnode"))
+ addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddConfNodeMenu(self.CTR), id=addbutton_id)
plcwindowsizer.AddWindow(addbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER)
plcwindowmainsizer = wx.BoxSizer(wx.VERTICAL)
@@ -886,7 +886,7 @@
plcwindowbuttonsizer = wx.BoxSizer(wx.HORIZONTAL)
plcwindowmainsizer.AddSizer(plcwindowbuttonsizer, 0, border=0, flag=wx.ALIGN_CENTER)
- msizer = self.GenerateMethodButtonSizer(self.PluginRoot, plcwindow, not self.PluginInfos[self.PluginRoot]["right_visible"])
+ msizer = self.GenerateMethodButtonSizer(self.CTR, plcwindow, not self.ConfNodeInfos[self.CTR]["right_visible"])
plcwindowbuttonsizer.AddSizer(msizer, 0, border=0, flag=wx.GROW)
paramswindow = wx.Panel(plcwindow, -1, size=wx.Size(-1, -1), style=wx.TAB_TRAVERSAL)
@@ -897,10 +897,10 @@
psizer = wx.BoxSizer(wx.HORIZONTAL)
paramswindow.SetSizer(psizer)
- plugin_infos = self.PluginRoot.GetParamsAttributes()
- self.RefreshSizerElement(paramswindow, psizer, self.PluginRoot, plugin_infos, None, False)
-
- if not self.PluginInfos[self.PluginRoot]["right_visible"]:
+ confnode_infos = self.CTR.GetParamsAttributes()
+ self.RefreshSizerElement(paramswindow, psizer, self.CTR, confnode_infos, None, False)
+
+ if not self.ConfNodeInfos[self.CTR]["right_visible"]:
paramswindow.Hide()
minimizebutton_id = wx.NewId()
@@ -909,7 +909,7 @@
size=wx.Size(24, 24), style=wx.NO_BORDER)
make_genbitmaptogglebutton_flat(minimizebutton)
minimizebutton.SetBitmapSelected(wx.Bitmap(Bpath( 'images', 'Minimize.png')))
- minimizebutton.SetToggle(self.PluginInfos[self.PluginRoot]["right_visible"])
+ minimizebutton.SetToggle(self.ConfNodeInfos[self.CTR]["right_visible"])
plcwindowbuttonsizer.AddWindow(minimizebutton, 0, border=5, flag=wx.ALL)
def togglewindow(event):
@@ -918,32 +918,32 @@
msizer.SetCols(1)
else:
paramswindow.Hide()
- msizer.SetCols(len(self.PluginRoot.PluginMethods))
- self.PluginInfos[self.PluginRoot]["right_visible"] = minimizebutton.GetToggle()
+ msizer.SetCols(len(self.CTR.ConfNodeMethods))
+ self.ConfNodeInfos[self.CTR]["right_visible"] = minimizebutton.GetToggle()
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
event.Skip()
minimizebutton.Bind(wx.EVT_BUTTON, togglewindow, id=minimizebutton_id)
- self.PluginInfos[self.PluginRoot]["main"] = plcwindow
- self.PluginInfos[self.PluginRoot]["params"] = paramswindow
+ self.ConfNodeInfos[self.CTR]["main"] = plcwindow
+ self.ConfNodeInfos[self.CTR]["params"] = paramswindow
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
self.Thaw()
- def GenerateEnableButton(self, parent, sizer, plugin):
- enabled = plugin.PlugEnabled()
+ def GenerateEnableButton(self, parent, sizer, confnode):
+ enabled = confnode.PlugEnabled()
if enabled is not None:
enablebutton_id = wx.NewId()
enablebutton = wx.lib.buttons.GenBitmapToggleButton(id=enablebutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'Disabled.png')),
name='EnableButton', parent=parent, size=wx.Size(16, 16), pos=wx.Point(0, 0), style=0)#wx.NO_BORDER)
- enablebutton.SetToolTipString(_("Enable/Disable this plugin"))
+ enablebutton.SetToolTipString(_("Enable/Disable this confnode"))
make_genbitmaptogglebutton_flat(enablebutton)
enablebutton.SetBitmapSelected(wx.Bitmap(Bpath( 'images', 'Enabled.png')))
enablebutton.SetToggle(enabled)
def toggleenablebutton(event):
- res = self.SetPluginParamsAttribute(plugin, "BaseParams.Enabled", enablebutton.GetToggle())
+ res = self.SetConfNodeParamsAttribute(confnode, "BaseParams.Enabled", enablebutton.GetToggle())
enablebutton.SetToggle(res)
event.Skip()
enablebutton.Bind(wx.EVT_BUTTON, toggleenablebutton, id=enablebutton_id)
@@ -951,23 +951,23 @@
else:
sizer.AddSpacer(wx.Size(16, 16))
- def GenerateMethodButtonSizer(self, plugin, parent, horizontal = True):
+ def GenerateMethodButtonSizer(self, confnode, parent, horizontal = True):
normal_bt_font=wx.Font(faces["size"] / 3, wx.DEFAULT, wx.NORMAL, wx.NORMAL, faceName = faces["helv"])
mouseover_bt_font=wx.Font(faces["size"] / 3, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline=True, faceName = faces["helv"])
if horizontal:
- msizer = wx.FlexGridSizer(cols=len(plugin.PluginMethods))
+ msizer = wx.FlexGridSizer(cols=len(confnode.ConfNodeMethods))
else:
msizer = wx.FlexGridSizer(cols=1)
- for plugin_method in plugin.PluginMethods:
- if "method" in plugin_method and plugin_method.get("shown",True):
+ for confnode_method in confnode.ConfNodeMethods:
+ if "method" in confnode_method and confnode_method.get("shown",True):
id = wx.NewId()
- label = plugin_method["name"]
+ label = confnode_method["name"]
button = GenBitmapTextButton(id=id, parent=parent,
- bitmap=wx.Bitmap(Bpath( "%s.png"%plugin_method.get("bitmap", os.path.join("images", "Unknown")))), label=label,
+ bitmap=wx.Bitmap(Bpath( "%s.png"%confnode_method.get("bitmap", os.path.join("images", "Unknown")))), label=label,
name=label, pos=wx.DefaultPosition, style=wx.NO_BORDER)
button.SetFont(normal_bt_font)
- button.SetToolTipString(plugin_method["tooltip"])
- button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(plugin, plugin_method["method"]), id=id)
+ button.SetToolTipString(confnode_method["tooltip"])
+ button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(confnode, confnode_method["method"]), id=id)
# a fancy underline on mouseover
def setFontStyle(b, s):
def fn(event):
@@ -978,12 +978,12 @@
button.Bind(wx.EVT_ENTER_WINDOW, setFontStyle(button, mouseover_bt_font))
button.Bind(wx.EVT_LEAVE_WINDOW, setFontStyle(button, normal_bt_font))
#hack to force size to mini
- if not plugin_method.get("enabled",True):
+ if not confnode_method.get("enabled",True):
button.Disable()
msizer.AddWindow(button, 0, border=0, flag=wx.ALIGN_CENTER)
return msizer
- def GenerateParamsPanel(self, plugin, bkgdclr, top_offset=0):
+ def GenerateParamsPanel(self, confnode, bkgdclr, top_offset=0):
rightwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1))
rightwindow.SetBackgroundColour(bkgdclr)
@@ -995,7 +995,7 @@
rightwindowsizer.AddGrowableRow(0)
rightwindowmainsizer.AddSizer(rightwindowsizer, 0, border=0, flag=wx.GROW)
- msizer = self.GenerateMethodButtonSizer(plugin, rightwindow, not self.PluginInfos[plugin]["right_visible"])
+ msizer = self.GenerateMethodButtonSizer(confnode, rightwindow, not self.ConfNodeInfos[confnode]["right_visible"])
rightwindowsizer.AddSizer(msizer, 0, border=top_offset, flag=wx.TOP|wx.GROW)
rightparamssizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -1006,15 +1006,15 @@
psizer = wx.BoxSizer(wx.VERTICAL)
paramswindow.SetSizer(psizer)
- self.PluginInfos[plugin]["params"] = paramswindow
+ self.ConfNodeInfos[confnode]["params"] = paramswindow
rightparamssizer.AddWindow(paramswindow, 0, border=5, flag=wx.ALL)
- plugin_infos = plugin.GetParamsAttributes()
- if len(plugin_infos) > 0:
- self.RefreshSizerElement(paramswindow, psizer, plugin, plugin_infos, None, False)
-
- if not self.PluginInfos[plugin]["right_visible"]:
+ confnode_infos = confnode.GetParamsAttributes()
+ if len(confnode_infos) > 0:
+ self.RefreshSizerElement(paramswindow, psizer, confnode, confnode_infos, None, False)
+
+ if not self.ConfNodeInfos[confnode]["right_visible"]:
paramswindow.Hide()
rightminimizebutton_id = wx.NewId()
@@ -1023,7 +1023,7 @@
size=wx.Size(24, 24), style=wx.NO_BORDER)
make_genbitmaptogglebutton_flat(rightminimizebutton)
rightminimizebutton.SetBitmapSelected(wx.Bitmap(Bpath( 'images', 'Minimize.png')))
- rightminimizebutton.SetToggle(self.PluginInfos[plugin]["right_visible"])
+ rightminimizebutton.SetToggle(self.ConfNodeInfos[confnode]["right_visible"])
rightparamssizer.AddWindow(rightminimizebutton, 0, border=5, flag=wx.ALL)
def togglerightwindow(event):
@@ -1032,8 +1032,8 @@
msizer.SetCols(1)
else:
rightparamssizer.Hide(0)
- msizer.SetCols(len(plugin.PluginMethods))
- self.PluginInfos[plugin]["right_visible"] = rightminimizebutton.GetToggle()
+ msizer.SetCols(len(confnode.ConfNodeMethods))
+ self.ConfNodeInfos[confnode]["right_visible"] = rightminimizebutton.GetToggle()
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
event.Skip()
@@ -1042,58 +1042,58 @@
return rightwindow
- def RefreshPluginTree(self):
+ def RefreshConfNodeTree(self):
self.Freeze()
- self.ClearSizer(self.PluginTreeSizer)
- if self.PluginRoot is not None:
- for child in self.PluginRoot.IECSortedChilds():
+ self.ClearSizer(self.ConfNodeTreeSizer)
+ if self.CTR is not None:
+ for child in self.CTR.IECSortedChilds():
self.GenerateTreeBranch(child)
- if not self.PluginInfos[child]["expanded"]:
- self.CollapsePlugin(child)
+ if not self.ConfNodeInfos[child]["expanded"]:
+ self.CollapseConfNode(child)
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
self.Thaw()
- def SetPluginParamsAttribute(self, plugin, *args, **kwargs):
- res, StructChanged = plugin.SetParamsAttribute(*args, **kwargs)
+ def SetConfNodeParamsAttribute(self, confnode, *args, **kwargs):
+ res, StructChanged = confnode.SetParamsAttribute(*args, **kwargs)
if StructChanged:
- wx.CallAfter(self.RefreshPluginTree)
- else:
- if plugin == self.PluginRoot:
+ wx.CallAfter(self.RefreshConfNodeTree)
+ else:
+ if confnode == self.CTR:
bkgdclr = CHANGED_TITLE_COLOUR
items = ["main", "params"]
else:
bkgdclr = CHANGED_WINDOW_COLOUR
items = ["left", "right", "params"]
for i in items:
- self.PluginInfos[plugin][i].SetBackgroundColour(bkgdclr)
- self.PluginInfos[plugin][i].Refresh()
+ self.ConfNodeInfos[confnode][i].SetBackgroundColour(bkgdclr)
+ self.ConfNodeInfos[confnode][i].Refresh()
self._Refresh(TITLE, FILEMENU)
return res
- def ExpandPlugin(self, plugin, force = False):
- for child in self.PluginInfos[plugin]["children"]:
- self.PluginInfos[child]["left"].Show()
- self.PluginInfos[child]["right"].Show()
- if force or self.PluginInfos[child]["expanded"]:
- self.ExpandPlugin(child, force)
+ def ExpandConfNode(self, confnode, force = False):
+ for child in self.ConfNodeInfos[confnode]["children"]:
+ self.ConfNodeInfos[child]["left"].Show()
+ self.ConfNodeInfos[child]["right"].Show()
+ if force or self.ConfNodeInfos[child]["expanded"]:
+ self.ExpandConfNode(child, force)
if force:
- self.PluginInfos[child]["expanded"] = True
- locations_infos = self.PluginInfos[plugin].get("locations_infos", None)
+ self.ConfNodeInfos[child]["expanded"] = True
+ locations_infos = self.ConfNodeInfos[confnode].get("locations_infos", None)
if locations_infos is not None:
if force or locations_infos["root"]["expanded"]:
self.ExpandLocation(locations_infos, "root", force)
if force:
locations_infos["root"]["expanded"] = True
- def CollapsePlugin(self, plugin, force = False):
- for child in self.PluginInfos[plugin]["children"]:
- self.PluginInfos[child]["left"].Hide()
- self.PluginInfos[child]["right"].Hide()
- self.CollapsePlugin(child, force)
+ def CollapseConfNode(self, confnode, force = False):
+ for child in self.ConfNodeInfos[confnode]["children"]:
+ self.ConfNodeInfos[child]["left"].Hide()
+ self.ConfNodeInfos[child]["right"].Hide()
+ self.CollapseConfNode(child, force)
if force:
- self.PluginInfos[child]["expanded"] = False
- locations_infos = self.PluginInfos[plugin].get("locations_infos", None)
+ self.ConfNodeInfos[child]["expanded"] = False
+ locations_infos = self.ConfNodeInfos[confnode].get("locations_infos", None)
if locations_infos is not None:
self.CollapseLocation(locations_infos, "root", force)
if force:
@@ -1129,30 +1129,30 @@
if locations_infos["root"]["left"] is not None and refresh_size:
self.RefreshTreeCtrlSize(locations_infos["root"]["left"])
- def GenerateTreeBranch(self, plugin):
+ def GenerateTreeBranch(self, confnode):
leftwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1))
- if plugin.PlugTestModified():
+ if confnode.PlugTestModified():
bkgdclr=CHANGED_WINDOW_COLOUR
else:
bkgdclr=WINDOW_COLOUR
leftwindow.SetBackgroundColour(bkgdclr)
- if not self.PluginInfos.has_key(plugin):
- self.PluginInfos[plugin] = {"expanded" : False, "right_visible" : False}
-
- self.PluginInfos[plugin]["children"] = plugin.IECSortedChilds()
- plugin_locations = []
- if len(self.PluginInfos[plugin]["children"]) == 0:
- plugin_locations = plugin.GetVariableLocationTree()["children"]
- if not self.PluginInfos[plugin].has_key("locations_infos"):
- self.PluginInfos[plugin]["locations_infos"] = {"root": {"expanded" : False}}
-
- self.PluginInfos[plugin]["locations_infos"]["root"]["left"] = None
- self.PluginInfos[plugin]["locations_infos"]["root"]["right"] = None
- self.PluginInfos[plugin]["locations_infos"]["root"]["children"] = []
-
- self.PluginTreeSizer.AddWindow(leftwindow, 0, border=0, flag=wx.GROW)
+ if not self.ConfNodeInfos.has_key(confnode):
+ self.ConfNodeInfos[confnode] = {"expanded" : False, "right_visible" : False}
+
+ self.ConfNodeInfos[confnode]["children"] = confnode.IECSortedChilds()
+ confnode_locations = []
+ if len(self.ConfNodeInfos[confnode]["children"]) == 0:
+ confnode_locations = confnode.GetVariableLocationTree()["children"]
+ if not self.ConfNodeInfos[confnode].has_key("locations_infos"):
+ self.ConfNodeInfos[confnode]["locations_infos"] = {"root": {"expanded" : False}}
+
+ self.ConfNodeInfos[confnode]["locations_infos"]["root"]["left"] = None
+ self.ConfNodeInfos[confnode]["locations_infos"]["root"]["right"] = None
+ self.ConfNodeInfos[confnode]["locations_infos"]["root"]["children"] = []
+
+ self.ConfNodeTreeSizer.AddWindow(leftwindow, 0, border=0, flag=wx.GROW)
leftwindowsizer = wx.FlexGridSizer(cols=1, rows=2)
leftwindowsizer.AddGrowableCol(0)
@@ -1171,38 +1171,38 @@
rolesizer = wx.BoxSizer(wx.HORIZONTAL)
leftsizer.AddSizer(rolesizer, 0, border=0, flag=wx.GROW|wx.RIGHT)
- #self.GenerateEnableButton(leftwindow, rolesizer, plugin)
+ #self.GenerateEnableButton(leftwindow, rolesizer, confnode)
roletext = wx.StaticText(leftwindow, -1)
- roletext.SetLabel(plugin.PlugHelp)
+ roletext.SetLabel(confnode.PlugHelp)
rolesizer.AddWindow(roletext, 0, border=5, flag=wx.RIGHT|wx.ALIGN_LEFT)
- plugin_IECChannel = plugin.BaseParams.getIEC_Channel()
+ confnode_IECChannel = confnode.BaseParams.getIEC_Channel()
iecsizer = wx.BoxSizer(wx.HORIZONTAL)
leftsizer.AddSizer(iecsizer, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
st = wx.StaticText(leftwindow, -1)
st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"]))
- st.SetLabel(plugin.GetFullIEC_Channel())
+ st.SetLabel(confnode.GetFullIEC_Channel())
iecsizer.AddWindow(st, 0, border=0, flag=0)
updownsizer = wx.BoxSizer(wx.VERTICAL)
iecsizer.AddSizer(updownsizer, 0, border=5, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL)
- if plugin_IECChannel > 0:
+ if confnode_IECChannel > 0:
ieccdownbutton_id = wx.NewId()
ieccdownbutton = wx.lib.buttons.GenBitmapButton(id=ieccdownbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'IECCDown.png')),
name='IECCDownButton', parent=leftwindow, pos=wx.Point(0, 0),
size=wx.Size(16, 16), style=wx.NO_BORDER)
- ieccdownbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel - 1), id=ieccdownbutton_id)
+ ieccdownbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(confnode, confnode_IECChannel - 1), id=ieccdownbutton_id)
updownsizer.AddWindow(ieccdownbutton, 0, border=0, flag=wx.ALIGN_LEFT)
ieccupbutton_id = wx.NewId()
ieccupbutton = wx.lib.buttons.GenBitmapTextButton(id=ieccupbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'IECCUp.png')),
name='IECCUpButton', parent=leftwindow, pos=wx.Point(0, 0),
size=wx.Size(16, 16), style=wx.NO_BORDER)
- ieccupbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel + 1), id=ieccupbutton_id)
+ ieccupbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(confnode, confnode_IECChannel + 1), id=ieccupbutton_id)
updownsizer.AddWindow(ieccupbutton, 0, border=0, flag=wx.ALIGN_LEFT)
adddeletesizer = wx.BoxSizer(wx.VERTICAL)
@@ -1210,19 +1210,19 @@
deletebutton_id = wx.NewId()
deletebutton = wx.lib.buttons.GenBitmapButton(id=deletebutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'Delete.png')),
- name='DeletePluginButton', parent=leftwindow, pos=wx.Point(0, 0),
+ name='DeleteConfNodeButton', parent=leftwindow, pos=wx.Point(0, 0),
size=wx.Size(16, 16), style=wx.NO_BORDER)
- deletebutton.SetToolTipString(_("Delete this plugin"))
- deletebutton.Bind(wx.EVT_BUTTON, self.GetDeleteButtonFunction(plugin), id=deletebutton_id)
+ deletebutton.SetToolTipString(_("Delete this confnode"))
+ deletebutton.Bind(wx.EVT_BUTTON, self.GetDeleteButtonFunction(confnode), id=deletebutton_id)
adddeletesizer.AddWindow(deletebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER)
- if len(plugin.PlugChildsTypes) > 0:
+ if len(confnode.PlugChildsTypes) > 0:
addbutton_id = wx.NewId()
addbutton = wx.lib.buttons.GenBitmapButton(id=addbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'Add.png')),
- name='AddPluginButton', parent=leftwindow, pos=wx.Point(0, 0),
+ name='AddConfNodeButton', parent=leftwindow, pos=wx.Point(0, 0),
size=wx.Size(16, 16), style=wx.NO_BORDER)
- addbutton.SetToolTipString(_("Add a sub plugin"))
- addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddPluginMenu(plugin), id=addbutton_id)
+ addbutton.SetToolTipString(_("Add a sub confnode"))
+ addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddConfNodeMenu(confnode), id=addbutton_id)
adddeletesizer.AddWindow(addbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER)
expandbutton_id = wx.NewId()
@@ -1234,27 +1234,27 @@
expandbutton.SetUseFocusIndicator(False)
expandbutton.SetBitmapSelected(wx.Bitmap(Bpath( 'images', 'minus.png')))
- if len(self.PluginInfos[plugin]["children"]) > 0:
- expandbutton.SetToggle(self.PluginInfos[plugin]["expanded"])
+ if len(self.ConfNodeInfos[confnode]["children"]) > 0:
+ expandbutton.SetToggle(self.ConfNodeInfos[confnode]["expanded"])
def togglebutton(event):
if expandbutton.GetToggle():
- self.ExpandPlugin(plugin)
+ self.ExpandConfNode(confnode)
else:
- self.CollapsePlugin(plugin)
- self.PluginInfos[plugin]["expanded"] = expandbutton.GetToggle()
+ self.CollapseConfNode(confnode)
+ self.ConfNodeInfos[confnode]["expanded"] = expandbutton.GetToggle()
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
event.Skip()
expandbutton.Bind(wx.EVT_BUTTON, togglebutton, id=expandbutton_id)
- elif len(plugin_locations) > 0:
- locations_infos = self.PluginInfos[plugin]["locations_infos"]
+ elif len(confnode_locations) > 0:
+ locations_infos = self.ConfNodeInfos[confnode]["locations_infos"]
expandbutton.SetToggle(locations_infos["root"]["expanded"])
def togglebutton(event):
if expandbutton.GetToggle():
self.ExpandLocation(locations_infos, "root")
else:
self.CollapseLocation(locations_infos, "root")
- self.PluginInfos[plugin]["expanded"] = expandbutton.GetToggle()
+ self.ConfNodeInfos[confnode]["expanded"] = expandbutton.GetToggle()
locations_infos["root"]["expanded"] = expandbutton.GetToggle()
self.PLCConfigMainSizer.Layout()
self.RefreshScrollBars()
@@ -1267,22 +1267,22 @@
tc_id = wx.NewId()
tc = wx.TextCtrl(leftwindow, tc_id, size=wx.Size(150, 25), style=wx.NO_BORDER)
tc.SetFont(wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"]))
- tc.ChangeValue(plugin.MandatoryParams[1].getName())
- tc.Bind(wx.EVT_TEXT, self.GetTextCtrlCallBackFunction(tc, plugin, "BaseParams.Name"), id=tc_id)
+ tc.ChangeValue(confnode.MandatoryParams[1].getName())
+ tc.Bind(wx.EVT_TEXT, self.GetTextCtrlCallBackFunction(tc, confnode, "BaseParams.Name"), id=tc_id)
iecsizer.AddWindow(tc, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
- rightwindow = self.GenerateParamsPanel(plugin, bkgdclr, 8)
- self.PluginTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW)
-
- self.PluginInfos[plugin]["left"] = leftwindow
- self.PluginInfos[plugin]["right"] = rightwindow
- for child in self.PluginInfos[plugin]["children"]:
+ rightwindow = self.GenerateParamsPanel(confnode, bkgdclr, 8)
+ self.ConfNodeTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW)
+
+ self.ConfNodeInfos[confnode]["left"] = leftwindow
+ self.ConfNodeInfos[confnode]["right"] = rightwindow
+ for child in self.ConfNodeInfos[confnode]["children"]:
self.GenerateTreeBranch(child)
- if not self.PluginInfos[child]["expanded"]:
- self.CollapsePlugin(child)
-
- if len(plugin_locations) > 0:
- locations_infos = self.PluginInfos[plugin]["locations_infos"]
+ if not self.ConfNodeInfos[child]["expanded"]:
+ self.CollapseConfNode(child)
+
+ if len(confnode_locations) > 0:
+ locations_infos = self.ConfNodeInfos[confnode]["locations_infos"]
treectrl = wx.TreeCtrl(self.PLCConfig, -1, size=wx.DefaultSize,
style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.NO_BORDER|wx.TR_HIDE_ROOT|wx.TR_NO_LINES|wx.TR_LINES_AT_ROOT)
treectrl.SetImageList(self.LocationImageList)
@@ -1292,19 +1292,19 @@
treectrl.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheelTreeCtrl)
treectrl.AddRoot("")
- self.PluginTreeSizer.AddWindow(treectrl, 0, border=0, flag=0)
+ self.ConfNodeTreeSizer.AddWindow(treectrl, 0, border=0, flag=0)
rightwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1))
rightwindow.SetBackgroundColour(wx.WHITE)
- self.PluginTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW)
+ self.ConfNodeTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW)
locations_infos["root"]["left"] = treectrl
locations_infos["root"]["right"] = rightwindow
- for location in plugin_locations:
+ for location in confnode_locations:
locations_infos["root"]["children"].append("root.%s" % location["name"])
self.GenerateLocationTreeBranch(treectrl, treectrl.GetRootItem(), locations_infos, "root", location)
if locations_infos["root"]["expanded"]:
- self.PluginTreeSizer.Layout()
+ self.ConfNodeTreeSizer.Layout()
self.ExpandLocation(locations_infos, "root")
else:
self.RefreshTreeCtrlSize(treectrl)
@@ -1399,38 +1399,38 @@
def RefreshAll(self):
self.RefreshPLCParams()
- self.RefreshPluginTree()
-
- def GetItemChannelChangedFunction(self, plugin, value):
- def OnPluginTreeItemChannelChanged(event):
- res = self.SetPluginParamsAttribute(plugin, "BaseParams.IEC_Channel", value)
+ self.RefreshConfNodeTree()
+
+ def GetItemChannelChangedFunction(self, confnode, value):
+ def OnConfNodeTreeItemChannelChanged(event):
+ res = self.SetConfNodeParamsAttribute(confnode, "BaseParams.IEC_Channel", value)
event.Skip()
- return OnPluginTreeItemChannelChanged
-
- def _GetAddPluginFunction(self, name, plugin):
- def OnPluginMenu(event):
- wx.CallAfter(self.AddPlugin, name, plugin)
- return OnPluginMenu
-
- def Gen_AddPluginMenu(self, plugin):
- def AddPluginMenu(event):
+ return OnConfNodeTreeItemChannelChanged
+
+ def _GetAddConfNodeFunction(self, name, confnode):
+ def OnConfNodeMenu(event):
+ wx.CallAfter(self.AddConfNode, name, confnode)
+ return OnConfNodeMenu
+
+ def Gen_AddConfNodeMenu(self, confnode):
+ def AddConfNodeMenu(event):
main_menu = wx.Menu(title='')
- if len(plugin.PlugChildsTypes) > 0:
- for name, XSDClass, help in plugin.PlugChildsTypes:
+ if len(confnode.PlugChildsTypes) > 0:
+ for name, XSDClass, help in confnode.PlugChildsTypes:
new_id = wx.NewId()
main_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=_("Append ")+help)
- self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id)
+ self.Bind(wx.EVT_MENU, self._GetAddConfNodeFunction(name, confnode), id=new_id)
self.PopupMenuXY(main_menu)
main_menu.Destroy()
- return AddPluginMenu
-
- def GetButtonCallBackFunction(self, plugin, method):
- """ Generate the callbackfunc for a given plugin method"""
+ return AddConfNodeMenu
+
+ def GetButtonCallBackFunction(self, confnode, method):
+ """ Generate the callbackfunc for a given confnode method"""
def OnButtonClick(event):
# Disable button to prevent re-entrant call
event.GetEventObject().Disable()
# Call
- getattr(plugin,method)()
+ getattr(confnode,method)()
# Re-enable button
event.GetEventObject().Enable()
# Trigger refresh on Idle
@@ -1438,20 +1438,20 @@
event.Skip()
return OnButtonClick
- def GetChoiceCallBackFunction(self, choicectrl, plugin, path):
+ def GetChoiceCallBackFunction(self, choicectrl, confnode, path):
def OnChoiceChanged(event):
- res = self.SetPluginParamsAttribute(plugin, path, choicectrl.GetStringSelection())
+ res = self.SetConfNodeParamsAttribute(confnode, path, choicectrl.GetStringSelection())
choicectrl.SetStringSelection(res)
event.Skip()
return OnChoiceChanged
- def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, plugin, path):
+ def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, confnode, path):
def OnChoiceContentChanged(event):
- res = self.SetPluginParamsAttribute(plugin, path, choicectrl.GetStringSelection())
+ res = self.SetConfNodeParamsAttribute(confnode, path, choicectrl.GetStringSelection())
if wx.VERSION < (2, 8, 0):
self.ParamsPanel.Freeze()
choicectrl.SetStringSelection(res)
- infos = self.PluginRoot.GetParamsAttributes(path)
+ infos = self.CTR.GetParamsAttributes(path)
staticbox = staticboxsizer.GetStaticBox()
staticbox.SetLabel("%(name)s - %(value)s"%infos)
self.RefreshSizerElement(self.ParamsPanel, staticboxsizer, infos["children"], "%s.%s"%(path, infos["name"]), selected=selected)
@@ -1463,27 +1463,27 @@
event.Skip()
return OnChoiceContentChanged
- def GetTextCtrlCallBackFunction(self, textctrl, plugin, path):
+ def GetTextCtrlCallBackFunction(self, textctrl, confnode, path):
def OnTextCtrlChanged(event):
- res = self.SetPluginParamsAttribute(plugin, path, textctrl.GetValue())
+ res = self.SetConfNodeParamsAttribute(confnode, path, textctrl.GetValue())
if res != textctrl.GetValue():
textctrl.ChangeValue(res)
event.Skip()
return OnTextCtrlChanged
- def GetCheckBoxCallBackFunction(self, chkbx, plugin, path):
+ def GetCheckBoxCallBackFunction(self, chkbx, confnode, path):
def OnCheckBoxChanged(event):
- res = self.SetPluginParamsAttribute(plugin, path, chkbx.IsChecked())
+ res = self.SetConfNodeParamsAttribute(confnode, path, chkbx.IsChecked())
chkbx.SetValue(res)
event.Skip()
return OnCheckBoxChanged
- def GetBrowseCallBackFunction(self, name, textctrl, library, value_infos, plugin, path):
+ def GetBrowseCallBackFunction(self, name, textctrl, library, value_infos, confnode, path):
infos = [value_infos]
def OnBrowseButton(event):
dialog = BrowseValuesLibraryDialog(self, name, library, infos[0])
if dialog.ShowModal() == wx.ID_OK:
- value, value_infos = self.SetPluginParamsAttribute(plugin, path, dialog.GetValueInfos())
+ value, value_infos = self.SetConfNodeParamsAttribute(confnode, path, dialog.GetValueInfos())
textctrl.ChangeValue(value)
infos[0] = value_infos
dialog.Destroy()
@@ -1502,7 +1502,7 @@
for staticbox in staticboxes:
staticbox.Destroy()
- def RefreshSizerElement(self, parent, sizer, plugin, elements, path, clean = True):
+ def RefreshSizerElement(self, parent, sizer, confnode, elements, path, clean = True):
if clean:
if wx.VERSION < (2, 8, 0):
self.ClearSizer(sizer)
@@ -1524,7 +1524,7 @@
sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW|wx.TOP)
else:
sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW)
- self.RefreshSizerElement(parent, staticboxsizer, plugin, element_infos["children"], element_path)
+ self.RefreshSizerElement(parent, staticboxsizer, confnode, element_infos["children"], element_path)
else:
boxsizer = wx.FlexGridSizer(cols=3, rows=1)
boxsizer.AddGrowableCol(1)
@@ -1561,7 +1561,7 @@
browse_boxsizer.AddWindow(button, 0, border=0, flag=0)
button.Bind(wx.EVT_BUTTON,
self.GetBrowseCallBackFunction(element_infos["name"], textctrl, element_infos["type"],
- value_infos, plugin, element_path),
+ value_infos, confnode, element_path),
id=button_id)
else:
combobox = wx.ComboBox(id=id, name=element_infos["name"], parent=parent,
@@ -1579,12 +1579,12 @@
pos=wx.Point(0, 0), size=wx.Size(10, 0), style=0)
staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL)
sizer.AddSizer(staticboxsizer, 0, border=5, flag=wx.GROW|wx.BOTTOM)
- self.RefreshSizerElement(parent, staticboxsizer, plugin, element_infos["children"], element_path)
- callback = self.GetChoiceContentCallBackFunction(combobox, staticboxsizer, plugin, element_path)
+ self.RefreshSizerElement(parent, staticboxsizer, confnode, element_infos["children"], element_path)
+ callback = self.GetChoiceContentCallBackFunction(combobox, staticboxsizer, confnode, element_path)
else:
for choice in element_infos["type"]:
combobox.Append(choice)
- callback = self.GetChoiceCallBackFunction(combobox, plugin, element_path)
+ callback = self.GetChoiceCallBackFunction(combobox, confnode, element_path)
if element_infos["value"] is None:
combobox.SetStringSelection("")
else:
@@ -1603,7 +1603,7 @@
boxsizer.AddWindow(spinctrl, 0, border=0, flag=0)
if element_infos["value"] is not None:
spinctrl.SetValue(element_infos["value"])
- spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path), id=id)
+ spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, confnode, element_path), id=id)
else:
if element_infos["type"] == "boolean":
checkbox = wx.CheckBox(id=id, name=element_infos["name"], parent=parent,
@@ -1611,7 +1611,7 @@
boxsizer.AddWindow(checkbox, 0, border=0, flag=0)
if element_infos["value"] is not None:
checkbox.SetValue(element_infos["value"])
- checkbox.Bind(wx.EVT_CHECKBOX, self.GetCheckBoxCallBackFunction(checkbox, plugin, element_path), id=id)
+ checkbox.Bind(wx.EVT_CHECKBOX, self.GetCheckBoxCallBackFunction(checkbox, confnode, element_path), id=id)
elif element_infos["type"] in ["unsignedLong", "long","integer"]:
if element_infos["type"].startswith("unsigned"):
scmin = 0
@@ -1624,7 +1624,7 @@
boxsizer.AddWindow(spinctrl, 0, border=0, flag=0)
if element_infos["value"] is not None:
spinctrl.SetValue(element_infos["value"])
- spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path), id=id)
+ spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, confnode, element_path), id=id)
else:
choices = cPickle.loads(str(self.Config.Read(element_path, cPickle.dumps([""]))))
textctrl = TextCtrlAutoComplete.TextCtrlAutoComplete(id=id,
@@ -1640,15 +1640,15 @@
boxsizer.AddWindow(textctrl, 0, border=0, flag=0)
if element_infos["value"] is not None:
textctrl.ChangeValue(str(element_infos["value"]))
- textctrl.Bind(wx.EVT_TEXT, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path))
+ textctrl.Bind(wx.EVT_TEXT, self.GetTextCtrlCallBackFunction(textctrl, confnode, element_path))
first = False
def ResetView(self):
IDEFrame.ResetView(self)
- self.PluginInfos = {}
- if self.PluginRoot is not None:
- self.PluginRoot.CloseProject()
- self.PluginRoot = None
+ self.ConfNodeInfos = {}
+ if self.CTR is not None:
+ self.CTR.CloseProject()
+ self.CTR = None
self.Log.flush()
if self.EnableDebug:
self.DebugVariablePanel.SetDataProducer(None)
@@ -1662,7 +1662,7 @@
self.Config.Flush()
def OnNewProjectMenu(self, event):
- if self.PluginRoot is not None and not self.CheckSaveBeforeClosing():
+ if self.CTR is not None and not self.CheckSaveBeforeClosing():
return
if not self.Config.HasEntry("lastopenedfolder"):
@@ -1676,15 +1676,15 @@
self.Config.Write("lastopenedfolder", os.path.dirname(projectpath))
self.Config.Flush()
self.ResetView()
- plugin_root = PluginsRoot(self, self.Log)
- result = plugin_root.NewProject(projectpath)
+ ctr = ConfigTreeRoot(self, self.Log)
+ result = ctr.NewProject(projectpath)
if not result:
- self.PluginRoot = plugin_root
- self.Controler = self.PluginRoot
+ self.CTR = ctr
+ self.Controler = self.CTR
self.LibraryPanel.SetControler(self.Controler)
self.RefreshConfigRecentProjects(projectpath)
if self.EnableDebug:
- self.DebugVariablePanel.SetDataProducer(self.PluginRoot)
+ self.DebugVariablePanel.SetDataProducer(self.CTR)
self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
self.RefreshAll()
else:
@@ -1694,7 +1694,7 @@
dialog.Destroy()
def OnOpenProjectMenu(self, event):
- if self.PluginRoot is not None and not self.CheckSaveBeforeClosing():
+ if self.CTR is not None and not self.CheckSaveBeforeClosing():
return
if not self.Config.HasEntry("lastopenedfolder"):
@@ -1712,14 +1712,14 @@
self.Config.Write("lastopenedfolder", os.path.dirname(projectpath))
self.Config.Flush()
self.ResetView()
- self.PluginRoot = PluginsRoot(self, self.Log)
- self.Controler = self.PluginRoot
- result = self.PluginRoot.LoadProject(projectpath)
+ self.CTR = ConfigTreeRoot(self, self.Log)
+ self.Controler = self.CTR
+ result = self.CTR.LoadProject(projectpath)
if not result:
self.LibraryPanel.SetControler(self.Controler)
self.RefreshConfigRecentProjects(projectpath)
if self.EnableDebug:
- self.DebugVariablePanel.SetDataProducer(self.PluginRoot)
+ self.DebugVariablePanel.SetDataProducer(self.CTR)
self.LoadProjectOrganization()
self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
self.RefreshAll()
@@ -1731,7 +1731,7 @@
self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU)
def OnCloseProjectMenu(self, event):
- if self.PluginRoot is not None and not self.CheckSaveBeforeClosing():
+ if self.CTR is not None and not self.CheckSaveBeforeClosing():
return
self.SaveProjectOrganization()
@@ -1740,14 +1740,14 @@
self.RefreshAll()
def OnSaveProjectMenu(self, event):
- if self.PluginRoot is not None:
- self.PluginRoot.SaveProject()
+ if self.CTR is not None:
+ self.CTR.SaveProject()
self.RefreshAll()
self._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES)
def OnSaveProjectAsMenu(self, event):
- if self.PluginRoot is not None:
- self.PluginRoot.SaveProjectAs()
+ if self.CTR is not None:
+ self.CTR.SaveProjectAs()
self.RefreshAll()
self._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES)
event.Skip()
@@ -1765,53 +1765,53 @@
OpenHtmlFrame(self,_("About Beremiz"), Bpath("doc","about.html"), wx.Size(550, 500))
def OnPouSelectedChanged(self, event):
- wx.CallAfter(self.RefreshPluginMenu)
+ wx.CallAfter(self.RefreshConfNodeMenu)
IDEFrame.OnPouSelectedChanged(self, event)
def OnPageClose(self, event):
- wx.CallAfter(self.RefreshPluginMenu)
+ wx.CallAfter(self.RefreshConfNodeMenu)
IDEFrame.OnPageClose(self, event)
- def GetAddButtonFunction(self, plugin, window):
+ def GetAddButtonFunction(self, confnode, window):
def AddButtonFunction(event):
- if plugin and len(plugin.PlugChildsTypes) > 0:
- plugin_menu = wx.Menu(title='')
- for name, XSDClass, help in plugin.PlugChildsTypes:
+ if confnode and len(confnode.PlugChildsTypes) > 0:
+ confnode_menu = wx.Menu(title='')
+ for name, XSDClass, help in confnode.PlugChildsTypes:
new_id = wx.NewId()
- plugin_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name)
- self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id)
+ confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name)
+ self.Bind(wx.EVT_MENU, self._GetAddConfNodeFunction(name, confnode), id=new_id)
window_pos = window.GetPosition()
- wx.CallAfter(self.PLCConfig.PopupMenu, plugin_menu)
+ wx.CallAfter(self.PLCConfig.PopupMenu, confnode_menu)
event.Skip()
return AddButtonFunction
- def GetDeleteButtonFunction(self, plugin):
+ def GetDeleteButtonFunction(self, confnode):
def DeleteButtonFunction(event):
- wx.CallAfter(self.DeletePlugin, plugin)
+ wx.CallAfter(self.DeleteConfNode, confnode)
event.Skip()
return DeleteButtonFunction
- def AddPlugin(self, PluginType, plugin):
- if self.PluginRoot.CheckProjectPathPerm():
- dialog = wx.TextEntryDialog(self, _("Please enter a name for plugin:"), _("Add Plugin"), "", wx.OK|wx.CANCEL)
+ def AddConfNode(self, ConfNodeType, confnode):
+ if self.CTR.CheckProjectPathPerm():
+ dialog = wx.TextEntryDialog(self, _("Please enter a name for confnode:"), _("Add ConfNode"), "", wx.OK|wx.CANCEL)
if dialog.ShowModal() == wx.ID_OK:
- PluginName = dialog.GetValue()
- plugin.PlugAddChild(PluginName, PluginType)
- self.PluginRoot.RefreshPluginsBlockLists()
+ ConfNodeName = dialog.GetValue()
+ confnode.PlugAddChild(ConfNodeName, ConfNodeType)
+ self.CTR.RefreshConfNodesBlockLists()
self._Refresh(TITLE, FILEMENU)
- self.RefreshPluginTree()
+ self.RefreshConfNodeTree()
dialog.Destroy()
- def DeletePlugin(self, plugin):
- if self.PluginRoot.CheckProjectPathPerm():
- dialog = wx.MessageDialog(self, _("Really delete plugin ?"), _("Remove plugin"), wx.YES_NO|wx.NO_DEFAULT)
+ def DeleteConfNode(self, confnode):
+ if self.CTR.CheckProjectPathPerm():
+ dialog = wx.MessageDialog(self, _("Really delete confnode ?"), _("Remove confnode"), wx.YES_NO|wx.NO_DEFAULT)
if dialog.ShowModal() == wx.ID_YES:
- self.PluginInfos.pop(plugin)
- plugin.PlugRemove()
- del plugin
- self.PluginRoot.RefreshPluginsBlockLists()
+ self.ConfNodeInfos.pop(confnode)
+ confnode.PlugRemove()
+ del confnode
+ self.CTR.RefreshConfNodesBlockLists()
self._Refresh(TITLE, FILEMENU)
- self.RefreshPluginTree()
+ self.RefreshConfNodeTree()
dialog.Destroy()
#-------------------------------------------------------------------------------