editors/ProjectNodeEditor.py
changeset 814 5743cbdff669
parent 800 e9406586bb14
child 815 e4f24593a758
--- /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