mailr13508 - in /branches/gui_testing/gui: menu.py user_functions/sequence.py


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

Header


Content

Posted by edward on July 07, 2011 - 19:40:
Author: bugman
Date: Thu Jul  7 19:40:28 2011
New Revision: 13508

URL: http://svn.gna.org/viewcvs/relax?rev=13508&view=rev
Log:
Created the sequence.copy and sequence.write user function pages and menu 
entries.


Modified:
    branches/gui_testing/gui/menu.py
    branches/gui_testing/gui/user_functions/sequence.py

Modified: branches/gui_testing/gui/menu.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/gui_testing/gui/menu.py?rev=13508&r1=13507&r2=13508&view=diff
==============================================================================
--- branches/gui_testing/gui/menu.py (original)
+++ branches/gui_testing/gui/menu.py Thu Jul  7 19:40:28 2011
@@ -228,7 +228,9 @@
             ]],
             [wx.NewId(), "s&cript",   paths.icon_16x16.uf_script, 
self.gui.user_functions.script.run, []],
             [wx.NewId(), "se&quence", paths.icon_16x16.sequence, None, [
-                [wx.NewId(), "&read", paths.icon_16x16.open, 
self.gui.user_functions.sequence.read]
+                [wx.NewId(), "&copy",   paths.icon_16x16.copy, 
self.gui.user_functions.sequence.copy],
+                [wx.NewId(), "&read", paths.icon_16x16.open, 
self.gui.user_functions.sequence.read],
+                [wx.NewId(), "&write", paths.icon_16x16.save, 
self.gui.user_functions.sequence.write]
             ]],
             [wx.NewId(), "se&lect", None, None, [
                 [wx.NewId(), "&all",    None, 
self.gui.user_functions.select.all],

Modified: branches/gui_testing/gui/user_functions/sequence.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/gui_testing/gui/user_functions/sequence.py?rev=13508&r1=13507&r2=13508&view=diff
==============================================================================
--- branches/gui_testing/gui/user_functions/sequence.py (original)
+++ branches/gui_testing/gui/user_functions/sequence.py Thu Jul  7 19:40:28 
2011
@@ -27,12 +27,12 @@
 from string import split
 
 # relax module imports.
-from generic_fns import pipes
+from generic_fns.pipes import cdp_name, pipe_names
 
 # GUI module imports.
 from base import UF_base, UF_page
 from gui.paths import WIZARD_IMAGE_PATH
-from gui.misc import gui_to_int, gui_to_str
+from gui.misc import gui_to_bool, gui_to_int, gui_to_str, str_to_gui
 from gui.wizard import Wiz_window
 
 
@@ -40,8 +40,22 @@
 class Sequence(UF_base):
     """The container class for holding all GUI elements."""
 
+    def copy(self, event):
+        """The sequence.copy user function.
+
+        @param event:   The wx event.
+        @type event:    wx event
+        """
+
+        # Execute the wizard.
+        wizard = Wiz_window(size_x=700, size_y=500, 
title=self.get_title('sequence', 'copy'))
+        page = Copy_page(wizard, self.gui, self.interpreter)
+        wizard.add_page(page)
+        wizard.run()
+
+
     def read(self, event):
-        """The sequence.delete user function.
+        """The sequence.read user function.
 
         @param event:       The wx event.
         @type event:        wx event
@@ -54,9 +68,71 @@
         wizard.run()
 
 
+    def write(self, event):
+        """The sequence.write user function.
+
+        @param event:       The wx event.
+        @type event:        wx event
+        """
+
+        # Execute the wizard.
+        wizard = Wiz_window(size_x=900, size_y=700, 
title=self.get_title('sequence', 'write'))
+        page = Write_page(wizard, self.gui, self.interpreter)
+        wizard.add_page(page)
+        wizard.run()
+
+
+
+class Copy_page(UF_page):
+    """The sequence.copy() user function page."""
+
+    # Some class variables.
+    image_path = WIZARD_IMAGE_PATH + 'sequence.png'
+    uf_path = ['sequence', 'copy']
+
+    def add_contents(self, sizer):
+        """Add the sequence specific GUI elements.
+
+        @param sizer:   A sizer object.
+        @type sizer:    wx.Sizer instance
+        """
+
+        # The source pipe.
+        self.pipe_from = self.combo_box(sizer, "The source data pipe:", [], 
tooltip=self.uf._doc_args_dict['pipe_from'])
+
+        # The destination pipe.
+        self.pipe_to = self.combo_box(sizer, "The destination data pipe 
name:", [], tooltip=self.uf._doc_args_dict['pipe_to'])
+
+
+    def on_display(self):
+        """Update the pipe name lists."""
+
+        # Set the default pipe name.
+        if not gui_to_str(self.pipe_from.GetValue()):
+            self.pipe_from.SetValue(str_to_gui(cdp_name()))
+        if not gui_to_str(self.pipe_to.GetValue()):
+            self.pipe_to.SetValue(str_to_gui(cdp_name()))
+
+        # The list of pipe names.
+        for name in pipe_names():
+            self.pipe_from.Append(name)
+            self.pipe_to.Append(name)
+
+
+    def on_execute(self):
+        """Execute the user function."""
+
+        # Get the pipe names.
+        pipe_from = gui_to_str(self.pipe_from.GetValue())
+        pipe_to = gui_to_str(self.pipe_to.GetValue())
+
+        # Copy the sequence.
+        self.interpreter.sequence.copy(pipe_from=pipe_from, pipe_to=pipe_to)
+
+
 
 class Read_page(UF_page):
-    """The sequence.delete() user function page."""
+    """The sequence.read() user function page."""
 
     # Some class variables.
     image_path = WIZARD_IMAGE_PATH + 'sequence.png'
@@ -108,3 +184,69 @@
 
         # Read the sequence.
         self.interpreter.sequence.read(file=file, spin_id_col=spin_id_col, 
mol_name_col=mol_name_col, res_num_col=res_num_col, 
res_name_col=res_name_col, spin_num_col=spin_num_col, 
spin_name_col=spin_name_col, sep=sep, spin_id=spin_id)
+
+
+
+class Write_page(UF_page):
+    """The sequence.delete() user function page."""
+
+    # Some class variables.
+    image_path = WIZARD_IMAGE_PATH + 'sequence.png'
+    uf_path = ['sequence', 'write']
+
+
+    def add_contents(self, sizer):
+        """Add the sequence specific GUI elements.
+
+        @param sizer:   A sizer object.
+        @type sizer:    wx.Sizer instance
+        """
+
+        # Add a file selection.
+        self.file = self.file_selection(sizer, "The sequence file:", 
title="Sequence file selection", tooltip=self.uf._doc_args_dict['file'])
+
+        # The column separator.
+        self.sep = self.combo_box(sizer, "Column separator:", ["white 
space", ",", ";", ":", ""], tooltip=self.uf._doc_args_dict['sep'], 
read_only=False)
+        self.sep.SetValue("white space")
+
+        # The column flags.
+        self.mol_name_flag = self.boolean_selector(sizer, "Molecule name 
flag:", tooltip=self.uf._doc_args_dict['mol_name_flag'])
+        self.res_num_flag = self.boolean_selector(sizer, "Residue number 
flag:", tooltip=self.uf._doc_args_dict['res_num_flag'])
+        self.res_name_flag = self.boolean_selector(sizer, "Residue name 
flag:", tooltip=self.uf._doc_args_dict['res_name_flag'])
+        self.spin_num_flag = self.boolean_selector(sizer, "Spin number 
flag:", tooltip=self.uf._doc_args_dict['spin_num_flag'])
+        self.spin_name_flag = self.boolean_selector(sizer, "Spin name 
flag:", tooltip=self.uf._doc_args_dict['spin_name_flag'])
+
+        # The force flag.
+        self.force = self.boolean_selector(sizer, "Force flag:", 
tooltip=self.uf._doc_args_dict['force'])
+
+
+    def on_execute(self):
+        """Execute the user function."""
+
+        # The file name.
+        file = gui_to_str(self.file.GetValue())
+
+        # No file.
+        if not file:
+            return
+
+        # The column separator.
+        sep = str(self.sep.GetValue())
+        if sep == 'white space':
+            sep = None
+
+        # Get the column flags.
+        mol_name_flag =  gui_to_bool(self.mol_name_flag.GetValue())
+        res_num_flag =   gui_to_bool(self.res_num_flag.GetValue())
+        res_name_flag =  gui_to_bool(self.res_name_flag.GetValue())
+        spin_num_flag =  gui_to_bool(self.spin_num_flag.GetValue())
+        spin_name_flag = gui_to_bool(self.spin_name_flag.GetValue())
+
+        # Force flag.
+        force = gui_to_bool(self.force.GetValue())
+
+        # Read the sequence.
+        self.interpreter.sequence.write(file=file, sep=sep, 
mol_name_flag=mol_name_flag, res_num_flag=res_num_flag, 
res_name_flag=res_name_flag, spin_num_flag=spin_num_flag, 
spin_name_flag=spin_name_flag, force=force)
+
+
+




Related Messages


Powered by MHonArc, Updated Thu Jul 07 20:00:02 2011