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() != "": |