connectors/SchemeEditor.py
author Edouard Tisserant
Wed, 14 Nov 2018 11:32:08 +0100
changeset 2334 d1470c052662
parent 2329 e5703dc8848e
child 2335 4262256e1d28
permissions -rw-r--r--
Added early implementation of IDManager.py. For now only used to select ID in URIEditor
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     1
#!/usr/bin/env python
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     3
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     4
# See COPYING file for copyrights details.
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     5
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     6
from __future__ import absolute_import
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     7
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     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
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    10
import wx
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    11
2334
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    12
from controls.IDManager import IDManager
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    13
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    14
class SchemeEditor(wx.Panel):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    15
    def __init__(self, scheme, parent, *args, **kwargs):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    16
        self.txtctrls = {} 
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    17
        wx.Panel.__init__(self, parent, *args, **kwargs)
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    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
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    23
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    24
        for tag, label in self.model:
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    25
            txtctrl = wx.TextCtrl(parent=self, size=wx.Size(200, -1))
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    26
            self.txtctrls[tag] = txtctrl
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    27
            for win, flag in [
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    28
                (wx.StaticText(self, label=label), wx.ALIGN_CENTER_VERTICAL),
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    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
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    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
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    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)
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    37
            self.idselector = IDManager(
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,
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    39
                partial(wx.CallAfter, parent.SetURI))
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    40
            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
    41
            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
    42
        else:
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.fieldsizer)
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    44
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    45
    def SetFields(self, fields):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    46
        for tag, label in self.model:
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    47
            self.txtctrls[tag].SetValue(fields[tag])
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    48
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    49
    def GetFields(self):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    50
        return {tag: self.txtctrls[tag].GetValue() for tag,label in self.model}
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    51