editors/ProjectNodeEditor.py
changeset 814 5743cbdff669
parent 800 e9406586bb14
child 815 e4f24593a758
equal deleted inserted replaced
813:1460273f40ed 814:5743cbdff669
       
     1 
       
     2 import wx
       
     3 
       
     4 from controls import ProjectPropertiesPanel
       
     5 from EditorPanel import EditorPanel
       
     6 from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR
       
     7 
       
     8 class ProjectNodeEditor(ConfTreeNodeEditor):
       
     9     
       
    10     VARIABLE_PANEL_TYPE = "config"
       
    11     ENABLE_REQUIRED = True
       
    12     
       
    13     def _init_Editor(self, prnt):
       
    14         self.Editor = wx.ScrolledWindow(prnt, -1, size=wx.Size(-1, -1),
       
    15                 style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL)
       
    16         self.Editor.SetBackgroundColour(WINDOW_COLOUR)
       
    17         self.Editor.Bind(wx.EVT_SIZE, self.OnWindowResize)
       
    18         self.Editor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel)
       
    19         self.ParamsEditor = self.Editor
       
    20         
       
    21         # Variable allowing disabling of Editor scroll when Popup shown 
       
    22         self.ScrollingEnabled = True
       
    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):
       
    50         configuration = controler.GetProjectMainConfigurationName()
       
    51         if configuration is not None:
       
    52             tagname = controler.ComputeConfigurationName(configuration)
       
    53         else:
       
    54             tagname = ""
       
    55         
       
    56         ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
       
    57 
       
    58     def GetTagName(self):
       
    59         return self.Controler.CTNName()
       
    60     
       
    61     def GetTitle(self):
       
    62         fullname = self.Controler.CTNName()
       
    63         if self.Controler.CTNTestModified():
       
    64             return "~%s~" % fullname
       
    65         return fullname
       
    66     
       
    67     def RefreshView(self, variablepanel=True):
       
    68         EditorPanel.RefreshView(self, variablepanel)
       
    69         if self.ConfNodeParamsSizer is not None:
       
    70             self.RefreshConfNodeParamsSizer()
       
    71         self.ProjectProperties.RefreshView()
       
    72 
       
    73     def GetBufferState(self):
       
    74         return self.Controler.GetBufferState()
       
    75         
       
    76     def Undo(self):
       
    77         self.Controler.LoadPrevious()
       
    78         self.ParentWindow.CloseTabsWithoutModel()
       
    79             
       
    80     def Redo(self):
       
    81         self.Controler.LoadNext()
       
    82         self.ParentWindow.CloseTabsWithoutModel()
       
    83