Index: calculatorview/perspectives/calculator/aperture_editor.py
===================================================================
--- calculatorview/perspectives/calculator/aperture_editor.py	(revision 91f151aa297ca6be7a92ce3c4ba7905d318441cf)
+++ calculatorview/perspectives/calculator/aperture_editor.py	(revision ad6f597281ffdc10ba61293ef7a8566da1421213)
@@ -20,19 +20,19 @@
 class ApertureDialog(wx.Dialog):
     def __init__(self, parent=None, manager=None,aperture=None, *args, **kwds):
-        try:
-            kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
-            kwds['title'] = "Aperture Editor"
-            wx.Dialog.__init__(self, parent=parent, *args, **kwds)
-            self.parent = parent
-            self.manager = manager
-            self._aperture = aperture
-            self._reset_aperture = deepcopy(aperture)
-            self._notes = ""
-            self_description = "Edit aperture"
-            self._do_layout()
-            self.set_values()
-        except:
-            print "error", sys.exc_value
-        
+        """
+            Dialog allows to enter values for aperture
+        """
+        kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
+        kwds['title'] = "Aperture Editor"
+        wx.Dialog.__init__(self, parent=parent, *args, **kwds)
+        self.parent = parent
+        self.manager = manager
+        self._aperture = aperture
+        self._reset_aperture = deepcopy(aperture)
+        self._notes = ""
+        self_description = "Edit aperture"
+        self._do_layout()
+        self.set_values()
+      
     def _define_structure(self):
         """
@@ -316,5 +316,5 @@
                     self._notes += "%s to %s \n"%(self._aperture.size.z,
                                                    z_aperture_size)
-                    self._aperture.aperture_size.z  = float(z_aperture_size)
+                    self._aperture.size.z  = float(z_aperture_size)
             else:
                 self._notes += "Error: Expected a float for the offset 's x "
@@ -356,19 +356,8 @@
     loader = Loader()
     # Load data 
-    data = loader.load("MAR07232_rest.ASC")
-   
-    if len(data.collimation) == 0:
-        from DataLoader.data_info import Collimation
-        collimation = Collimation()
-        from DataLoader.data_info import Aperture
-        aperture = Aperture()
-        dlg = ApertureDialog(aperture=aperture)
-        dlg.ShowModal()
-    else:
-        for collimation in data.collimation:
-            for aperture in collimation:
-                dlg = ApertureDialog(aperture=aperture)
-                dlg.ShowModal()
-                break
+    from DataLoader.data_info import Aperture
+    aperture = Aperture()
+    dlg = ApertureDialog(aperture=aperture)
+    dlg.ShowModal()
     app.MainLoop()
  
Index: calculatorview/perspectives/calculator/collimation_editor.py
===================================================================
--- calculatorview/perspectives/calculator/collimation_editor.py	(revision 91f151aa297ca6be7a92ce3c4ba7905d318441cf)
+++ calculatorview/perspectives/calculator/collimation_editor.py	(revision ad6f597281ffdc10ba61293ef7a8566da1421213)
@@ -11,10 +11,10 @@
 
 if sys.platform.count("win32")>0:
-    _STATICBOX_WIDTH = 450
+    _STATICBOX_WIDTH = 500
     PANEL_WIDTH = 530
     PANEL_HEIGHT = 430
     FONT_VARIANT = 0
 else:
-    _STATICBOX_WIDTH = 480
+    _STATICBOX_WIDTH = 550
     PANEL_WIDTH = 600
     PANEL_HEIGHT = 480
@@ -24,19 +24,18 @@
     def __init__(self, parent=None, manager=None,
                  collimation=[], *args, **kwds):
-        try:
-            kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
-            kwds['title'] = "Collimation Editor"
-            wx.Dialog.__init__(self, parent=parent, *args, **kwds)
-            self.parent = parent
-            self.manager = manager 
-            self._collimation = collimation
-            self._reset_collimation = deepcopy(collimation)
-            self._notes = ""
-            self._description = "Edit collimation"
-            self._do_layout()
-            self.set_values()
-        except:
-            print "error", sys.exc_value
-        
+        """
+        """
+        kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
+        kwds['title'] = "Collimation Editor"
+        wx.Dialog.__init__(self, parent=parent, *args, **kwds)
+        self.parent = parent
+        self.manager = manager 
+        self._collimation = collimation
+        self._reset_collimation = deepcopy(collimation)
+        self._notes = ""
+        self._description = "Edit collimation"
+        self._do_layout()
+        self.set_values()
+ 
     def _define_structure(self):
         """
@@ -49,4 +48,5 @@
         collimation_box = wx.StaticBox(self, -1, "Edit Number of Collimations")
         self.collimation_sizer = wx.StaticBoxSizer(collimation_box, wx.VERTICAL)
+        self.collimation_sizer.SetMinSize((_STATICBOX_WIDTH, -1))
         self.collimation_button_sizer = wx.BoxSizer(wx.HORIZONTAL)
         self.collimation_hint_sizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -228,4 +228,5 @@
         self.collimation_cbox.SetSelection(position) 
         self.enable_collimation() 
+        self.bt_add_aperture.Enable()
         
     def remove_collimation(self, event):
@@ -234,5 +235,5 @@
         """
         if self.collimation_cbox.IsEnabled():
-            if self.collimation_cbox.GetCount() > 1:
+            if self.collimation_cbox.GetCount() > 0:
                 position = self.collimation_cbox.GetCurrentSelection()
                 collimation = self.collimation_cbox.GetClientData(position)
@@ -258,5 +259,5 @@
             n_collimation = self.collimation_cbox.GetCount()
             collimation_hint_txt = 'collimations available: %s '%str(n_collimation)
-            if len(self._collimation) > 1:
+            if len(self._collimation) > 0:
                 self.bt_remove_collimation.Enable()
             else:
@@ -265,4 +266,5 @@
             self.collimation_cbox.Disable()
             self.bt_remove_collimation.Disable()
+            self.bt_add_aperture.Disable()
             collimation_hint_txt = 'No collimation is available for this data.'
         self.collimation_txt.SetLabel(collimation_hint_txt)
@@ -313,5 +315,5 @@
             Remove aperture to data's list of aperture
         """
-        if self._collimation is None:
+        if self._collimation is None or not self._collimation:
             return
         collimation, _, _ = self.get_current_collimation()
@@ -336,5 +338,5 @@
             set aperture for data
         """
-        if self._collimation is None:
+        if self._collimation is None or not self._collimation:
             return
         collimation, _, _ = self.get_current_collimation()
@@ -345,4 +347,5 @@
                     self.reset_aperture_combobox(edited_aperture=aperture)
                     return
+                
     def enable_aperture(self):
         """
@@ -406,4 +409,8 @@
         collimation, _, _ = self.get_current_collimation()
         if collimation is None:
+            self.bt_add_aperture.Disable()
+            self.length_tcl.SetValue("")
+            self.name_tcl.SetValue("")
+            self.length_unit_tcl.SetValue("")
             return
         #Name
@@ -488,5 +495,5 @@
             leave the collimation as it is and close
         """
-        self.reset_collimation()
+        self._collimation = deepcopy(self._reset_collimation)
         self.set_values()
         if self.manager is not None:
@@ -497,9 +504,6 @@
 
     app  = wx.App()
-    # Instantiate a loader 
-    loader = Loader()
-    # Load data 
-    data = loader.load("MAR07232_rest.ASC")
-    dlg = CollimationDialog(collimation=data.collimation)
+ 
+    dlg = CollimationDialog(collimation=[Collimation()])
     dlg.ShowModal()
     app.MainLoop()
Index: calculatorview/perspectives/calculator/detector_editor.py
===================================================================
--- calculatorview/perspectives/calculator/detector_editor.py	(revision 91f151aa297ca6be7a92ce3c4ba7905d318441cf)
+++ calculatorview/perspectives/calculator/detector_editor.py	(revision ad6f597281ffdc10ba61293ef7a8566da1421213)
@@ -3,5 +3,4 @@
 import sys
 from copy import deepcopy
-from DataLoader.loader import Loader
 from DataLoader.data_info import Detector
 from sans.guiframe.utils import check_float
@@ -15,6 +14,6 @@
 else:
     _STATICBOX_WIDTH = 480
-    PANEL_WIDTH = 530
-    PANEL_HEIGHT = 450
+    PANEL_WIDTH = 550
+    PANEL_HEIGHT = 480
     FONT_VARIANT = 1
     
@@ -805,9 +804,6 @@
 if __name__ == "__main__":
     app = wx.App()
-    # Instantiate a loader 
-    loader = Loader()
-    # Load data 
-    output = loader.load("MAR07232_rest.ASC")
-    dlg = DetectorDialog(detector=output.detector)
+    detector = Detector()
+    dlg = DetectorDialog(detector=[detector])
     dlg.ShowModal()
     app.MainLoop()
Index: calculatorview/perspectives/calculator/sample_editor.py
===================================================================
--- calculatorview/perspectives/calculator/sample_editor.py	(revision 91f151aa297ca6be7a92ce3c4ba7905d318441cf)
+++ calculatorview/perspectives/calculator/sample_editor.py	(revision ad6f597281ffdc10ba61293ef7a8566da1421213)
@@ -3,5 +3,4 @@
 import sys
 from copy import deepcopy
-from DataLoader.loader import Loader
 from sans.guiframe.utils import check_float
 
@@ -14,5 +13,5 @@
 else:
     _STATICBOX_WIDTH = 480
-    PANEL_WIDTH = 530
+    PANEL_WIDTH = 550
     PANEL_HEIGHT = 430
     FONT_VARIANT = 1
@@ -519,12 +518,8 @@
     
     app  = wx.App()
-    # Instantiate a loader 
-    loader = Loader()
-    # Load data 
-    data = loader.load("MAR07232_rest.ASC")
-    #print output
-    dlg = SampleDialog(sample=data.sample)
+    from DataLoader.data_info import Sample
+    sample = Sample()
+    dlg = SampleDialog(sample=sample)
     dlg.ShowModal()
-    #print dlg.get_sample()
     app.MainLoop()
  
Index: calculatorview/perspectives/calculator/source_editor.py
===================================================================
--- calculatorview/perspectives/calculator/source_editor.py	(revision 91f151aa297ca6be7a92ce3c4ba7905d318441cf)
+++ calculatorview/perspectives/calculator/source_editor.py	(revision ad6f597281ffdc10ba61293ef7a8566da1421213)
@@ -3,5 +3,4 @@
 import sys
 from copy import deepcopy
-from DataLoader.loader import Loader
 from sans.guiframe.utils import check_float
 _BOX_WIDTH = 60
@@ -14,5 +13,5 @@
 else:
     _STATICBOX_WIDTH = 480
-    PANEL_WIDTH = 530
+    PANEL_WIDTH = 550
     PANEL_HEIGHT = 430
     FONT_VARIANT = 1
@@ -21,5 +20,5 @@
     def __init__(self, parent=None, manager=None, source=None, *args, **kwds):
         kwds['title'] = "Source Editor"
-        kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
+        kwds['size'] = (PANEL_WIDTH, PANEL_HEIGHT)
         wx.Dialog.__init__(self, parent=parent, *args, **kwds)
         
@@ -497,9 +496,7 @@
 if __name__ =="__main__":
     app  = wx.App()
-    # Instantiate a loader 
-    loader = Loader()
-    # Load data 
-    data = loader.load("MAR07232_rest.ASC")
-    dlg = SourceDialog(source=data.source)
+    from DataLoader.data_info import Source
+    source = Source()
+    dlg = SourceDialog(source=source)
     dlg.ShowModal()
     app.MainLoop()
