editors/ProjectNodeEditor.py
changeset 920 1499a4d225db
parent 815 e4f24593a758
child 1036 a6718197caf2
--- a/editors/ProjectNodeEditor.py	Wed Jan 30 19:07:59 2013 +0100
+++ b/editors/ProjectNodeEditor.py	Wed Jan 30 23:46:41 2013 +0100
@@ -1,51 +1,29 @@
 
 import wx
 
-from controls import ProjectPropertiesPanel
+from controls import ProjectPropertiesPanel, VariablePanel
 from EditorPanel import EditorPanel
-from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR
+from ConfTreeNodeEditor import ConfTreeNodeEditor
 
 class ProjectNodeEditor(ConfTreeNodeEditor):
     
-    VARIABLE_PANEL_TYPE = "config"
+    SHOW_BASE_PARAMS = False
     ENABLE_REQUIRED = True
+    CONFNODEEDITOR_TABS = [
+        (_("Config variables"), "_create_VariablePanel"),
+        (_("Project properties"), "_create_ProjectPropertiesPanel")]
     
-    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
+    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)
         
-        # 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)
-        
+        return self.ProjectProperties
+    
     def __init__(self, parent, controler, window):
         configuration = controler.GetProjectMainConfigurationName()
         if configuration is not None:
@@ -54,10 +32,22 @@
             tagname = ""
         
         ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
+        
+        buttons_sizer = self.GenerateMethodButtonSizer()
+        self.ParamsEditorSizer.InsertSizer(0, buttons_sizer, 0, border=5, 
+                flag=wx.LEFT|wx.RIGHT|wx.TOP)
+        self.ParamsEditorSizer.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():
@@ -65,10 +55,10 @@
         return fullname
     
     def RefreshView(self, variablepanel=True):
-        EditorPanel.RefreshView(self, variablepanel)
-        if self.ConfNodeParamsSizer is not None:
-            self.RefreshConfNodeParamsSizer()
-        self.ProjectProperties.RefreshView()
+        ConfTreeNodeEditor.RefreshView(self)
+        if variablepanel:
+            self.VariableEditor.RefreshView()
+        #self.ProjectProperties.RefreshView()
 
     def GetBufferState(self):
         return self.Controler.GetBufferState()