dialogs/FBDBlockDialog.py
changeset 1250 7e6de17c687a
parent 1244 336d515096b1
child 1327 632780979432
--- a/dialogs/FBDBlockDialog.py	Wed Jun 12 09:36:59 2013 +0200
+++ b/dialogs/FBDBlockDialog.py	Wed Jun 12 11:01:27 2013 +0200
@@ -58,21 +58,13 @@
         BlockPreviewDialog.__init__(self, parent, controller, tagname,
               size=wx.Size(600, 450), title=_('Block Properties'))
         
-        # Create dialog main sizer
-        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=4, vgap=10)
-        main_sizer.AddGrowableCol(0)
-        main_sizer.AddGrowableRow(0)
-        
-        # Create a sizer for dividing FBD block parameters in two columns
-        column_sizer = wx.BoxSizer(wx.HORIZONTAL)
-        main_sizer.AddSizer(column_sizer, border=20, 
-              flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        # Init common sizers
+        self._init_sizers(2, 0, 1, 0, 3, 2)
         
         # Create static box around library panel
         type_staticbox = wx.StaticBox(self, label=_('Type:'))
         left_staticboxsizer = wx.StaticBoxSizer(type_staticbox, wx.VERTICAL)
-        column_sizer.AddSizer(left_staticboxsizer, 1, border=5, 
-              flag=wx.GROW|wx.RIGHT)
+        self.LeftGridSizer.AddSizer(left_staticboxsizer, border=5, flag=wx.GROW)
         
         # Create Library panel and add it to static box
         self.LibraryPanel = LibraryPanel(self)
@@ -82,17 +74,10 @@
         left_staticboxsizer.AddWindow(self.LibraryPanel, 1, border=5, 
               flag=wx.GROW|wx.TOP)
         
-        # Create sizer for other block parameters and preview panle
-        right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=5)
-        right_gridsizer.AddGrowableCol(0)
-        right_gridsizer.AddGrowableRow(2)
-        column_sizer.AddSizer(right_gridsizer, 1, border=5, 
-              flag=wx.GROW|wx.LEFT)
-        
         # Create sizer for other block parameters
         top_right_gridsizer = wx.FlexGridSizer(cols=2, hgap=0, rows=4, vgap=5)
         top_right_gridsizer.AddGrowableCol(1)
-        right_gridsizer.AddSizer(top_right_gridsizer, flag=wx.GROW)
+        self.RightGridSizer.AddSizer(top_right_gridsizer, flag=wx.GROW)
         
         # Create label for block name
         name_label = wx.StaticText(self, label=_('Name:'))
@@ -140,15 +125,13 @@
         top_right_gridsizer.AddWindow(self.ExecutionControl, flag=wx.GROW)
         
         # Add preview panel and associated label to sizers
-        right_gridsizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
-        right_gridsizer.AddWindow(self.Preview, flag=wx.GROW)
+        self.RightGridSizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
+        self.RightGridSizer.AddWindow(self.Preview, flag=wx.GROW)
         
         # Add buttons sizer to sizers
-        main_sizer.AddSizer(self.ButtonSizer, border=20, 
+        self.MainSizer.AddSizer(self.ButtonSizer, border=20, 
               flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
         
-        self.SetSizer(main_sizer)
-        
         # Dictionary containing correspondence between parameter exchanged and
         # control to fill with parameter value
         self.ParamsControl = {
@@ -169,38 +152,6 @@
         self.LibraryPanel.SetBlockList(controller.GetBlockTypes(tagname))
         self.LibraryPanel.SetFocus()
     
-    def OnOK(self, event):
-        """
-        Called when dialog OK button is pressed
-        Test if parameters defined are valid
-        @param event: wx.Event from OK button
-        """
-        message = None
-        
-        # Get block type selected
-        selected = self.LibraryPanel.GetSelectedBlock()
-        
-        # Get block type name and if block is a function block
-        block_name = self.BlockName.GetValue()
-        name_enabled = self.BlockName.IsEnabled()
-        
-        # Test that a type has been selected for block
-        if selected is None:
-            message = _("Form isn't complete. Valid block type must be selected!")
-        
-        # Test, if block is a function block, that a name have been defined
-        elif name_enabled and block_name == "":
-            message = _("Form isn't complete. Name must be filled!")
-        
-        # Show error message if an error is detected
-        if message is not None:
-            self.ShowErrorMessage(message)
-        
-        # Test block name validity if necessary
-        elif not name_enabled or self.TestElementName(block_name):
-            # Call BlockPreviewDialog function
-            BlockPreviewDialog.OnOK(self, event)
-    
     def SetValues(self, values):
         """
         Set default block parameters
@@ -256,7 +207,39 @@
             name: control.GetValue()
             for name, control in self.ParamsControl.iteritems()})
         return values
-        
+    
+    def OnOK(self, event):
+        """
+        Called when dialog OK button is pressed
+        Test if parameters defined are valid
+        @param event: wx.Event from OK button
+        """
+        message = None
+        
+        # Get block type selected
+        selected = self.LibraryPanel.GetSelectedBlock()
+        
+        # Get block type name and if block is a function block
+        block_name = self.BlockName.GetValue()
+        name_enabled = self.BlockName.IsEnabled()
+        
+        # Test that a type has been selected for block
+        if selected is None:
+            message = _("Form isn't complete. Valid block type must be selected!")
+        
+        # Test, if block is a function block, that a name have been defined
+        elif name_enabled and block_name == "":
+            message = _("Form isn't complete. Name must be filled!")
+        
+        # Show error message if an error is detected
+        if message is not None:
+            self.ShowErrorMessage(message)
+        
+        # Test block name validity if necessary
+        elif not name_enabled or self.TestElementName(block_name):
+            # Call BlockPreviewDialog function
+            BlockPreviewDialog.OnOK(self, event)
+    
     def OnLibraryTreeItemSelected(self, event):
         """
         Called when block type selected in library panel