Dialogs.py
changeset 80 c798a68c5560
parent 71 0578bc212c20
child 95 ee66a9a1748b
--- a/Dialogs.py	Thu Aug 23 09:50:35 2007 +0200
+++ b/Dialogs.py	Mon Aug 27 17:37:50 2007 +0200
@@ -296,24 +296,25 @@
         dc = wx.ClientDC(self.Preview)
         dc.Clear()
         item = self.TypeTree.GetSelection()
-        pydata = self.TypeTree.GetPyData(item)
-        if pydata["type"] == CATEGORY:
-            self.Block = None
-        else:
-            blocktype = self.TypeTree.GetItemText(item)
-            if blocktype:
-                self.Block = FBD_Block(self.Preview, blocktype, self.Name.GetValue(), extension = self.Inputs.GetValue(), inputs = pydata["inputs"])
-                width, height = self.MinBlockSize
-                min_width, min_height = self.Block.GetMinSize()
-                width, height = max(min_width, width), max(min_height, height)
-                self.Block.SetSize(width, height)
-                clientsize = self.Preview.GetClientSize()
-                x = (clientsize.width - width) / 2
-                y = (clientsize.height - height) / 2
-                self.Block.SetPosition(x, y)
-                self.Block.Draw(dc)
+        if item.IsOk():
+            pydata = self.TypeTree.GetPyData(item)
+            if pydata["type"] == CATEGORY:
+                self.Block = None
             else:
-                self.Block = None
+                blocktype = self.TypeTree.GetItemText(item)
+                if blocktype:
+                    self.Block = FBD_Block(self.Preview, blocktype, self.Name.GetValue(), extension = self.Inputs.GetValue(), inputs = pydata["inputs"])
+                    width, height = self.MinBlockSize
+                    min_width, min_height = self.Block.GetMinSize()
+                    width, height = max(min_width, width), max(min_height, height)
+                    self.Block.SetSize(width, height)
+                    clientsize = self.Preview.GetClientSize()
+                    x = (clientsize.width - width) / 2
+                    y = (clientsize.height - height) / 2
+                    self.Block.SetPosition(x, y)
+                    self.Block.Draw(dc)
+                else:
+                    self.Block = None
 
     def OnPaint(self, event):
         if self.Block:
@@ -1363,10 +1364,11 @@
 
 [ID_TRANSITIONCONTENTDIALOG, ID_TRANSITIONCONTENTDIALOGSPACER, 
  ID_TRANSITIONCONTENTDIALOGREFERENCE, ID_TRANSITIONCONTENTDIALOGINLINE, 
- ID_TRANSITIONCONTENTDIALOGPREVIEW, ID_TRANSITIONCONTENTDIALOGRADIOBUTTON1, 
- ID_TRANSITIONCONTENTDIALOGRADIOBUTTON2, ID_TRANSITIONCONTENTDIALOGRADIOBUTTON3, 
- ID_TRANSITIONCONTENTDIALOGSTATICTEXT1, ID_TRANSITIONCONTENTDIALOGSTATICTEXT2, 
-] = [wx.NewId() for _init_ctrls in range(10)]
+ ID_TRANSITIONCONTENTDIALOGPRIORITY, ID_TRANSITIONCONTENTDIALOGPREVIEW, 
+ ID_TRANSITIONCONTENTDIALOGRADIOBUTTON1, ID_TRANSITIONCONTENTDIALOGRADIOBUTTON2, 
+ ID_TRANSITIONCONTENTDIALOGRADIOBUTTON3, ID_TRANSITIONCONTENTDIALOGSTATICTEXT1, 
+ ID_TRANSITIONCONTENTDIALOGSTATICTEXT2, ID_TRANSITIONCONTENTDIALOGSTATICTEXT3, 
+] = [wx.NewId() for _init_ctrls in range(12)]
 
 class TransitionContentDialog(wx.Dialog):
     def _init_coll_flexGridSizer1_Items(self, parent):
@@ -1388,6 +1390,8 @@
         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):
@@ -1405,7 +1409,7 @@
     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=7, vgap=5)
+        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)
@@ -1421,9 +1425,9 @@
     def _init_ctrls(self, prnt):
         wx.Dialog.__init__(self, id=ID_TRANSITIONCONTENTDIALOG,
               name='ProjectDialog', parent=prnt, pos=wx.Point(376, 223),
-              size=wx.Size(350, 260), style=wx.DEFAULT_DIALOG_STYLE,
+              size=wx.Size(350, 300), style=wx.DEFAULT_DIALOG_STYLE,
               title='Edit transition')
-        self.SetClientSize(wx.Size(350, 260))
+        self.SetClientSize(wx.Size(350, 300))
 
         self.staticText1 = wx.StaticText(id=ID_TRANSITIONCONTENTDIALOGSTATICTEXT1,
               label='Type:', name='staticText1', parent=self,
@@ -1433,6 +1437,10 @@
               label='Preview:', name='staticText2', parent=self,
               pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
 
+        self.staticText3 = wx.StaticText(id=ID_TRANSITIONCONTENTDIALOGSTATICTEXT3,
+              label='Priority:', name='staticText3', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0)
+        
         self.radioButton1 = wx.RadioButton(id=ID_TRANSITIONCONTENTDIALOGRADIOBUTTON1,
               label='Reference', name='radioButton1', parent=self,
               pos=wx.Point(0, 0), size=wx.Size(0, 24), style=0)
@@ -1463,6 +1471,11 @@
         if not self.Connection:
             self.radioButton3.Hide()
 
+        self.Priority = wx.SpinCtrl(id=ID_TRANSITIONCONTENTDIALOGPRIORITY,
+              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_TRANSITIONCONTENTDIALOGPRIORITY)
+
         self.Preview = wx.Panel(id=ID_TRANSITIONCONTENTDIALOGPREVIEW,
               name='Preview', parent=self, pos=wx.Point(0, 0),
               size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER)
@@ -1541,6 +1554,11 @@
         self.RefreshPreview()
         event.Skip()
 
+    def OnPriorityChanged(self, event):
+        self.Element.SetPriority(int(self.Priority.GetValue()))
+        self.RefreshPreview()
+        event.Skip()
+
     def SetTransitions(self, transitions):
         self.Reference.Append("")
         for transition in transitions:
@@ -1570,10 +1588,11 @@
             self.Reference.Enable(False)
             self.Inline.Enable(False)
             self.Element.SetType("connection")
+        self.Element.SetPriority(values["priority"])
         self.RefreshPreview()
         
     def GetValues(self):
-        values = {}
+        values = {"priority" : int(self.Priority.GetValue())}
         if self.radioButton1.GetValue():
             values["type"] = "reference"
             values["value"] = self.Reference.GetStringSelection()