connectors/SchemeEditor.py
author Edouard Tisserant
Fri, 06 May 2022 11:01:07 +0200
changeset 3467 d8b9ed779728
parent 3303 0ffb41625592
child 3750 f62625418bff
permissions -rw-r--r--
SVGHMI: fix test/projects/svghmi "unspecified" frequency that was actualy specified...
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
2334
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
     8
from functools import partial
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
     9
import wx
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    10
2336
869a61616b42 Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant
parents: 2335
diff changeset
    11
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
    12
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
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):
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
diff changeset
    16
        self.txtctrls = {}
2329
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 [
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
diff changeset
    28
                    (wx.StaticText(self, label=label),
2537
eb4a4cc41914 Fix various pylint and pep8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2492
diff changeset
    29
                     wx.ALIGN_CENTER_VERTICAL),
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
diff changeset
    30
                    (txtctrl, wx.GROW)]:
3303
0ffb41625592 Preliminary support for WxPython 4.1.0. Needs more testing. Grid selection/focus seems broken, and probably many other bugs hidden in dialogs and editors.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2537
diff changeset
    31
                self.fieldsizer.Add(win, flag=flag)
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    32
2334
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    33
        self.fieldsizer.AddSpacer(20)
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    34
2334
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    35
        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
    36
            self.mainsizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=10)
3303
0ffb41625592 Preliminary support for WxPython 4.1.0. Needs more testing. Grid selection/focus seems broken, and probably many other bugs hidden in dialogs and editors.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2537
diff changeset
    37
            self.mainsizer.Add(self.fieldsizer)
2336
869a61616b42 Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant
parents: 2335
diff changeset
    38
            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
    39
                self, parent.ctr,
2335
4262256e1d28 IDManager.py : finished selector mode.
Edouard Tisserant
parents: 2334
diff changeset
    40
                # use a callafter, as editor can be deleted by calling SetURI
4262256e1d28 IDManager.py : finished selector mode.
Edouard Tisserant
parents: 2334
diff changeset
    41
                partial(wx.CallAfter, parent.SetURI),
2537
eb4a4cc41914 Fix various pylint and pep8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2492
diff changeset
    42
                self.txtctrls["ID"].SetValue)
3303
0ffb41625592 Preliminary support for WxPython 4.1.0. Needs more testing. Grid selection/focus seems broken, and probably many other bugs hidden in dialogs and editors.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2537
diff changeset
    43
            self.mainsizer.Add(self.idselector)
2334
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    44
            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
    45
        else:
d1470c052662 Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant
parents: 2329
diff changeset
    46
            self.SetSizer(self.fieldsizer)
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    47
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    48
    def SetFields(self, fields):
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
diff changeset
    49
        for tag, _label in self.model:
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    50
            self.txtctrls[tag].SetValue(fields[tag])
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    51
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
diff changeset
    52
    def GetFields(self):
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2336
diff changeset
    53
        return {tag: self.txtctrls[tag].GetValue() for tag, _label in self.model}