diff -r 1460273f40ed -r 5743cbdff669 editors/ProjectNodeEditor.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/editors/ProjectNodeEditor.py Fri Sep 07 16:45:55 2012 +0200 @@ -0,0 +1,83 @@ + +import wx + +from controls import ProjectPropertiesPanel +from EditorPanel import EditorPanel +from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR + +class ProjectNodeEditor(ConfTreeNodeEditor): + + VARIABLE_PANEL_TYPE = "config" + ENABLE_REQUIRED = True + + def _init_Editor(self, prnt): + self.Editor = wx.ScrolledWindow(prnt, -1, size=wx.Size(-1, -1), + style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL) + self.Editor.SetBackgroundColour(WINDOW_COLOUR) + self.Editor.Bind(wx.EVT_SIZE, self.OnWindowResize) + self.Editor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) + self.ParamsEditor = self.Editor + + # Variable allowing disabling of Editor scroll when Popup shown + self.ScrollingEnabled = True + + self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) + self.ParamsEditorSizer.AddGrowableCol(0) + self.ParamsEditorSizer.AddGrowableRow(1) + + self.Editor.SetSizer(self.ParamsEditorSizer) + + + buttons_sizer = self.GenerateMethodButtonSizer() + self.ParamsEditorSizer.AddSizer(buttons_sizer, 0, border=5, + flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP) + + projectproperties_sizer = wx.BoxSizer(wx.HORIZONTAL) + self.ParamsEditorSizer.AddSizer(projectproperties_sizer, 0, border=5, + flag=wx.LEFT|wx.RIGHT|wx.BOTTOM) + + if self.SHOW_PARAMS: + self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL) + projectproperties_sizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5, + flag=wx.RIGHT) + else: + self.ConfNodeParamsSizer = None + + self.ProjectProperties = ProjectPropertiesPanel(self.Editor, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED) + projectproperties_sizer.AddWindow(self.ProjectProperties, 0, border=0, flag=0) + + 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) + + def GetTagName(self): + return self.Controler.CTNName() + + def GetTitle(self): + fullname = self.Controler.CTNName() + if self.Controler.CTNTestModified(): + return "~%s~" % fullname + return fullname + + def RefreshView(self, variablepanel=True): + EditorPanel.RefreshView(self, variablepanel) + if self.ConfNodeParamsSizer is not None: + self.RefreshConfNodeParamsSizer() + 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() + \ No newline at end of file