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) |