Dialogs.py
changeset 355 a9046671e0ce
parent 336 80934ef1b1cd
child 391 07447ee3538e
equal deleted inserted replaced
354:20ccf1e5266e 355:a9046671e0ce
   518               size=wx.Size(0, 28), style=wx.CB_READONLY)
   518               size=wx.Size(0, 28), style=wx.CB_READONLY)
   519         self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, id=ID_VARIABLEPROPERTIESDIALOGCLASS)
   519         self.Bind(wx.EVT_COMBOBOX, self.OnClassChanged, id=ID_VARIABLEPROPERTIESDIALOGCLASS)
   520         
   520         
   521         self.VariableName = wx.ListBox(id=ID_VARIABLEPROPERTIESDIALOGNAME,
   521         self.VariableName = wx.ListBox(id=ID_VARIABLEPROPERTIESDIALOGNAME,
   522               name='Name', parent=self, pos=wx.Point(0, 0),
   522               name='Name', parent=self, pos=wx.Point(0, 0),
   523               size=wx.Size(0, 90), style=wx.LB_SINGLE)
   523               size=wx.Size(0, 90), style=wx.LB_SINGLE|wx.LB_SORT)
   524         self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, id=ID_VARIABLEPROPERTIESDIALOGNAME)
   524         self.Bind(wx.EVT_LISTBOX, self.OnNameChanged, id=ID_VARIABLEPROPERTIESDIALOGNAME)
   525 
   525 
   526         self.Expression = wx.TextCtrl(id=ID_VARIABLEPROPERTIESDIALOGEXPRESSION,
   526         self.Expression = wx.TextCtrl(id=ID_VARIABLEPROPERTIESDIALOGEXPRESSION,
   527               name='Expression', parent=self, pos=wx.Point(0, 0),
   527               name='Expression', parent=self, pos=wx.Point(0, 0),
   528               size=wx.Size(0, 24), style=0)
   528               size=wx.Size(0, 24), style=0)
   573     def RefreshNameList(self):
   573     def RefreshNameList(self):
   574         selected = self.VariableName.GetStringSelection()
   574         selected = self.VariableName.GetStringSelection()
   575         self.VariableName.Clear()
   575         self.VariableName.Clear()
   576         self.VariableName.Append("")
   576         self.VariableName.Append("")
   577         for name, var_type, value_type in self.VarList:
   577         for name, var_type, value_type in self.VarList:
   578             if var_type in ["Local","Temp","Global","External"]:
   578             if var_type != "Input" or self.Class.GetStringSelection() == "Input":
   579                 self.VariableName.Append(name)
   579                 self.VariableName.Append(name)
   580             elif var_type == "Input" and self.Class.GetStringSelection() == "Input":
   580         if selected != "" and self.VariableName.FindString(selected) != wx.NOT_FOUND:
   581                 self.VariableName.Append(name)
       
   582             elif var_type == "Output" and self.Class.GetStringSelection() == "Output":
       
   583                 if self.Transition == "" or name == self.Transition:
       
   584                     self.VariableName.Append(name)
       
   585             elif var_type == "InOut" and self.Class.GetStringSelection() == "InOut":
       
   586                 if self.Transition == "" or name == self.Transition:
       
   587                     self.VariableName.Append(name)
       
   588         if self.VariableName.FindString(selected) != wx.NOT_FOUND:
       
   589             self.VariableName.SetStringSelection(selected)
   581             self.VariableName.SetStringSelection(selected)
       
   582             self.Expression.Enable(False)
   590         else:
   583         else:
   591             self.VariableName.SetStringSelection("")
   584             self.VariableName.SetStringSelection("")
       
   585             self.Expression.Enable(self.Class.GetStringSelection() == "Input")
   592         self.VariableName.Enable(self.VariableName.GetCount() > 0)
   586         self.VariableName.Enable(self.VariableName.GetCount() > 0)
   593             
   587             
   594     def SetMinVariableSize(self, size):
   588     def SetMinVariableSize(self, size):
   595         self.MinVariableSize = size
   589         self.MinVariableSize = size
   596 
   590 
   647         if self.Expression.IsEnabled():
   641         if self.Expression.IsEnabled():
   648             value = expression
   642             value = expression
   649         else:
   643         else:
   650             value = self.VariableName.GetStringSelection()
   644             value = self.VariableName.GetStringSelection()
   651         if value == "":
   645         if value == "":
   652             message = wx.MessageDialog(self, "At least a variable or aa expression must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   646             message = wx.MessageDialog(self, "At least a variable or an expression must be selected!", "Error", wx.OK|wx.ICON_ERROR)
   653             message.ShowModal()
   647             message.ShowModal()
   654             message.Destroy()
   648             message.Destroy()
   655         elif value.upper() in IEC_KEYWORDS:
   649         elif value.upper() in IEC_KEYWORDS:
   656             message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wx.OK|wx.ICON_ERROR)
   650             message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wx.OK|wx.ICON_ERROR)
   657             message.ShowModal()
   651             message.ShowModal()
   659         else:
   653         else:
   660             self.EndModal(wx.ID_OK)
   654             self.EndModal(wx.ID_OK)
   661 
   655 
   662     def OnClassChanged(self, event):
   656     def OnClassChanged(self, event):
   663         self.RefreshNameList()
   657         self.RefreshNameList()
   664         if self.Class.GetStringSelection() == "Input":
       
   665             self.Expression.Enable(True)
       
   666         else:
       
   667             self.Expression.Enable(False)
       
   668         self.RefreshPreview()
   658         self.RefreshPreview()
   669         event.Skip()
   659         event.Skip()
   670 
   660 
   671     def OnNameChanged(self, event):
   661     def OnNameChanged(self, event):
   672         if self.VariableName.GetStringSelection() != "":
   662         if self.VariableName.GetStringSelection() != "":