mailr13144 - /branches/gui_testing/gui/analyses/wizard.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on June 20, 2011 - 23:45:
Author: bugman
Date: Mon Jun 20 23:45:20 2011
New Revision: 13144

URL: http://svn.gna.org/viewcvs/relax?rev=13144&view=rev
Log:
The new analysis button panel has been partly implemented, there are no 
bitmaps yet.


Modified:
    branches/gui_testing/gui/analyses/wizard.py

Modified: branches/gui_testing/gui/analyses/wizard.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/gui_testing/gui/analyses/wizard.py?rev=13144&r1=13143&r2=13144&view=diff
==============================================================================
--- branches/gui_testing/gui/analyses/wizard.py (original)
+++ branches/gui_testing/gui/analyses/wizard.py Mon Jun 20 23:45:20 2011
@@ -23,6 +23,10 @@
 # Module docstring.
 """Module for the analysis selection wizard."""
 
+# Python module imports.
+import wx
+from wx.lib import buttons
+
 # relax GUI module imports.
 from gui import paths
 from gui.wizard import Wiz_panel, Wiz_window
@@ -39,7 +43,7 @@
         """
 
         # Set up the wizard.
-        wizard = Wiz_window(size_x=800, size_y=600, title='Set parameter 
values')
+        wizard = Wiz_window(size_x=700, size_y=600, title='Set parameter 
values')
 
         # Add the new analysis panel.
         new_panel = New_analysis_panel(wizard)
@@ -92,11 +96,70 @@
     """The panel for selection of the new analysis."""
 
     # Class variables.
-    analysis_type = 'mf'
     image_path = paths.IMAGE_PATH + 'relax.gif'
     main_text = 'Select one of the following analysis types.'
     title = 'Start a new analysis'
 
+    def add_buttons(self, box):
+        """The widget of analysis buttons.
+
+        @param box:     A sizer object.
+        @type box:      wx.BoxSizer instance
+        """
+
+        # The sizes.
+        size = (150, 150)
+
+        # The horizontal spacers.
+        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
+
+        # The NOE button.
+        self.button_noe = wx.ToggleButton(self, -1, '')
+        self.button_noe.SetToolTipString("Steady-state NOE analysis")
+        self.button_noe.SetMinSize(size)
+        sizer1.Add(self.button_noe)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_noe, self.button_noe)
+
+        # The R1 button.
+        self.button_r1 = wx.ToggleButton(self, -1, '')
+        self.button_r1.SetToolTipString("R1 relaxation curve-fitting 
analysis")
+        self.button_r1.SetMinSize(size)
+        sizer1.Add(self.button_r1)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_r1, self.button_r1)
+
+        # The R2 button.
+        self.button_r2 = wx.ToggleButton(self, -1, '')
+        self.button_r2.SetToolTipString("R2 relaxation curve-fitting 
analysis")
+        self.button_r2.SetMinSize(size)
+        sizer1.Add(self.button_r2)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_r2, self.button_r2)
+
+        # The model-free button.
+        self.button_mf = wx.ToggleButton(self, -1, '')
+        self.button_mf.SetToolTipString("Model-free analysis")
+        self.button_mf.SetMinSize(size)
+        sizer2.Add(self.button_mf)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_mf, self.button_mf)
+
+        # The custom analysis button.
+        self.button_custom = wx.ToggleButton(self, -1, '')
+        self.button_custom.SetToolTipString("Custom analysis")
+        self.button_custom.SetMinSize(size)
+        sizer2.Add(self.button_custom)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_custom, 
self.button_custom)
+
+        # A blank button.
+        self.button_none = wx.ToggleButton(self, -1, '')
+        self.button_none.SetMinSize(size)
+        sizer2.Add(self.button_none)
+        self.Bind(wx.EVT_TOGGLEBUTTON, self.select_none, self.button_none)
+
+        # Add the sizers.
+        box.Add(sizer1, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
+        box.Add(sizer2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
+
+
     def add_contents(self, sizer):
         """Add the specific GUI elements (dummy method).
 
@@ -104,3 +167,117 @@
         @type sizer:    wx.Sizer instance
         """
 
+        # Add the button widget.
+        self.add_buttons(sizer)
+
+
+    def select_custom(self, event):
+        """NOE analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_custom)
+
+        # Set the analysis type.
+        self.analysis_type = 'custom'
+
+
+    def select_mf(self, event):
+        """NOE analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_mf)
+
+        # Set the analysis type.
+        self.analysis_type = 'mf'
+
+
+    def select_noe(self, event):
+        """NOE analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_noe)
+
+        # Set the analysis type.
+        self.analysis_type = 'noe'
+
+
+    def select_none(self, event):
+        """No analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_none)
+
+        # Set the analysis type.
+        self.analysis_type = 'none'
+
+
+    def select_r1(self, event):
+        """NOE analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_r1)
+
+        # Set the analysis type.
+        self.analysis_type = 'r1'
+
+
+    def select_r2(self, event):
+        """NOE analysis selection.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Toggle all buttons off.
+        self.toggle(self.button_r2)
+
+        # Set the analysis type.
+        self.analysis_type = 'r2'
+
+
+    def toggle(self, button):
+        """Toggle all buttons off except the selected one.
+
+        @param button:  The button of the selected analysis.
+        @type button:   wx.ToggleButton instance
+        """
+
+        # First freeze the wizard.
+        self.Freeze()
+
+        # Deselect all.
+        self.button_noe.SetValue(False)
+        self.button_r1.SetValue(False)
+        self.button_r2.SetValue(False)
+        self.button_mf.SetValue(False)
+        self.button_custom.SetValue(False)
+        self.button_none.SetValue(False)
+
+        # Turn on the selected button.
+        button.SetValue(True)
+
+        # Refresh the GUI element.
+        self.Refresh()
+
+        # Unfreeze.
+        self.Thaw()




Related Messages


Powered by MHonArc, Updated Tue Jun 21 16:00:02 2011