connectors/SchemeEditor.py
changeset 2334 d1470c052662
parent 2329 e5703dc8848e
child 2335 4262256e1d28
--- 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: