Index: sansview/perspectives/fitting/fitpage1D.py
===================================================================
--- sansview/perspectives/fitting/fitpage1D.py	(revision f39511b8d2d22017d4b786bdab20f232c2d107eb)
+++ sansview/perspectives/fitting/fitpage1D.py	(revision dc317d1acfd16a02327d7543345ef2c4f23a8dad)
@@ -482,4 +482,5 @@
         self.compute_chisqr()
         self.vbox.Layout()
+        self.Layout()
         self.GrandParent.GetSizer().Layout()
         
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision d250f7df1eaea471d4f8cea9dcae2e764cb20bef)
+++ sansview/perspectives/fitting/fitting.py	(revision dc317d1acfd16a02327d7543345ef2c4f23a8dad)
@@ -4,5 +4,5 @@
 
 from copy import deepcopy 
-from danse.common.plottools.plottables import Data1D, Theory1D,Data2D,Theory2D
+from danse.common.plottools.plottables import Data1D, Theory1D,Data2D
 from danse.common.plottools.PlotPanel import PlotPanel
 from sans.guicomm.events import NewPlotEvent, StatusEvent  
@@ -94,9 +94,4 @@
                 return [["Select data  for Fitting",\
                           "Dialog with fitting parameters ", self._onSelect]] 
-            #elif item.__class__.__name__ is "Theory2D":
-            #     return [["Line Slicer [Q-view]","Sector Averaging as a function of Q",
-            #             self.onLineSlicer],
-            #             ["Annulus Slicer [Phi-view]","Sector Averaging as a function of Phi",
-            #             self.onLineSlicer]]
             else:
                 if item.name==graph.selected_plottable and\
@@ -532,6 +527,6 @@
                 
             else:
-                theory=Theory2D(data.data, data.err_data)
-                #theory=Theory2D(data.image, data.err_image)
+                theory=Data2D(data.data, data.err_data)
+                
                 theory.x_bins= data.x_bins
                 theory.y_bins= data.y_bins
@@ -635,7 +630,4 @@
                 except:
                     raise
-                
-                
-                
     def _draw_model2D(self,model,description=None, enable2D=False,qmin=None,qmax=None, qstep=None):
         if qmin==None:
@@ -647,5 +639,72 @@
         x = numpy.arange(qmin,qmax, qstep)
         y = numpy.arange(qmin,qmax,qstep)
-        
+        lx = len(x)
+        data=numpy.zeros([len(x),len(y)])
+        if enable2D:
+            """
+            for i_x in range(int(len(x)/2)):
+                if i_x%2==1:
+                    continue
+            for i_y in range(len(y)):
+                try:
+                    value = model.runXY([x[i_x], y[i_y]])
+                    #output[i_x][i_y] = value
+                    #output[lx-i_x-1][lx-i_y-1] = value
+                    data[i_y][i_x] = value
+                    data[lx-i_y-1][lx-i_x-1] = value
+                except:
+                     wx.PostEvent(self.parent, StatusEvent(status="\
+                        Error computing %s at [%g,%g] :%s" %(model.name,x[i_x],y[i_y], sys.exc_value)))
+                    
+            if lx%2==1:
+                i_x = int(len(x)/2)
+                for i_y in range(len(y)):
+                    try:
+                        value = model.runXY([x[i_x],y[i_y]])
+                        #output[i_x][i_y] = value
+                        data[i_y][i_x] = value
+                    except:
+                         wx.PostEvent(self.parent, StatusEvent(status="\
+                        Error computing %s at [%g,%g] :%s" %(model.name,x[i_x],y[i_y], sys.exc_value)))
+                       
+            """
+            for i_x in range(int(len(x)/2)):
+                """
+                if not i_x%2==1:
+                    continue
+                """
+                for i_y in range(len(y)):
+                    try:
+                        value = model.runXY([x[i_x],y[i_y]])
+                        #output[i_x][i_y] = value
+                        #output[lx-i_x-1][lx-i_y-1] = value
+                        data[i_y][i_x] = value
+                        data[lx-i_y-1][lx-i_x-1] = value
+                    except:
+                         wx.PostEvent(self.parent, StatusEvent(status="\
+                        Error computing %s at [%g,%g] :%s" %(model.name,x[i_x],y[i_y], sys.exc_value)))
+                       
+          
+
+            theory = (data)  
+            theory.group_id =str(model.name)+" 2D"
+            theory.xmin= qmin
+            theory.xmax= qmax
+            theory.ymin= qmin
+            theory.ymax= qmax
+            wx.PostEvent(self.parent, NewPlotEvent(plot=theory, title="Analytical model 2D"))
+             
+                
+                
+    def H_draw_model2D(self,model,description=None, enable2D=False,qmin=None,qmax=None, qstep=None):
+        if qmin==None:
+            qmin= -0.05
+        if qmax==None:
+            qmax= 0.05
+        if qstep ==None:
+            qstep =0.001
+        x = numpy.arange(qmin,qmax, qstep)
+        y = numpy.arange(qmin,qmax,qstep)
+        lx = len(self.x)
         if enable2D:
             data=numpy.zeros([len(x),len(y)])
@@ -657,5 +716,5 @@
                          wx.PostEvent(self.parent, StatusEvent(status="\
                         Model 2D cannot be plot %g %s %s" %(data[i][j],model.name, sys.exc_value)))
-            theory = Theory2D(data)  
+            theory = Data2D(data)  
             theory.group_id =str(model.name)+" 2D"
             theory.xmin= qmin
@@ -664,4 +723,6 @@
             theory.ymax= qmax
             wx.PostEvent(self.parent, NewPlotEvent(plot=theory, title="Analytical model 2D"))
+    
+    
     def on_draw_model2D(self, event):
         """
Index: sansview/perspectives/fitting/modelpage.py
===================================================================
--- sansview/perspectives/fitting/modelpage.py	(revision d250f7df1eaea471d4f8cea9dcae2e764cb20bef)
+++ sansview/perspectives/fitting/modelpage.py	(revision dc317d1acfd16a02327d7543345ef2c4f23a8dad)
@@ -69,7 +69,42 @@
         self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id)
         self.btClose.SetToolTipString("Close page.")
-        
-        ix = 12
-        iy = 1
+        ix = 0
+        iy = 1 
+        self.sizer4.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\
+                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 2
+        self.sizer4.Add(wx.StaticText(self, -1, 'Max'),(iy, ix),(1,1),\
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix = 0
+        iy += 1
+        self.sizer4.Add(wx.StaticText(self, -1, 'x range'),(iy, ix),(1,1),\
+                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        try:
+            if hasattr(model,'x'):
+                qmin= numpy.min(model.x)
+            
+        except:
+            qmin= numpy.min(model.xmin)
+        ix += 1
+        self.xmin    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        #self.xmin.SetValue(format_number(numpy.min(model.x)))
+        self.xmin.SetToolTipString("Minimun value of x in linear scale.")
+        self.xmin.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)
+        self.xmin.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter)
+        self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        
+       
+        ix += 2
+        self.xmax    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20))
+        #self.xmax.SetValue(format_number(numpy.max(data.x)))
+        self.xmax.SetToolTipString("Maximum value of x in linear scale.")
+        self.xmax.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)
+        self.xmax.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter)
+       
+        self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        ix = 0
+        iy += 1
+        self.sizer4.Add((20,20),(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix +=3
         self.sizer4.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
         ix = 0
@@ -131,4 +166,5 @@
         """
         self.manager = manager
+        
     def onModel2D(self, event):
         
@@ -345,3 +381,3 @@
                             "Model Drawing  Error:wrong value entered : %s"% sys.exc_value))
             self.manager.draw_model(self.model,enable2D=self.model_view.GetValue())
-  
+            #self.manager.draw_model(self,model,description=None, enable1D=True,qmin=None,qmax=None, qstep=None)
