Index: calculatorview/perspectives/calculator/collimation_editor.py
===================================================================
--- calculatorview/perspectives/calculator/collimation_editor.py	(revision 85e665e0b0a845d7250ed9be6d483e1d5245f8d6)
+++ calculatorview/perspectives/calculator/collimation_editor.py	(revision c5dca876b23923d1c26b4f53976aeb2c1461d888)
@@ -69,4 +69,5 @@
         collimation_name_txt.SetToolTipString(hint_collimation_txt) 
         self.collimation_cbox = wx.ComboBox(self, -1, style=wx.CB_READONLY)
+        wx.EVT_COMBOBOX(self.collimation_cbox, -1, self.on_select_collimation) 
         hint_collimation_name_txt = 'Name of collimations.'
         self.collimation_cbox.SetToolTipString(hint_collimation_name_txt) 
@@ -229,4 +230,6 @@
         self.enable_collimation() 
         self.bt_add_aperture.Enable()
+        self.fill_aperture_combox()
+        self.enable_aperture()
         self.set_values()
         
@@ -258,4 +261,12 @@
         self.enable_aperture()
         
+    def on_select_collimation(self, event):
+        """
+           fill the control on the panel according to the current  selected collimation 
+        """
+        self.set_values()
+        self.fill_aperture_combox()
+        self.enable_aperture()
+    
     def enable_collimation(self):
         """
@@ -366,5 +377,5 @@
             n_aperture = self.aperture_cbox.GetCount()
             aperture_hint_txt = 'apertures available: %s '%str(n_aperture)
-            if len(collimation.aperture) > 1:
+            if len(collimation.aperture) > 0:
                 self.bt_remove_aperture.Enable()
             else:
@@ -393,8 +404,8 @@
             fill the current combobox with the available aperture
         """
+        self.aperture_cbox.Clear()
         collimation, _, _ = self.get_current_collimation()
         if collimation is None or not collimation.aperture:
             return
-        
         for aperture in collimation.aperture:
             pos = self.aperture_cbox.Append(str(aperture.name))
Index: calculatorview/perspectives/calculator/data_editor.py
===================================================================
--- calculatorview/perspectives/calculator/data_editor.py	(revision 0c0d4581b36c64c4b001e07fc13d447d1aa35530)
+++ calculatorview/perspectives/calculator/data_editor.py	(revision c5dca876b23923d1c26b4f53976aeb2c1461d888)
@@ -14,5 +14,5 @@
 from sans.guicomm.events import StatusEvent
 
-_BOX_WIDTH = 76
+
 _QMIN_DEFAULT = 0.001
 _QMAX_DEFAULT = 0.13
@@ -23,6 +23,8 @@
     PANEL_HEIGTH = 350
     FONT_VARIANT = 0
+    _BOX_WIDTH = 51
     ON_MAC = False
 else:
+    _BOX_WIDTH = 76
     PANEL_WIDTH = 550
     PANEL_HEIGTH = 400
@@ -194,21 +196,21 @@
             Do the layout for the button widgets
         """ 
-        self.bt_summary = wx.Button(self, -1, "View", size=(_BOX_WIDTH*2/3,-1))
+        self.bt_summary = wx.Button(self, -1, "View", size=(_BOX_WIDTH,-1))
         self.bt_summary.SetToolTipString("View final changes on data.")
         self.bt_summary.Bind(wx.EVT_BUTTON, self.on_click_view)
         
-        self.bt_save = wx.Button(self, -1, "Save As", size=(_BOX_WIDTH*2/3,-1))
+        self.bt_save = wx.Button(self, -1, "Save As", size=(_BOX_WIDTH,-1))
         self.bt_save.SetToolTipString("Save changes in a file.")
         self.bt_save.Bind(wx.EVT_BUTTON, self.on_click_save)
         
-        self.bt_apply = wx.Button(self, -1, "Apply", size=(_BOX_WIDTH*2/3,-1))
+        self.bt_apply = wx.Button(self, -1, "Apply", size=(_BOX_WIDTH,-1))
         self.bt_apply.SetToolTipString("Save changes into the imported data.")
         self.bt_apply.Bind(wx.EVT_BUTTON, self.on_click_apply)
       
-        self.bt_reset = wx.Button(self, -1,'Reset', size=(_BOX_WIDTH*2/3,-1))
+        self.bt_reset = wx.Button(self, -1,'Reset', size=(_BOX_WIDTH,-1))
         self.bt_reset.Bind(wx.EVT_BUTTON, self.on_click_reset)
         self.bt_reset.SetToolTipString("Reset data to its initial state.")
         
-        self.bt_close = wx.Button(self, -1,'Close', size=(_BOX_WIDTH*2/3,-1))
+        self.bt_close = wx.Button(self, -1,'Close', size=(_BOX_WIDTH,-1))
         self.bt_close.Bind(wx.EVT_BUTTON, self.on_close)
         self.bt_close.SetToolTipString("Close this panel.")
@@ -555,18 +557,8 @@
             Save change into a file
         """
-        data, data_name, position = self.get_current_data()
-        if data is None:
+        if not self._data:
             return
         self.on_change_run(event=None)
         self.on_change_title(event=None)
-        
-        if issubclass(data.__class__, Data2D):
-            msg = "No conventional writing format for \n\n"
-            msg += "Data2D at this time.\n"
-            dlg = wx.MessageDialog(None, msg, 'Error Loading File',
-                                         wx.OK | wx.ICON_EXCLAMATION)
-            dlg.ShowModal()   
-            return 
-            
         path = None
         wildcard = "CanSAS 1D files(*.xml)|*.xml" 
@@ -574,16 +566,24 @@
                             self._default_save_location, "",wildcard , wx.SAVE)
        
-        if dlg.ShowModal() == wx.ID_OK:
-            path = dlg.GetPath()
-            mypath = os.path.basename(path)
-            loader = Loader() 
-            format = ".xml"
-            if os.path.splitext(mypath)[1].lower() ==format:
-                loader.save( path, data, format)
-            try:
-                self._default_save_location = os.path.dirname(path)
-            except:
-                pass    
-        dlg.Destroy()
+        for data in self._data:
+            if issubclass(data.__class__, Data2D):
+                msg = "No conventional writing format for \n\n"
+                msg += "Data2D at this time.\n"
+                dlg = wx.MessageDialog(None, msg, 'Error Loading File',
+                                             wx.OK | wx.ICON_EXCLAMATION)
+                dlg.ShowModal()   
+            else:
+                if dlg.ShowModal() == wx.ID_OK:
+                    path = dlg.GetPath()
+                    mypath = os.path.basename(path)
+                    loader = Loader() 
+                    format = ".xml"
+                    if os.path.splitext(mypath)[1].lower() ==format:
+                        loader.save( path, data, format)
+                    try:
+                        self._default_save_location = os.path.dirname(path)
+                    except:
+                        pass    
+                    dlg.Destroy()
         
     def on_click_view(self, event):
