Index: sansview/perspectives/fitting/fitpage1D.py
===================================================================
--- sansview/perspectives/fitting/fitpage1D.py	(revision 26bf293e779f5260e7b862a7c8a9774edc7f78ba)
+++ sansview/perspectives/fitting/fitpage1D.py	(revision 6b44403cab92de3307a7e6c39bed9f4b6f967a54)
@@ -264,4 +264,5 @@
         self.parameters=[]
         self.fixed_param=[]
+        self.fittable_param=[]
         #list of dispersion paramaters
         self.disp_list=None
@@ -589,18 +590,25 @@
                     list= [item[0],item[1],item[2],item[3]]
                     self.param_toFit.append(list )
+                if len(self.fittable_param)>0:
+                    for item in self.fittable_param:
+                        item[0].SetValue(True)
+                        list= [item[0],item[1],item[2],item[3]]
+                        self.param_toFit.append(list )
                
                 if not (len(self.param_toFit ) >0):
-                    self.xmin.Disable()
-                    self.xmax.Disable()
+                    self.qmin.Disable()
+                    self.qmax.Disable()
                 else:
-                    self.xmin.Enable()
-                    self.xmax.Enable()
+                    self.qmin.Enable()
+                    self.qmax.Enable()
             else:
                 for item in self.parameters:
                     item[0].SetValue(False)
+                for item in self.fittable_param:
+                    item[0].SetValue(False)
                 self.param_toFit=[]
               
-                self.xmin.Disable()
-                self.xmax.Disable()
+                self.qmin.Disable()
+                self.qmax.Disable()
                 
                 
@@ -619,5 +627,16 @@
                 if item in self.param_toFit:
                     self.param_toFit.remove(item)
-        if len(self.parameters)==len(self.param_toFit):
+                    
+        for item in self.fittable_param:
+            if item[0].GetValue()==True:
+                list= [item[0],item[1],item[2],item[3]]
+                if not (list  in self.param_toFit):
+                    self.param_toFit.append(list )  
+            else:
+                if item in self.param_toFit:
+                    self.param_toFit.remove(item)           
+                    
+                    
+        if len(self.parameters)+len(self.fittable_param) ==len(self.param_toFit):
             self.cb1.SetValue(True)
         else:
Index: sansview/perspectives/fitting/fitpage2D.py
===================================================================
--- sansview/perspectives/fitting/fitpage2D.py	(revision 26bf293e779f5260e7b862a7c8a9774edc7f78ba)
+++ sansview/perspectives/fitting/fitpage2D.py	(revision 6b44403cab92de3307a7e6c39bed9f4b6f967a54)
@@ -10,5 +10,5 @@
 
 from modelpage import format_number
-from fitpage1D import FitPage1D
+from old_fitpage1D import FitPage1D
     
 class FitPage2D(FitPage1D):
@@ -27,9 +27,160 @@
     
     def __init__(self, parent,data, *args, **kwargs):
-        FitPage1D.__init__(self, parent, *args, **kwargs)
+        wx.ScrolledWindow.__init__(self, parent, *args, **kwargs)
         """ 
             Initialization of the Panel
         """
-       
+        self.manager = None
+        self.parent  = parent
+        self.event_owner=None
+        #panel interface
+        self.vbox  = wx.BoxSizer(wx.VERTICAL)
+        self.sizer6 = wx.GridBagSizer(5,5)
+        self.sizer5 = wx.GridBagSizer(5,5)
+        self.sizer4 = wx.GridBagSizer(5,5)
+        self.sizer3 = wx.GridBagSizer(5,5)
+        self.sizer2 = wx.GridBagSizer(5,5)
+        self.sizer1 = wx.GridBagSizer(5,5)
+        
+        #self.DataSource      = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        #self.DataSource.SetToolTipString("name of data to fit")
+        #self.DataSource.SetValue(str(data.name))
+        #self.DataSource.Disable()
+        self.DataSource  =wx.StaticText(self, -1,str(data.name))
+        self.modelbox = wx.ComboBox(self, -1)
+        id = wx.NewId()
+        self.btFit =wx.Button(self,id,'Fit')
+        self.btFit.Bind(wx.EVT_BUTTON, self.onFit,id=id)
+        self.btFit.SetToolTipString("Perform fit.")
+        self.static_line_1 = wx.StaticLine(self, -1)
+        
+        self.vbox.Add(self.sizer3)
+        self.vbox.Add(self.sizer2)
+        self.vbox.Add(self.static_line_1, 0, wx.EXPAND, 0)
+        self.vbox.Add(self.sizer5)
+        self.vbox.Add(self.sizer6)
+        self.vbox.Add(self.sizer4)
+        self.vbox.Add(self.sizer1)
+        ## Q range
+        self.qmin= 0.001
+        self.qmax= 0.1
+        
+        id = wx.NewId()
+        self.btClose =wx.Button(self,id,'Close')
+        self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id)
+        self.btClose.SetToolTipString("Close page.")
+        ix = 0
+        iy = 1
+        self.sizer3.Add(wx.StaticText(self, -1, 'Data Source'),(iy,ix),\
+                 (1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.sizer3.Add(self.DataSource,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix += 1
+        self.sizer3.Add((20,20),(iy,ix),(1,1),wx.RIGHT|wx.EXPAND|wx.ADJUST_MINSIZE,0)
+        ix = 0
+        iy += 1
+        self.sizer3.Add(wx.StaticText(self,-1,'Model'),(iy,ix),(1,1)\
+                  , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.sizer3.Add(self.modelbox,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        
+        ix = 0
+        iy = 1
+        #set maximum range for x in linear scale
+        self.text4_3 = wx.StaticText(self, -1, 'Maximum Data\n Range (Linear)', style=wx.ALIGN_LEFT)
+        self.sizer4.Add(self.text4_3,(iy,ix),(1,1),\
+                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.text4_1 = wx.StaticText(self, -1, 'Min')
+        self.sizer4.Add(self.text4_1,(iy, ix),(1,1),\
+                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        #self.text4_1.Hide()
+        ix += 2
+        self.text4_2 = wx.StaticText(self, -1, 'Max')
+        self.sizer4.Add(self.text4_2,(iy, ix),(1,1),\
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        #self.text4_2.Hide()
+       
+        #self.text4_3.Hide()
+        ix = 0
+        iy += 1
+        self.text4_4 = wx.StaticText(self, -1, 'x range')
+        self.sizer4.Add(self.text4_4,(iy, ix),(1,1),\
+                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.xmin    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        self.xmin.SetValue(format_number(data.xmin))
+        self.xmin.SetToolTipString("Minimun value of x in linear scale.")
+        self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        self.xmin.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter)
+        self.xmin.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter)
+        
+        ix += 2
+        self.xmax    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        self.xmax.SetValue(format_number(data.xmax))
+        self.xmax.SetToolTipString("Maximum value of x in linear scale.")
+        self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        self.xmax.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter)
+        self.xmax.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter)
+        
+        iy +=1
+        ix = 0
+        self.text4_5 = wx.StaticText(self, -1, 'y range')
+        self.sizer4.Add(self.text4_5,(iy, ix),(1,1),\
+                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.ymin    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        self.ymin.SetValue(format_number(data.ymin))
+        self.ymin.SetToolTipString("Minimun value of y in linear scale.")
+        self.sizer4.Add(self.ymin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        self.ymin.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter)
+        self.ymin.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter)
+       
+        ix += 2
+        self.ymax    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        self.ymax.SetValue(format_number(data.ymax))
+        self.ymax.SetToolTipString("Maximum value of y in linear scale.")
+        self.sizer4.Add(self.ymax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        self.ymax.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter)
+        self.ymax.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter)
+        
+        #Set chisqr  result into TextCtrl
+        ix = 0
+        iy = 1
+        self.text1_1 = wx.StaticText(self, -1, 'Chi2/dof', style=wx.ALIGN_LEFT)
+        self.sizer1.Add(self.text1_1,(iy,ix),(1,1),\
+                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.tcChi    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        self.tcChi.SetToolTipString("Chi^2 over degrees of freedom.")
+        self.sizer1.Add(self.tcChi,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix +=2
+        self.sizer1.Add(self.btFit,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix+= 1
+        self.sizer1.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix= 1
+        iy+=1
+        self.sizer1.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        # contains link between  model ,all its parameters, and panel organization
+        self.parameters=[]
+        self.fixed_param=[]
+        #contains link between a model and selected parameters to fit 
+        self.param_toFit=[]
+        # model on which the fit would be performed
+        self.model=None
+        # preview selected model name
+       
+        
+        #dictionary of model name and model class
+        self.model_list_box={}
+       
+        self.data = data
+        self.vbox.Layout()
+        self.vbox.Fit(self) 
+        self.SetSizer(self.vbox)
+        self.SetScrollbars(20,20,55,40)
+        self.Centre()
+        
+   
         
     def compute_chisqr(self):
Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision 26bf293e779f5260e7b862a7c8a9774edc7f78ba)
+++ sansview/perspectives/fitting/fitpanel.py	(revision 6b44403cab92de3307a7e6c39bed9f4b6f967a54)
@@ -98,4 +98,5 @@
             self.count +=1
             
+            """
             if data.__class__.__name__=='Data2D':
                  from fitpage2D import FitPage2D
@@ -103,7 +104,7 @@
                  
             else:
-           
-                from fitpage1D import FitPage1D
-                panel = FitPage1D(self,data, -1)
+           """
+            from fitpage1D import FitPage1D
+            panel = FitPage1D(self,data, -1)
             m_name= "M"+str(self.count)  
             panel.set_manager(self.manager)
Index: sansview/perspectives/fitting/modelpage.py
===================================================================
--- sansview/perspectives/fitting/modelpage.py	(revision 26bf293e779f5260e7b862a7c8a9774edc7f78ba)
+++ sansview/perspectives/fitting/modelpage.py	(revision 6b44403cab92de3307a7e6c39bed9f4b6f967a54)
@@ -190,4 +190,5 @@
         self.parameters=[]
         self.fixed_param=[]
+        self.fittable_param=[]
         #contains link between a model and selected parameters to fit 
         self.param_toFit=[]
@@ -252,4 +253,6 @@
                 ix=0
                 iy=1
+                self.fittable_param=[]
+                self.fixed_param=[]
                 self.sizer8.Clear(True)
                 model_disp = wx.StaticText(self, -1, 'No PolyDispersity for this model')
@@ -261,4 +264,6 @@
                 return 
             else:
+                self.fittable_param=[]
+                self.fixed_param=[]
                 self.sizer8.Clear(True)
                 self.populate_disp_box()
@@ -269,4 +274,6 @@
                 self.parent.GetSizer().Layout()   
         else:
+            self.fittable_param=[]        
+            self.fixed_param=[]
             self.sizer7.Clear(True)
             self.sizer8.Clear(True)
@@ -608,6 +615,6 @@
                         self.sizer8.Add(ctl2, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)
                         ctl2.Hide()
+                        self.fittable_param=[cb,ctl1,text2,ctl2]
                        
-                        self.parameters.append([cb,ctl1,text2,ctl2])
                         
                     elif p=="npts":
