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