author | Edouard Tisserant |
Thu, 08 Nov 2018 11:14:06 +0100 | |
changeset 2330 | 8c18b1a3e2bf |
parent 2329 | controls/UriLocationEditor.py@e5703dc8848e |
child 2331 | 91ae5a11a462 |
permissions | -rw-r--r-- |
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
1 |
from __future__ import absolute_import |
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
2 |
|
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
3 |
import wx |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
4 |
from connectors import ConnectorSchemes, EditorClassFromScheme |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
5 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
6 |
|
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
7 |
[ID_URIWIZARDDIALOG, ID_URITYPECHOICE] = [wx.NewId() for _init_ctrls in range(2)] |
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
8 |
|
2330
8c18b1a3e2bf
URI Editor Dialog : moved it to /dialog, and fixed naming.
Edouard Tisserant
parents:
2329
diff
changeset
|
9 |
class UriEditor(wx.Dialog): |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
10 |
def _init_ctrls(self, parent): |
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
11 |
self.UriTypeChoice = wx.Choice(parent=self, id=ID_URIWIZARDDIALOG, choices=self.URITYPES) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
12 |
self.UriTypeChoice.SetSelection(0) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
13 |
self.Bind(wx.EVT_CHOICE, self.OnTypeChoice, self.UriTypeChoice) |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
14 |
self.editor_sizer = wx.BoxSizer(wx.HORIZONTAL) |
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
15 |
self.ButtonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
16 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
17 |
def _init_sizers(self): |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
18 |
self.mainSizer = wx.BoxSizer(wx.VERTICAL) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
19 |
typeSizer = wx.BoxSizer(wx.HORIZONTAL) |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
20 |
typeSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Scheme :")), border=5, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
21 |
typeSizer.Add(self.UriTypeChoice, border=5, flag=wx.ALL) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
22 |
self.mainSizer.Add(typeSizer) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
23 |
|
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
24 |
self.mainSizer.Add(self.editor_sizer, border=5, flag=wx.ALL) |
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
25 |
self.mainSizer.Add(self.ButtonSizer, border=5, flag=wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
26 |
self.SetSizer(self.mainSizer) |
2176
748017ca4151
Autoresize UriLocationEditor dialog window
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2007
diff
changeset
|
27 |
self.Layout() |
748017ca4151
Autoresize UriLocationEditor dialog window
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2007
diff
changeset
|
28 |
self.Fit() |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
29 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
30 |
def __init__(self, parent, uri): |
2182
eeca1aff0691
Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2179
diff
changeset
|
31 |
wx.Dialog.__init__(self, id=ID_URIWIZARDDIALOG, |
2330
8c18b1a3e2bf
URI Editor Dialog : moved it to /dialog, and fixed naming.
Edouard Tisserant
parents:
2329
diff
changeset
|
32 |
name='UriEditor', parent=parent, |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
33 |
title=_('URI Editor')) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
34 |
self.URITYPES = [_("- Select URI Scheme -")] + ConnectorSchemes() |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
35 |
self._init_ctrls(parent) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
36 |
self._init_sizers() |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
37 |
self.scheme = None |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
38 |
self.scheme_editor = None |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
39 |
self.SetURI(uri) |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
40 |
self.CenterOnParent() |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
41 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
42 |
def OnTypeChoice(self, event): |
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
43 |
index = event.GetSelection() |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
44 |
self._replaceSchemeEditor(event.GetString() if index > 0 else None) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
45 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
46 |
def SetURI(self, uri): |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
47 |
try: |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
48 |
scheme, loc = uri.strip().split("://",1) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
49 |
except: |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
50 |
return None |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
51 |
scheme = scheme.upper() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
52 |
if scheme in ConnectorSchemes(): |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
53 |
self.UriTypeChoice.SetStringSelection(scheme) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
54 |
self._replaceSchemeEditor(scheme) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
55 |
self.scheme_editor.SetLoc(loc) |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
56 |
|
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
57 |
def GetURI(self): |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
58 |
if self.scheme_editor is None: |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
59 |
return None |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
60 |
else: |
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
61 |
return self.scheme+"://"+self.scheme_editor.GetLoc() |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
62 |
|
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
63 |
def _replaceSchemeEditor(self, scheme): |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
64 |
self.scheme = scheme |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
65 |
|
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
66 |
if self.scheme_editor is not None: |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
67 |
self.editor_sizer.Detach(self.scheme_editor) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
68 |
self.scheme_editor.Destroy() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
69 |
self.scheme_editor = None |
2001
bcbd41efd846
#2476 Added uri location editor, getting connectors from list in Beremiz.
dporopat <denis.poropat@smarteh.si>
parents:
diff
changeset
|
70 |
|
2329
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
71 |
EditorClass = EditorClassFromScheme(scheme) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
72 |
if EditorClass is not None: |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
73 |
self.scheme_editor = EditorClass(scheme,self) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
74 |
self.editor_sizer.Add(self.scheme_editor) |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
75 |
self.scheme_editor.Refresh() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
76 |
self.editor_sizer.Layout() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
77 |
self.mainSizer.Layout() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
78 |
self.Fit() |
e5703dc8848e
URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents:
2182
diff
changeset
|
79 |