TextViewer.py
changeset 523 99ba2e3949ed
parent 485 d5ebb8eac934
child 543 2f660878c2a7
equal deleted inserted replaced
521:457578c31074 523:99ba2e3949ed
   215             values = eval(event.GetDragText())
   215             values = eval(event.GetDragText())
   216         except:
   216         except:
   217             values = event.GetDragText()
   217             values = event.GetDragText()
   218         if isinstance(values, tuple):
   218         if isinstance(values, tuple):
   219             message = None
   219             message = None
   220             if values[1] in ["functionBlock", "program", "debug"]:
   220             if values[1] in ["program", "debug"]:
   221                 event.SetDragText("")
   221                 event.SetDragText("")
   222             elif values[1] == "function":
   222             elif values[1] in ["functionBlock", "function"]:
   223                 event.SetDragText(values[0])
   223                 blockname = values[2]
       
   224                 if len(values) > 3:
       
   225                     blockinputs = values[3]
       
   226                 else:
       
   227                     blockinputs = None
       
   228                 if values[1] != "function": 
       
   229                     if  blockname == "":
       
   230                         dialog = wx.TextEntryDialog(self.ParentWindow, "Block name", "Please enter a block name", "", wx.OK|wx.CANCEL|wx.CENTRE)
       
   231                         if dialog.ShowModal() == wx.ID_OK:
       
   232                             blockname = dialog.GetValue()
       
   233                         else:
       
   234                             return
       
   235                         dialog.Destroy()
       
   236                     if blockname.upper() in [name.upper() for name in self.Controler.GetProjectPouNames(self.Debug)]:
       
   237                         message = _("\"%s\" pou already exists!")%blockname
       
   238                     elif blockname.upper() in [name.upper() for name in self.Controler.GetEditedElementVariables(self.TagName, self.Debug)]:
       
   239                         message = _("\"%s\" element for this pou already exists!")%blockname
       
   240                     else:
       
   241                         self.Controler.AddEditedElementPouVar(self.TagName, values[0], blockname)
       
   242                         self.ParentWindow.RefreshVariablePanel(self.TagName)
       
   243                         self.RefreshVariableTree()
       
   244                 blockinfo = self.Controler.GetBlockType(values[0], blockinputs, self.Debug)
       
   245                 hint = ',\n    '.join(
       
   246                             [ " " + fctdecl[0]+" := (*"+fctdecl[1]+"*)" for fctdecl in blockinfo["inputs"]] +
       
   247                             [ " " + fctdecl[0]+" => (*"+fctdecl[1]+"*)" for fctdecl in blockinfo["outputs"]])
       
   248                 event.SetDragText(blockname+"(\n    "+hint+")")
   224             elif values[1] == "location":
   249             elif values[1] == "location":
   225                 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   250                 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   226                 if len(values) > 2 and pou_type == "program":
   251                 if len(values) > 2 and pou_type == "program":
   227                     var_name = values[3]
   252                     var_name = values[3]
   228                     if var_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames(self.Debug)]:
   253                     if var_name.upper() in [name.upper() for name in self.Controler.GetProjectPouNames(self.Debug)]: