diff -r 81abf93b4684 -r d1470c052662 connectors/SchemeEditor.py --- a/connectors/SchemeEditor.py Fri Nov 09 13:26:06 2018 +0100 +++ b/connectors/SchemeEditor.py Wed Nov 14 11:32:08 2018 +0100 @@ -6,14 +6,20 @@ from __future__ import absolute_import from itertools import repeat, izip_longest +from functools import partial import wx +from controls.IDManager import IDManager + class SchemeEditor(wx.Panel): def __init__(self, scheme, parent, *args, **kwargs): self.txtctrls = {} wx.Panel.__init__(self, parent, *args, **kwargs) - self.mainSizer = wx.FlexGridSizer(cols=2, hgap=10, rows=5, vgap=10) + self.fieldsizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=10) + + if self.EnableIDSelector: + self.model = self.model + [("ID", _("ID:"))] for tag, label in self.model: txtctrl = wx.TextCtrl(parent=self, size=wx.Size(200, -1)) @@ -21,11 +27,20 @@ for win, flag in [ (wx.StaticText(self, label=label), wx.ALIGN_CENTER_VERTICAL), (txtctrl, wx.GROW)]: - self.mainSizer.AddWindow(win, flag=flag) + self.fieldsizer.AddWindow(win, flag=flag) - self.mainSizer.AddSpacer(20) + self.fieldsizer.AddSpacer(20) - self.SetSizer(self.mainSizer) + if self.EnableIDSelector: + self.mainsizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=10) + self.mainsizer.AddSizer(self.fieldsizer) + self.idselector = IDManager( + self, parent.ctr, + partial(wx.CallAfter, parent.SetURI)) + self.mainsizer.AddWindow(self.idselector) + self.SetSizer(self.mainsizer) + else: + self.SetSizer(self.fieldsizer) def SetFields(self, fields): for tag, label in self.model: