# This file is part of Beremiz, a Integrated Development Environment for
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
# See COPYING file for copyrights details.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from controls import VariablePanel
class EditorPanel(wx.SplitterWindow):
VARIABLE_PANEL_TYPE = None
def _init_Editor(self, prnt):
def _init_MenuItems(self):
def _init_ctrls(self, parent):
wx.SplitterWindow.__init__(self, parent,
style=wx.SUNKEN_BORDER|wx.SP_3D)
self.SetMinimumPaneSize(1)
if self.VARIABLE_PANEL_TYPE is not None:
self.VariableEditor = VariablePanel(self, self, self.Controler, self.VARIABLE_PANEL_TYPE, self.Debug)
self.VariableEditor.SetTagName(self.TagName)
self.VariableEditor = None
if self.Editor is not None and self.VariableEditor is not None:
self.SplitHorizontally(self.VariableEditor, self.Editor, 200)
elif self.VariableEditor is not None:
self.Initialize(self.VariableEditor)
elif self.Editor is not None:
self.Initialize(self.Editor)
def __init__(self, parent, tagname, window, controler, debug=False):
self.ParentWindow = window
self.Controler = controler
def SetTagName(self, tagname):
if self.VARIABLE_PANEL_TYPE is not None:
self.VariableEditor.SetTagName(tagname)
self.ParentWindow.EditProjectElement(None, self.GetTagName(), True)
return "-".join(self.TagName.split("::")[1:])
def IsViewing(self, tagname):
return self.GetTagName() == tagname
def CheckSaveBeforeClosing(self):
def GetBufferState(self):
if self.Controler is not None:
return self.Controler.GetBufferState()
if self.Controler is not None:
self.Controler.LoadPrevious()
if self.Controler is not None:
self.Controler.LoadNext()
def Find(self, direction, search_params):
def RefreshView(self, variablepanel=True):
self.RefreshVariablePanel()
def RefreshVariablePanel(self):
if self.VariableEditor is not None:
self.VariableEditor.RefreshView()
def GetConfNodeMenuItems(self):
def RefreshConfNodeMenu(self, confnode_menu):
def _Refresh(self, *args):
self.ParentWindow._Refresh(*args)
def RefreshScaling(self, refresh=True):
def AddHighlight(self, infos, start, end, highlight_type):
if self.VariableEditor is not None and infos[0] in ["var_local", "var_input", "var_output", "var_inout"]:
self.VariableEditor.AddVariableHighlight(infos[1:], highlight_type)
def RemoveHighlight(self, infos, start, end, highlight_type):
if self.VariableEditor is not None and infos[0] in ["var_local", "var_input", "var_output", "var_inout"]:
self.VariableEditor.RemoveVariableHighlight(infos[1:], highlight_type)
def ClearHighlights(self, highlight_type=None):
if self.VariableEditor is not None:
self.VariableEditor.ClearHighlights(highlight_type)