editors/ProjectNodeEditor.py
changeset 920 1499a4d225db
parent 815 e4f24593a758
child 1036 a6718197caf2
equal deleted inserted replaced
919:4a36e38e51d3 920:1499a4d225db
     1 
     1 
     2 import wx
     2 import wx
     3 
     3 
     4 from controls import ProjectPropertiesPanel
     4 from controls import ProjectPropertiesPanel, VariablePanel
     5 from EditorPanel import EditorPanel
     5 from EditorPanel import EditorPanel
     6 from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR
     6 from ConfTreeNodeEditor import ConfTreeNodeEditor
     7 
     7 
     8 class ProjectNodeEditor(ConfTreeNodeEditor):
     8 class ProjectNodeEditor(ConfTreeNodeEditor):
     9     
     9     
    10     VARIABLE_PANEL_TYPE = "config"
    10     SHOW_BASE_PARAMS = False
    11     ENABLE_REQUIRED = True
    11     ENABLE_REQUIRED = True
       
    12     CONFNODEEDITOR_TABS = [
       
    13         (_("Config variables"), "_create_VariablePanel"),
       
    14         (_("Project properties"), "_create_ProjectPropertiesPanel")]
    12     
    15     
    13     def _init_Editor(self, prnt):
    16     def _create_VariablePanel(self, prnt):
    14         self.Editor = wx.ScrolledWindow(prnt, -1, size=wx.Size(-1, -1),
    17         self.VariableEditorPanel = VariablePanel(prnt, self, self.Controler, "config", self.Debug)
    15                 style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL)
    18         self.VariableEditorPanel.SetTagName(self.TagName)
    16         self.Editor.SetBackgroundColour(WINDOW_COLOUR)
    19     
    17         self.Editor.Bind(wx.EVT_SIZE, self.OnWindowResize)
    20         return self.VariableEditorPanel
    18         self.Editor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel)
    21     
    19         self.ParamsEditor = self.Editor
    22     def _create_ProjectPropertiesPanel(self, prnt):
       
    23         self.ProjectProperties = ProjectPropertiesPanel(prnt, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED)
    20         
    24         
    21         # Variable allowing disabling of Editor scroll when Popup shown 
    25         return self.ProjectProperties
    22         self.ScrollingEnabled = True
    26     
    23         
       
    24         self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
       
    25         self.ParamsEditorSizer.AddGrowableCol(0)
       
    26         self.ParamsEditorSizer.AddGrowableRow(1)
       
    27         
       
    28         self.Editor.SetSizer(self.ParamsEditorSizer)
       
    29         
       
    30         
       
    31         buttons_sizer = self.GenerateMethodButtonSizer()
       
    32         self.ParamsEditorSizer.AddSizer(buttons_sizer, 0, border=5, 
       
    33                                         flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP)
       
    34         
       
    35         projectproperties_sizer = wx.BoxSizer(wx.HORIZONTAL)
       
    36         self.ParamsEditorSizer.AddSizer(projectproperties_sizer, 0, border=5, 
       
    37                                         flag=wx.LEFT|wx.RIGHT|wx.BOTTOM)
       
    38         
       
    39         if self.SHOW_PARAMS:
       
    40             self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL)
       
    41             projectproperties_sizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5, 
       
    42                                              flag=wx.RIGHT)
       
    43         else:
       
    44             self.ConfNodeParamsSizer = None
       
    45         
       
    46         self.ProjectProperties = ProjectPropertiesPanel(self.Editor, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED)
       
    47         projectproperties_sizer.AddWindow(self.ProjectProperties, 0, border=0, flag=0)
       
    48         
       
    49     def __init__(self, parent, controler, window):
    27     def __init__(self, parent, controler, window):
    50         configuration = controler.GetProjectMainConfigurationName()
    28         configuration = controler.GetProjectMainConfigurationName()
    51         if configuration is not None:
    29         if configuration is not None:
    52             tagname = controler.ComputeConfigurationName(configuration)
    30             tagname = controler.ComputeConfigurationName(configuration)
    53         else:
    31         else:
    54             tagname = ""
    32             tagname = ""
    55         
    33         
    56         ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
    34         ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
       
    35         
       
    36         buttons_sizer = self.GenerateMethodButtonSizer()
       
    37         self.ParamsEditorSizer.InsertSizer(0, buttons_sizer, 0, border=5, 
       
    38                 flag=wx.LEFT|wx.RIGHT|wx.TOP)
       
    39         self.ParamsEditorSizer.Layout()
       
    40         
       
    41         self.VariableEditor = self.VariableEditorPanel
    57 
    42 
    58     def GetTagName(self):
    43     def GetTagName(self):
    59         return self.Controler.CTNName()
    44         return self.Controler.CTNName()
       
    45     
       
    46     def SetTagName(self, tagname):
       
    47         self.TagName = tagname
       
    48         if self.VariableEditor is not None:
       
    49             self.VariableEditor.SetTagName(tagname)
    60     
    50     
    61     def GetTitle(self):
    51     def GetTitle(self):
    62         fullname = _(self.Controler.CTNName())
    52         fullname = _(self.Controler.CTNName())
    63         if self.Controler.CTNTestModified():
    53         if self.Controler.CTNTestModified():
    64             return "~%s~" % fullname
    54             return "~%s~" % fullname
    65         return fullname
    55         return fullname
    66     
    56     
    67     def RefreshView(self, variablepanel=True):
    57     def RefreshView(self, variablepanel=True):
    68         EditorPanel.RefreshView(self, variablepanel)
    58         ConfTreeNodeEditor.RefreshView(self)
    69         if self.ConfNodeParamsSizer is not None:
    59         if variablepanel:
    70             self.RefreshConfNodeParamsSizer()
    60             self.VariableEditor.RefreshView()
    71         self.ProjectProperties.RefreshView()
    61         #self.ProjectProperties.RefreshView()
    72 
    62 
    73     def GetBufferState(self):
    63     def GetBufferState(self):
    74         return self.Controler.GetBufferState()
    64         return self.Controler.GetBufferState()
    75         
    65         
    76     def Undo(self):
    66     def Undo(self):