dialogs/SFCTransitionDialog.py
changeset 714 131ea7f237b9
parent 577 9dbb79722fbc
--- a/dialogs/SFCTransitionDialog.py	Fri Jun 15 18:03:25 2012 +0200
+++ b/dialogs/SFCTransitionDialog.py	Mon Jun 25 20:03:53 2012 +0200
@@ -29,161 +29,97 @@
 #                          Edit Transition Content Dialog
 #-------------------------------------------------------------------------------
 
-[ID_SFCTRANSITIONDIALOG, ID_SFCTRANSITIONDIALOGSPACER, 
- ID_SFCTRANSITIONDIALOGREFERENCE, ID_SFCTRANSITIONDIALOGINLINE, 
- ID_SFCTRANSITIONDIALOGPRIORITY, ID_SFCTRANSITIONDIALOGPREVIEW, 
- ID_SFCTRANSITIONDIALOGRADIOBUTTON1, ID_SFCTRANSITIONDIALOGRADIOBUTTON2, 
- ID_SFCTRANSITIONDIALOGRADIOBUTTON3, ID_SFCTRANSITIONDIALOGSTATICTEXT1, 
- ID_SFCTRANSITIONDIALOGSTATICTEXT2, ID_SFCTRANSITIONDIALOGSTATICTEXT3, 
-] = [wx.NewId() for _init_ctrls in range(12)]
-
 class SFCTransitionDialog(wx.Dialog):
     
-    if wx.VERSION < (2, 6, 0):
-        def Bind(self, event, function, id = None):
-            if id is not None:
-                event(self, id, function)
-            else:
-                event(self, function)
-    
-    def _init_coll_flexGridSizer1_Items(self, parent):
-        parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
-        parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
-        
-    def _init_coll_flexGridSizer1_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(0)
-    
-    def _init_coll_MainSizer_Items(self, parent):
-        parent.AddSizer(self.LeftGridSizer, 1, border=5, flag=wx.GROW|wx.RIGHT)
-        parent.AddSizer(self.RightGridSizer, 1, border=5, flag=wx.GROW|wx.LEFT)
-    
-    def _init_coll_LeftGridSizer_Items(self, parent):
-        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.radioButton1, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.Reference, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.radioButton2, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.Inline, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.radioButton3, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.Priority, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.Spacer, 0, border=0, flag=wx.GROW)
-    
-    def _init_coll_LeftGridSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(6)
-            
-    def _init_coll_RightGridSizer_Items(self, parent):
-        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
-        parent.AddWindow(self.Preview, 0, border=0, flag=wx.GROW)
-        
-    def _init_coll_RightGridSizer_Growables(self, parent):
-        parent.AddGrowableCol(0)
-        parent.AddGrowableRow(1)
-
-    def _init_sizers(self):
-        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
-        self.MainSizer = wx.BoxSizer(wx.HORIZONTAL)
-        self.LeftGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=9, vgap=5)
-        self.RightGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
-
-        self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-        self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
-        self._init_coll_MainSizer_Items(self.MainSizer)
-        self._init_coll_LeftGridSizer_Items(self.LeftGridSizer)
-        self._init_coll_LeftGridSizer_Growables(self.LeftGridSizer)
-        self._init_coll_RightGridSizer_Items(self.RightGridSizer)
-        self._init_coll_RightGridSizer_Growables(self.RightGridSizer)
-
-        self.SetSizer(self.flexGridSizer1)
-
-    def _init_ctrls(self, prnt, ctrler):
-        wx.Dialog.__init__(self, id=ID_SFCTRANSITIONDIALOG,
-              name='SFCTransitionDialog', parent=prnt,
-              size=wx.Size(350, 300), style=wx.DEFAULT_DIALOG_STYLE,
-              title=_('Edit transition'))
-        self.SetClientSize(wx.Size(350, 300))
-
-        self.staticText1 = wx.StaticText(id=ID_SFCTRANSITIONDIALOGSTATICTEXT1,
-              label=_('Type:'), name='staticText1', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
-
-        self.staticText2 = wx.StaticText(id=ID_SFCTRANSITIONDIALOGSTATICTEXT2,
-              label=_('Preview:'), name='staticText2', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
-
-        self.staticText3 = wx.StaticText(id=ID_SFCTRANSITIONDIALOGSTATICTEXT3,
-              label=_('Priority:'), name='staticText3', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
-        
-        self.radioButton1 = wx.RadioButton(id=ID_SFCTRANSITIONDIALOGRADIOBUTTON1,
-              label=_('Reference'), name='radioButton1', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 24), style=wx.RB_GROUP)
-        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, id=ID_SFCTRANSITIONDIALOGRADIOBUTTON1)
-        self.radioButton1.SetValue(True)
-
-        self.Reference = wx.ComboBox(id=ID_SFCTRANSITIONDIALOGREFERENCE,
-              name='Reference', parent=self, pos=wx.Point(0, 0), 
-              size=wx.Size(0, 28), style=wx.CB_READONLY)
-        self.Bind(wx.EVT_COMBOBOX, self.OnReferenceChanged, id=ID_SFCTRANSITIONDIALOGREFERENCE)
-
-        self.radioButton2 = wx.RadioButton(id=ID_SFCTRANSITIONDIALOGRADIOBUTTON2,
-              label=_('Inline'), name='radioButton2', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 24), style=0)
-        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, id=ID_SFCTRANSITIONDIALOGRADIOBUTTON2)
-        self.radioButton2.SetValue(False)
-
-        self.Inline = wx.TextCtrl(id=ID_SFCTRANSITIONDIALOGINLINE,
-              name='Inline', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=0)
-        self.Bind(wx.EVT_TEXT, self.OnInlineChanged, id=ID_SFCTRANSITIONDIALOGINLINE)
+    def __init__(self, parent, controller, connection):
+        self.Connection = connection
+        
+        wx.Dialog.__init__(self, parent, 
+              size=wx.Size(350, 300), title=_('Edit transition'))
+        
+        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        main_sizer.AddGrowableCol(0)
+        main_sizer.AddGrowableRow(0)
+        
+        column_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        main_sizer.AddSizer(column_sizer, border=20, 
+              flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        
+        left_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=8, vgap=5)
+        left_gridsizer.AddGrowableCol(0)
+        column_sizer.AddSizer(left_gridsizer, 1, border=5, 
+                              flag=wx.GROW|wx.RIGHT)
+        
+        type_label = wx.StaticText(self, label=_('Type:'))
+        left_gridsizer.AddWindow(type_label, flag=wx.GROW)
+        
+        self.ReferenceRadioButton = wx.RadioButton(self,
+              label=_('Reference'), style=wx.RB_GROUP)
+        self.ReferenceRadioButton.SetValue(True)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, self.ReferenceRadioButton)
+        left_gridsizer.AddWindow(self.ReferenceRadioButton, flag=wx.GROW)
+        
+        self.Reference = wx.ComboBox(self, style=wx.CB_READONLY)
+        self.Bind(wx.EVT_COMBOBOX, self.OnReferenceChanged, self.Reference)
+        left_gridsizer.AddWindow(self.Reference, flag=wx.GROW)
+        
+        self.InlineRadioButton = wx.RadioButton(self, label=_('Inline'))
+        self.InlineRadioButton.SetValue(False)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, self.InlineRadioButton)
+        left_gridsizer.AddWindow(self.InlineRadioButton, flag=wx.GROW)
+        
+        self.Inline = wx.TextCtrl(self)
         self.Inline.Enable(False)
-        
-        self.radioButton3 = wx.RadioButton(id=ID_SFCTRANSITIONDIALOGRADIOBUTTON3,
-              label=_('Connection'), name='radioButton3', parent=self,
-              pos=wx.Point(0, 0), size=wx.Size(0, 24), style=0)
-        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, id=ID_SFCTRANSITIONDIALOGRADIOBUTTON3)
-        self.radioButton3.SetValue(False)
+        self.Bind(wx.EVT_TEXT, self.OnInlineChanged, self.Inline)
+        left_gridsizer.AddWindow(self.Inline, flag=wx.GROW)
+        
+        self.ConnectionRadioButton = wx.RadioButton(self, label=_('Connection'))
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, self.ConnectionRadioButton)
+        self.ConnectionRadioButton.SetValue(False)
         if not self.Connection:
-            self.radioButton3.Hide()
-
-        self.Priority = wx.SpinCtrl(id=ID_SFCTRANSITIONDIALOGPRIORITY,
-              name='Priority', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(0, 24), style=wx.SP_ARROW_KEYS, min=0)
-        self.Bind(wx.EVT_TEXT, self.OnPriorityChanged, id=ID_SFCTRANSITIONDIALOGPRIORITY)
-
-        self.Preview = wx.Panel(id=ID_SFCTRANSITIONDIALOGPREVIEW,
-              name='Preview', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER)
+            self.ConnectionRadioButton.Hide()
+        left_gridsizer.AddWindow(self.ConnectionRadioButton, flag=wx.GROW)
+        
+        priority_label = wx.StaticText(self, label=_('Priority:'))
+        left_gridsizer.AddWindow(priority_label, flag=wx.GROW)
+        
+        self.Priority = wx.SpinCtrl(self, min=0, style=wx.SP_ARROW_KEYS)
+        self.Bind(wx.EVT_TEXT, self.OnPriorityChanged, self.Priority)
+        left_gridsizer.AddWindow(self.Priority, flag=wx.GROW)
+        
+        right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
+        right_gridsizer.AddGrowableCol(0)
+        right_gridsizer.AddGrowableRow(1)
+        column_sizer.AddSizer(right_gridsizer, 1, border=5, 
+              flag=wx.GROW|wx.LEFT)
+        
+        preview_label = wx.StaticText(self, label=_('Preview:'))
+        right_gridsizer.AddWindow(preview_label, flag=wx.GROW)
+        
+        self.Preview = wx.Panel(self, 
+              style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER)
         self.Preview.SetBackgroundColour(wx.Colour(255,255,255))
         setattr(self.Preview, "GetDrawingMode", lambda:FREEDRAWING_MODE)
         setattr(self.Preview, "RefreshTransitionModel", lambda x:None)
         setattr(self.Preview, "GetScaling", lambda:None)
-        setattr(self.Preview, "IsOfType", ctrler.IsOfType)
-
-        self.Spacer = wx.Panel(id=ID_SFCTRANSITIONDIALOGSPACER,
-              name='Spacer', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
-
-        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
-        if wx.VERSION >= (2, 5, 0):
-            self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
-            self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)
-        else:
-            self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetChildren()[0].GetSizer().GetChildren()[0].GetWindow().GetId())
-            wx.EVT_PAINT(self.Preview, self.OnPaint)
-        
-        self._init_sizers()
-
-    def __init__(self, parent, controler, connection):
-        self.Connection = connection
-        self._init_ctrls(parent, controler)
+        setattr(self.Preview, "IsOfType", controller.IsOfType)
+        self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)
+        right_gridsizer.AddWindow(self.Preview, flag=wx.GROW)
+        
+        button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, 
+              button_sizer.GetAffirmativeButton())
+        main_sizer.AddSizer(button_sizer, border=20, 
+              flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+        self.SetSizer(main_sizer)
+        
         self.Transition = None
         self.MinTransitionSize = None
         
         self.Element = SFC_Transition(self.Preview)
         
-        self.radioButton1.SetFocus()
+        self.ReferenceRadioButton.SetFocus()
     
     def SetPreviewFont(self, font):
         self.Preview.SetFont(font)
@@ -195,9 +131,9 @@
     
     def OnOK(self, event):
         error = []
-        if self.radioButton1.GetValue() and self.Reference.GetStringSelection() == "":
+        if self.ReferenceRadioButton.GetValue() and self.Reference.GetStringSelection() == "":
             error.append(_("Reference"))
-        if self.radioButton2.GetValue() and self.Inline.GetValue() == "":
+        if self.InlineRadioButton.GetValue() and self.Inline.GetValue() == "":
             error.append(_("Inline"))
         if len(error) > 0:
             text = ""
@@ -208,18 +144,18 @@
                     text += _(" and %s")%item
                 else:
                     text += _(", %s")%item 
-            message = wx.MessageDialog(self, _("Form isn't complete. %s must be filled!")%text, _("Error"), wx.OK|wx.ICON_ERROR)
-            message.ShowModal()
-            message.Destroy()
+            dialog = wx.MessageDialog(self, _("Form isn't complete. %s must be filled!")%text, _("Error"), wx.OK|wx.ICON_ERROR)
+            dialog.ShowModal()
+            dialog.Destroy()
         else:
             self.EndModal(wx.ID_OK)
 
     def OnTypeChanged(self, event):
-        if self.radioButton1.GetValue():
+        if self.ReferenceRadioButton.GetValue():
             self.Element.SetType("reference", self.Reference.GetStringSelection())
             self.Reference.Enable(True)
             self.Inline.Enable(False)
-        elif self.radioButton2.GetValue():
+        elif self.InlineRadioButton.GetValue():
             self.Element.SetType("inline", self.Inline.GetValue())
             self.Reference.Enable(False)
             self.Inline.Enable(True)
@@ -252,25 +188,25 @@
 
     def SetValues(self, values):
         if values["type"] == "reference":
-            self.radioButton1.SetValue(True)
-            self.radioButton2.SetValue(False)
-            self.radioButton3.SetValue(False)
+            self.ReferenceRadioButton.SetValue(True)
+            self.InlineRadioButton.SetValue(False)
+            self.ConnectionRadioButton.SetValue(False)
             self.Reference.Enable(True)
             self.Inline.Enable(False)
             self.Reference.SetStringSelection(values["value"])
             self.Element.SetType("reference", values["value"])
         elif values["type"] == "inline":
-            self.radioButton1.SetValue(False)
-            self.radioButton2.SetValue(True)
-            self.radioButton3.SetValue(False)
+            self.ReferenceRadioButton.SetValue(False)
+            self.InlineRadioButton.SetValue(True)
+            self.ConnectionRadioButton.SetValue(False)
             self.Reference.Enable(False)
             self.Inline.Enable(True)
             self.Inline.SetValue(values["value"])
             self.Element.SetType("inline", values["value"])
         elif values["type"] == "connection" and self.Connection:
-            self.radioButton1.SetValue(False)
-            self.radioButton2.SetValue(False)
-            self.radioButton3.SetValue(True)
+            self.ReferenceRadioButton.SetValue(False)
+            self.InlineRadioButton.SetValue(False)
+            self.ConnectionRadioButton.SetValue(True)
             self.Reference.Enable(False)
             self.Inline.Enable(False)
             self.Element.SetType("connection")
@@ -280,10 +216,10 @@
         
     def GetValues(self):
         values = {"priority" : int(self.Priority.GetValue())}
-        if self.radioButton1.GetValue():
+        if self.ReferenceRadioButton.GetValue():
             values["type"] = "reference"
             values["value"] = self.Reference.GetStringSelection()
-        elif self.radioButton2.GetValue():
+        elif self.InlineRadioButton.GetValue():
             values["type"] = "inline"
             values["value"] = self.Inline.GetValue()
         else: