editors/ConfTreeNodeEditor.py
branch#2476
changeset 2001 bcbd41efd846
parent 1991 34a9287b6c7d
child 2182 eeca1aff0691
--- a/editors/ConfTreeNodeEditor.py	Thu Apr 19 09:50:00 2018 +0200
+++ b/editors/ConfTreeNodeEditor.py	Fri Apr 20 11:21:20 2018 +0200
@@ -33,7 +33,7 @@
 
 from IDEFrame import TITLE, FILEMENU, PROJECTTREE, PAGETITLES
 
-from controls import TextCtrlAutoComplete
+from controls import TextCtrlAutoComplete, UriLocationEditor
 from dialogs import BrowseValuesLibraryDialog
 from util.BitmapLibrary import GetBitmap
 
@@ -338,6 +338,28 @@
                 msizer.AddWindow(button, flag=wx.ALIGN_CENTER)
         return msizer
 
+    def UriOptions(self, event):
+        CTR = self.ParentWindow.CTR
+        CTR_BeremizRoot = CTR.BeremizRoot
+        CTR_AppFrame = CTR.AppFrame
+
+        # Get connector uri
+        uri = CTR_BeremizRoot.getURI_location().strip()
+        dialog = UriLocationEditor.UriLocationEditor(CTR_AppFrame, uri)
+
+        if dialog.ShowModal() == wx.ID_OK:
+            CTR_BeremizRoot.setURI_location(dialog.GetURI())
+            if CTR._View is not None:
+                CTR._View.RefreshView()
+            if CTR_AppFrame is not None:
+                CTR_AppFrame.RefreshTitle()
+                CTR_AppFrame.RefreshFileMenu()
+                CTR_AppFrame.RefreshEditMenu()
+                CTR_AppFrame.RefreshPageTitles()
+
+        dialog.Destroy()
+
+
     def GenerateSizerElements(self, sizer, elements, path, clean=True):
         if clean:
             sizer.Clear(True)
@@ -484,7 +506,21 @@
                                                         element_path=element_path,
                                                         size=wx.Size(300, -1))
 
-                        boxsizer.AddWindow(textctrl)
+                        if element_infos["name"] == "URI_location":
+                            uriSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
+                            uriSizer.AddGrowableCol(0)
+                            uriSizer.AddGrowableRow(0)
+
+                            self.EditButton = wx.Button(self.ParamsEditor, label='...', size=wx.Size(30, -1))
+                            self.Bind(wx.EVT_BUTTON, self.UriOptions, self.EditButton)
+
+                            uriSizer.AddWindow(textctrl, flag=wx.GROW)
+                            uriSizer.AddWindow(self.EditButton, flag=wx.GROW)
+
+                            boxsizer.AddWindow(uriSizer)
+                        else:
+                            boxsizer.AddWindow(textctrl)
+
                         if element_infos["value"] is not None:
                             textctrl.ChangeValue(str(element_infos["value"]))
                         callback = self.GetTextCtrlCallBackFunction(textctrl, element_path)