author | Edouard Tisserant |
Wed, 21 Nov 2018 14:10:51 +0100 | |
changeset 2340 | decf52efb7f7 |
parent 2336 | 869a61616b42 |
child 2492 | 7dd551ac2fa0 |
permissions | -rw-r--r-- |
2329 | 1 |
#!/usr/bin/env python |
2 |
# -*- coding: utf-8 -*- |
|
3 |
||
4 |
# See COPYING file for copyrights details. |
|
5 |
||
6 |
from __future__ import absolute_import |
|
7 |
||
8 |
from itertools import repeat, izip_longest |
|
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
9 |
from functools import partial |
2329 | 10 |
import wx |
11 |
||
2336
869a61616b42
Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant
parents:
2335
diff
changeset
|
12 |
from controls.IDBrowser import IDBrowser |
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
13 |
|
2329 | 14 |
class SchemeEditor(wx.Panel): |
15 |
def __init__(self, scheme, parent, *args, **kwargs): |
|
16 |
self.txtctrls = {} |
|
17 |
wx.Panel.__init__(self, parent, *args, **kwargs) |
|
18 |
||
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
19 |
self.fieldsizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=10) |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
20 |
|
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
21 |
if self.EnableIDSelector: |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
22 |
self.model = self.model + [("ID", _("ID:"))] |
2329 | 23 |
|
24 |
for tag, label in self.model: |
|
25 |
txtctrl = wx.TextCtrl(parent=self, size=wx.Size(200, -1)) |
|
26 |
self.txtctrls[tag] = txtctrl |
|
27 |
for win, flag in [ |
|
28 |
(wx.StaticText(self, label=label), wx.ALIGN_CENTER_VERTICAL), |
|
29 |
(txtctrl, wx.GROW)]: |
|
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
30 |
self.fieldsizer.AddWindow(win, flag=flag) |
2329 | 31 |
|
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
32 |
self.fieldsizer.AddSpacer(20) |
2329 | 33 |
|
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
34 |
if self.EnableIDSelector: |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
35 |
self.mainsizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=10) |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
36 |
self.mainsizer.AddSizer(self.fieldsizer) |
2336
869a61616b42
Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant
parents:
2335
diff
changeset
|
37 |
self.idselector = IDBrowser( |
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
38 |
self, parent.ctr, |
2335 | 39 |
# use a callafter, as editor can be deleted by calling SetURI |
40 |
partial(wx.CallAfter, parent.SetURI), |
|
41 |
self.txtctrls[tag].SetValue) |
|
2334
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
42 |
self.mainsizer.AddWindow(self.idselector) |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
43 |
self.SetSizer(self.mainsizer) |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
44 |
else: |
d1470c052662
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents:
2329
diff
changeset
|
45 |
self.SetSizer(self.fieldsizer) |
2329 | 46 |
|
47 |
def SetFields(self, fields): |
|
48 |
for tag, label in self.model: |
|
49 |
self.txtctrls[tag].SetValue(fields[tag]) |
|
50 |
||
51 |
def GetFields(self): |
|
52 |
return {tag: self.txtctrls[tag].GetValue() for tag,label in self.model} |
|
53 |