def _init_ctrls(self, parent): self.SetMinimumPaneSize(1) self._init_MenuItems() 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) else: self.VariableEditor = None self._init_Editor(self) 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 _create_VariablePanel(self, prnt): self.VariableEditorPanel = VariablePanel(prnt, self, self.Controler, "config", self.Debug) self.VariableEditorPanel.SetTagName(self.TagName) return self.VariableEditorPanel
class EditorPanel(wx.SplitterWindow): VARIABLE_PANEL_TYPE = None def _init_Editor(self, prnt): self.Editor = None def _init_MenuItems(self): self.MenuItems = [] def _init_ctrls(self, parent): self.SetMinimumPaneSize(1) self._init_MenuItems() 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) else: self.VariableEditor = None self._init_Editor(self) 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): wx.SplitterWindow.__init__(self, parent, style=wx.SUNKEN_BORDER | wx.SP_3D) self.ParentWindow = window self.Controler = controler self.TagName = tagname self.Icon = None self.Debug = debug self._init_ctrls(parent) def SetTagName(self, tagname): self.TagName = tagname if self.VARIABLE_PANEL_TYPE is not None: self.VariableEditor.SetTagName(tagname) def GetTagName(self): return self.TagName def Select(self): self.ParentWindow.EditProjectElement(None, self.GetTagName(), True) def GetTitle(self): return ".".join(self.TagName.split("::")[1:]) def GetIcon(self): return self.Icon def SetIcon(self, icon): self.Icon = icon def IsViewing(self, tagname): return self.GetTagName() == tagname def IsDebugging(self): return self.Debug def SetMode(self, mode): pass def ResetBuffer(self): pass def IsModified(self): return False def CheckSaveBeforeClosing(self): return True def Save(self): pass def SaveAs(self): pass def GetBufferState(self): if self.Controler is not None: return self.Controler.GetBufferState() return False, False def Undo(self): if self.Controler is not None: self.Controler.LoadPrevious() self.RefreshView() def Redo(self): if self.Controler is not None: self.Controler.LoadNext() self.RefreshView() def Find(self, direction, search_params): pass def HasNoModel(self): return False def RefreshView(self, variablepanel=True): if variablepanel: self.RefreshVariablePanel() def RefreshVariablePanel(self): if self.VariableEditor is not None: self.VariableEditor.RefreshView() def GetConfNodeMenuItems(self): return self.MenuItems def RefreshConfNodeMenu(self, confnode_menu): pass def _Refresh(self, *args): self.ParentWindow._Refresh(*args) def RefreshScaling(self, refresh=True): pass 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)
class ProjectNodeEditor(ConfTreeNodeEditor): SHOW_BASE_PARAMS = False ENABLE_REQUIRED = True CONFNODEEDITOR_TABS = [(_("Config variables"), "_create_VariablePanel"), (_("Project properties"), "_create_ProjectPropertiesPanel")] def _create_VariablePanel(self, prnt): self.VariableEditorPanel = VariablePanel(prnt, self, self.Controler, "config", self.Debug) self.VariableEditorPanel.SetTagName(self.TagName) return self.VariableEditorPanel def _create_ProjectPropertiesPanel(self, prnt): self.ProjectProperties = ProjectPropertiesPanel( prnt, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED) return self.ProjectProperties def __init__(self, parent, controler, window): configuration = controler.GetProjectMainConfigurationName() if configuration is not None: tagname = controler.ComputeConfigurationName(configuration) else: tagname = "" ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname) buttons_sizer = self.GenerateMethodButtonSizer() self.MainSizer.InsertSizer(0, buttons_sizer, 0, border=5, flag=wx.ALL) self.MainSizer.Layout() self.VariableEditor = self.VariableEditorPanel def GetTagName(self): return self.Controler.CTNName() def SetTagName(self, tagname): self.TagName = tagname if self.VariableEditor is not None: self.VariableEditor.SetTagName(tagname) def GetTitle(self): fullname = _(self.Controler.CTNName()) if self.Controler.CTNTestModified(): return "~%s~" % fullname return fullname def RefreshView(self, variablepanel=True): ConfTreeNodeEditor.RefreshView(self) self.VariableEditorPanel.RefreshView() self.ProjectProperties.RefreshView() def GetBufferState(self): return self.Controler.GetBufferState() def Undo(self): self.Controler.LoadPrevious() self.ParentWindow.CloseTabsWithoutModel() def Redo(self): self.Controler.LoadNext() self.ParentWindow.CloseTabsWithoutModel()