editors/EditorPanel.py
changeset 1735 c02818d7e29f
parent 1615 af9b0ccb418e
child 1736 7e61baa047f0
equal deleted inserted replaced
1734:750eeb7230a1 1735:c02818d7e29f
    25 import wx
    25 import wx
    26 
    26 
    27 from controls import VariablePanel
    27 from controls import VariablePanel
    28 
    28 
    29 class EditorPanel(wx.SplitterWindow):
    29 class EditorPanel(wx.SplitterWindow):
    30     
    30 
    31     VARIABLE_PANEL_TYPE = None
    31     VARIABLE_PANEL_TYPE = None
    32     
    32 
    33     def _init_Editor(self, prnt):
    33     def _init_Editor(self, prnt):
    34         self.Editor = None
    34         self.Editor = None
    35     
    35 
    36     def _init_MenuItems(self):
    36     def _init_MenuItems(self):
    37         self.MenuItems = []
    37         self.MenuItems = []
    38     
    38 
    39     def _init_ctrls(self, parent):
    39     def _init_ctrls(self, parent):
    40         wx.SplitterWindow.__init__(self, parent,
    40         wx.SplitterWindow.__init__(self, parent,
    41               style=wx.SUNKEN_BORDER|wx.SP_3D)
    41               style=wx.SUNKEN_BORDER|wx.SP_3D)
    42         self.SetMinimumPaneSize(1)
    42         self.SetMinimumPaneSize(1)
    43         
    43 
    44         self._init_MenuItems()
    44         self._init_MenuItems()
    45         
    45 
    46         if self.VARIABLE_PANEL_TYPE is not None:
    46         if self.VARIABLE_PANEL_TYPE is not None:
    47             self.VariableEditor = VariablePanel(self, self, self.Controler, self.VARIABLE_PANEL_TYPE, self.Debug)
    47             self.VariableEditor = VariablePanel(self, self, self.Controler, self.VARIABLE_PANEL_TYPE, self.Debug)
    48             self.VariableEditor.SetTagName(self.TagName)
    48             self.VariableEditor.SetTagName(self.TagName)
    49         else:
    49         else:
    50             self.VariableEditor = None
    50             self.VariableEditor = None
    51             
    51 
    52         self._init_Editor(self)
    52         self._init_Editor(self)
    53             
    53 
    54         if self.Editor is not None and self.VariableEditor is not None:
    54         if self.Editor is not None and self.VariableEditor is not None:
    55             self.SplitHorizontally(self.VariableEditor, self.Editor, 200)
    55             self.SplitHorizontally(self.VariableEditor, self.Editor, 200)
    56         elif self.VariableEditor is not None:
    56         elif self.VariableEditor is not None:
    57             self.Initialize(self.VariableEditor)
    57             self.Initialize(self.VariableEditor)
    58         elif self.Editor is not None:
    58         elif self.Editor is not None:
    59             self.Initialize(self.Editor)
    59             self.Initialize(self.Editor)
    60         
    60 
    61     def __init__(self, parent, tagname, window, controler, debug=False):
    61     def __init__(self, parent, tagname, window, controler, debug=False):
    62         self.ParentWindow = window
    62         self.ParentWindow = window
    63         self.Controler = controler
    63         self.Controler = controler
    64         self.TagName = tagname
    64         self.TagName = tagname
    65         self.Icon = None
    65         self.Icon = None
    66         self.Debug = debug
    66         self.Debug = debug
    67         
    67 
    68         self._init_ctrls(parent)
    68         self._init_ctrls(parent)
    69     
    69 
    70     def SetTagName(self, tagname):
    70     def SetTagName(self, tagname):
    71         self.TagName = tagname
    71         self.TagName = tagname
    72         if self.VARIABLE_PANEL_TYPE is not None:
    72         if self.VARIABLE_PANEL_TYPE is not None:
    73             self.VariableEditor.SetTagName(tagname)
    73             self.VariableEditor.SetTagName(tagname)
    74         
    74 
    75     def GetTagName(self):
    75     def GetTagName(self):
    76         return self.TagName
    76         return self.TagName
    77     
    77 
    78     def Select(self):
    78     def Select(self):
    79         self.ParentWindow.EditProjectElement(None, self.GetTagName(), True)
    79         self.ParentWindow.EditProjectElement(None, self.GetTagName(), True)
    80     
    80 
    81     def GetTitle(self):
    81     def GetTitle(self):
    82         return ".".join(self.TagName.split("::")[1:])
    82         return ".".join(self.TagName.split("::")[1:])
    83     
    83 
    84     def GetIcon(self):
    84     def GetIcon(self):
    85         return self.Icon
    85         return self.Icon
    86     
    86 
    87     def SetIcon(self, icon):
    87     def SetIcon(self, icon):
    88         self.Icon = icon
    88         self.Icon = icon
    89     
    89 
    90     def IsViewing(self, tagname):
    90     def IsViewing(self, tagname):
    91         return self.GetTagName() == tagname
    91         return self.GetTagName() == tagname
    92 
    92 
    93     def IsDebugging(self):
    93     def IsDebugging(self):
    94         return self.Debug
    94         return self.Debug
    96     def SetMode(self, mode):
    96     def SetMode(self, mode):
    97         pass
    97         pass
    98 
    98 
    99     def ResetBuffer(self):
    99     def ResetBuffer(self):
   100         pass
   100         pass
   101     
   101 
   102     def IsModified(self):
   102     def IsModified(self):
   103         return False
   103         return False
   104     
   104 
   105     def CheckSaveBeforeClosing(self):
   105     def CheckSaveBeforeClosing(self):
   106         return True
   106         return True
   107     
   107 
   108     def Save(self):
   108     def Save(self):
   109         pass
   109         pass
   110     
   110 
   111     def SaveAs(self):
   111     def SaveAs(self):
   112         pass
   112         pass
   113     
   113 
   114     def GetBufferState(self):
   114     def GetBufferState(self):
   115         if self.Controler is not None:
   115         if self.Controler is not None:
   116             return self.Controler.GetBufferState()
   116             return self.Controler.GetBufferState()
   117         return False, False
   117         return False, False
   118     
   118 
   119     def Undo(self):
   119     def Undo(self):
   120         if self.Controler is not None:
   120         if self.Controler is not None:
   121             self.Controler.LoadPrevious()
   121             self.Controler.LoadPrevious()
   122             self.RefreshView()
   122             self.RefreshView()
   123     
   123 
   124     def Redo(self):
   124     def Redo(self):
   125         if self.Controler is not None:
   125         if self.Controler is not None:
   126             self.Controler.LoadNext()
   126             self.Controler.LoadNext()
   127             self.RefreshView()
   127             self.RefreshView()
   128     
   128 
   129     def Find(self, direction, search_params):
   129     def Find(self, direction, search_params):
   130         pass
   130         pass
   131         
   131 
   132     def HasNoModel(self):
   132     def HasNoModel(self):
   133         return False
   133         return False
   134     
   134 
   135     def RefreshView(self, variablepanel=True):
   135     def RefreshView(self, variablepanel=True):
   136         if variablepanel:
   136         if variablepanel:
   137             self.RefreshVariablePanel()
   137             self.RefreshVariablePanel()
   138     
   138 
   139     def RefreshVariablePanel(self):
   139     def RefreshVariablePanel(self):
   140         if self.VariableEditor is not None:
   140         if self.VariableEditor is not None:
   141             self.VariableEditor.RefreshView()
   141             self.VariableEditor.RefreshView()
   142     
   142 
   143     def GetConfNodeMenuItems(self):
   143     def GetConfNodeMenuItems(self):
   144         return self.MenuItems
   144         return self.MenuItems
   145     
   145 
   146     def RefreshConfNodeMenu(self, confnode_menu):
   146     def RefreshConfNodeMenu(self, confnode_menu):
   147         pass
   147         pass
   148     
   148 
   149     def _Refresh(self, *args):
   149     def _Refresh(self, *args):
   150         self.ParentWindow._Refresh(*args)
   150         self.ParentWindow._Refresh(*args)
   151 
   151 
   152     def RefreshScaling(self, refresh=True):
   152     def RefreshScaling(self, refresh=True):
   153         pass
   153         pass
   157             self.VariableEditor.AddVariableHighlight(infos[1:], highlight_type)
   157             self.VariableEditor.AddVariableHighlight(infos[1:], highlight_type)
   158 
   158 
   159     def RemoveHighlight(self, infos, start, end, highlight_type):
   159     def RemoveHighlight(self, infos, start, end, highlight_type):
   160         if self.VariableEditor is not None and infos[0] in ["var_local", "var_input", "var_output", "var_inout"]:
   160         if self.VariableEditor is not None and infos[0] in ["var_local", "var_input", "var_output", "var_inout"]:
   161             self.VariableEditor.RemoveVariableHighlight(infos[1:], highlight_type)
   161             self.VariableEditor.RemoveVariableHighlight(infos[1:], highlight_type)
   162         
   162 
   163     def ClearHighlights(self, highlight_type=None):
   163     def ClearHighlights(self, highlight_type=None):
   164         if self.VariableEditor is not None:
   164         if self.VariableEditor is not None:
   165             self.VariableEditor.ClearHighlights(highlight_type)
   165             self.VariableEditor.ClearHighlights(highlight_type)