connectors/SchemeEditor.py
author Edouard Tisserant
Fri, 16 Nov 2018 10:00:06 +0100
changeset 2336 869a61616b42
parent 2335 4262256e1d28
child 2492 7dd551ac2fa0
permissions -rw-r--r--
Renamed IDManager control into IDBrowser, because dialog will be named IDManager
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
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
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)
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
4262256e1d28 IDManager.py : finished selector mode.
Edouard Tisserant
parents: 2334
diff changeset
    39
                # use a callafter, as editor can be deleted by calling SetURI
4262256e1d28 IDManager.py : finished selector mode.
Edouard Tisserant
parents: 2334
diff changeset
    40
                partial(wx.CallAfter, parent.SetURI),
4262256e1d28 IDManager.py : finished selector mode.
Edouard Tisserant
parents: 2334
diff changeset
    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
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    46
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    47
    def SetFields(self, fields):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    48
        for tag, label in self.model:
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    49
            self.txtctrls[tag].SetValue(fields[tag])
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    50
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    51
    def GetFields(self):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    52
        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
    53