ConfTreeNodeEditor.py
changeset 746 2e09777a40d3
parent 744 bdab45f96aa0
child 751 a8dace95f965
equal deleted inserted replaced
745:96dd6650854d 746:2e09777a40d3
    27               'other': 'new century schoolbook',
    27               'other': 'new century schoolbook',
    28               'size' : 18,
    28               'size' : 18,
    29              }
    29              }
    30 
    30 
    31 SCROLLBAR_UNIT = 10
    31 SCROLLBAR_UNIT = 10
    32 WINDOW_COLOUR = wx.Colour(240,240,240)        
    32 WINDOW_COLOUR = wx.Colour(240, 240, 240)
    33 
    33 
    34 CWD = os.path.split(os.path.realpath(__file__))[0]
    34 CWD = os.path.split(os.path.realpath(__file__))[0]
    35 
    35 
    36 def Bpath(*args):
    36 def Bpath(*args):
    37     return os.path.join(CWD,*args)
    37     return os.path.join(CWD,*args)
   201               size=wx.Size(16, 16), style=wx.NO_BORDER)
   201               size=wx.Size(16, 16), style=wx.NO_BORDER)
   202         self.IECCUpButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(1), 
   202         self.IECCUpButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(1), 
   203                               id=ieccupbutton_id)
   203                               id=ieccupbutton_id)
   204         updownsizer.AddWindow(self.IECCUpButton, 0, border=0, flag=wx.ALIGN_LEFT)
   204         updownsizer.AddWindow(self.IECCUpButton, 0, border=0, flag=wx.ALIGN_LEFT)
   205         
   205         
   206         self.RefreshIECChannelControlsState()
       
   207         
       
   208         confnodename_id = wx.NewId()
   206         confnodename_id = wx.NewId()
   209         self.ConfNodeName = wx.TextCtrl(
   207         self.ConfNodeName = wx.TextCtrl(
   210               self.ParamsEditor, confnodename_id, 
   208               self.ParamsEditor, confnodename_id, 
   211               size=wx.Size(150, 25), style=wx.NO_BORDER)
   209               size=wx.Size(150, 25), style=wx.NO_BORDER)
   212         self.ConfNodeName.SetFont(
   210         self.ConfNodeName.SetFont(
   213             wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, 
   211             wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, 
   214                     wx.BOLD, faceName = faces["helv"]))
   212                     wx.BOLD, faceName = faces["helv"]))
   215         self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName())
       
   216         self.ConfNodeName.Bind(wx.EVT_TEXT, 
   213         self.ConfNodeName.Bind(wx.EVT_TEXT, 
   217             self.GetTextCtrlCallBackFunction(self.ConfNodeName, "BaseParams.Name"), 
   214             self.GetTextCtrlCallBackFunction(self.ConfNodeName, "BaseParams.Name", True), 
   218             id=confnodename_id)
   215             id=confnodename_id)
   219         baseparamseditor_sizer.AddWindow(self.ConfNodeName, 0, border=5, flag=wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
   216         baseparamseditor_sizer.AddWindow(self.ConfNodeName, 0, border=5, flag=wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
   220         
   217         
   221         buttons_sizer = self.GenerateMethodButtonSizer()
   218         buttons_sizer = self.GenerateMethodButtonSizer()
   222         baseparamseditor_sizer.AddSizer(buttons_sizer, 0, border=0, flag=wx.ALIGN_CENTER)
   219         baseparamseditor_sizer.AddSizer(buttons_sizer, 0, border=0, flag=wx.ALIGN_CENTER)
   223         
   220         
   224         self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL)
   221         self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL)
   225         self.ParamsEditorSizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5, 
   222         self.ParamsEditorSizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5, 
   226                                         flag=wx.LEFT|wx.RIGHT|wx.BOTTOM)
   223                                         flag=wx.LEFT|wx.RIGHT|wx.BOTTOM)
   227         
       
   228         self.RefreshConfNodeParamsSizer()
       
   229         
   224         
   230         self._init_ConfNodeEditor(self.Editor)
   225         self._init_ConfNodeEditor(self.Editor)
   231             
   226             
   232         if self.ConfNodeEditor is not None:
   227         if self.ConfNodeEditor is not None:
   233             min_size = self.ParamsEditorSizer.GetMinSize()
   228             min_size = self.ParamsEditorSizer.GetMinSize()
   266     def Undo(self):
   261     def Undo(self):
   267         pass
   262         pass
   268     
   263     
   269     def Redo(self):
   264     def Redo(self):
   270         pass
   265         pass
       
   266     
       
   267     def RefreshView(self):
       
   268         EditorPanel.RefreshView(self)
       
   269         self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName())
       
   270         self.RefreshIECChannelControlsState()
       
   271         self.RefreshConfNodeParamsSizer()
   271     
   272     
   272     def EnableScrolling(self, enable):
   273     def EnableScrolling(self, enable):
   273         self.ScrollingEnabled = enable
   274         self.ScrollingEnabled = enable
   274     
   275     
   275     def RefreshIECChannelControlsState(self):
   276     def RefreshIECChannelControlsState(self):
   332                 staticbox = wx.StaticBox(id=-1, label=_(label), 
   333                 staticbox = wx.StaticBox(id=-1, label=_(label), 
   333                     name='%s_staticbox'%element_infos["name"], parent=self.ParamsEditor,
   334                     name='%s_staticbox'%element_infos["name"], parent=self.ParamsEditor,
   334                     pos=wx.Point(0, 0), size=wx.Size(10, 0), style=0)
   335                     pos=wx.Point(0, 0), size=wx.Size(10, 0), style=0)
   335                 staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL)
   336                 staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL)
   336                 if first:
   337                 if first:
   337                     sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW|wx.TOP)
   338                     sizer.AddSizer(staticboxsizer, 0, border=5, flag=wx.GROW|wx.TOP|wx.BOTTOM)
   338                 else:
   339                 else:
   339                     sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW)
   340                     sizer.AddSizer(staticboxsizer, 0, border=5, flag=wx.GROW|wx.BOTTOM)
   340                 self.GenerateSizerElements(staticboxsizer, element_infos["children"], element_path)
   341                 self.GenerateSizerElements(staticboxsizer, element_infos["children"], element_path)
   341             else:
   342             else:
   342                 boxsizer = wx.FlexGridSizer(cols=3, rows=1)
   343                 boxsizer = wx.FlexGridSizer(cols=3, rows=1)
   343                 boxsizer.AddGrowableCol(1)
   344                 boxsizer.AddGrowableCol(1)
   344                 if first:
   345                 if first:
   495         return OnChoiceChanged
   496         return OnChoiceChanged
   496     
   497     
   497     def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, path):
   498     def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, path):
   498         def OnChoiceContentChanged(event):
   499         def OnChoiceContentChanged(event):
   499             res = self.SetConfNodeParamsAttribute(path, choicectrl.GetStringSelection())
   500             res = self.SetConfNodeParamsAttribute(path, choicectrl.GetStringSelection())
       
   501             wx.CallAfter(self.RefreshConfNodeParamsSizer)
   500             event.Skip()
   502             event.Skip()
   501         return OnChoiceContentChanged
   503         return OnChoiceContentChanged
   502     
   504     
   503     def GetTextCtrlCallBackFunction(self, textctrl, path):
   505     def GetTextCtrlCallBackFunction(self, textctrl, path, refresh=False):
   504         def OnTextCtrlChanged(event):
   506         def OnTextCtrlChanged(event):
   505             res = self.SetConfNodeParamsAttribute(path, textctrl.GetValue())
   507             res = self.SetConfNodeParamsAttribute(path, textctrl.GetValue())
   506             if res != textctrl.GetValue():
   508             if res != textctrl.GetValue():
   507                 textctrl.ChangeValue(res)
   509                 textctrl.ChangeValue(res)
   508             if textctrl == self.ConfNodeName:
   510             if refresh:
   509                 wx.CallAfter(self.ParentWindow._Refresh, TITLE, FILEMENU, PROJECTTREE, PAGETITLES)
   511                 wx.CallAfter(self.ParentWindow._Refresh, TITLE, FILEMENU, PROJECTTREE, PAGETITLES)
   510                 wx.CallAfter(self.ParentWindow.SelectProjectTreeItem, self.GetTagName())
   512                 wx.CallAfter(self.ParentWindow.SelectProjectTreeItem, self.GetTagName())
   511             event.Skip()
   513             event.Skip()
   512         return OnTextCtrlChanged
   514         return OnTextCtrlChanged
   513     
   515     
   529             dialog.Destroy()
   531             dialog.Destroy()
   530             event.Skip()
   532             event.Skip()
   531         return OnBrowseButton
   533         return OnBrowseButton
   532     
   534     
   533     def OnWindowResize(self, event):
   535     def OnWindowResize(self, event):
   534         self.GetBestSize()
   536         self.ParamsEditor.GetBestSize()
   535         xstart, ystart = self.ParamsEditor.GetViewStart()
   537         xstart, ystart = self.ParamsEditor.GetViewStart()
   536         window_size = self.ParamsEditor.GetClientSize()
   538         window_size = self.ParamsEditor.GetClientSize()
   537         maxx, maxy = self.ParamsEditorSizer.GetMinSize()
   539         maxx, maxy = self.ParamsEditorSizer.GetMinSize()
   538         posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT))
   540         posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT))
   539         posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT))
   541         posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT))