Index: sansview/perspectives/fitting/batchfitpage.py
===================================================================
--- sansview/perspectives/fitting/batchfitpage.py	(revision cc316087447594027dc1ee6e8fb72cb75f171858)
+++ sansview/perspectives/fitting/batchfitpage.py	(revision 3f36675d749c00f48dfc7b848b879562b4a1b24c)
@@ -142,5 +142,5 @@
         sizer_smearer.Add((10,10))  
         """     
-        
+        """
         # StaticText for chi2, N(for fitting), Npts
         self.tcChi    =  BGTextCtrl(self, -1, "-", size=(75,20), style=0)
@@ -155,5 +155,5 @@
         self.Npts_total.SetToolTipString(\
                                 " Total Npts : total number of data points")
-        
+        """
         # Update and Draw button
         self.draw_button = wx.Button(self,wx.NewId(),'Compute', size=(88,24))
@@ -161,5 +161,5 @@
                               self._onDraw,id= self.draw_button.GetId())
         self.draw_button.SetToolTipString("Compute and Draw.")
-        
+        """
         box_description_1= wx.StaticText(self, -1,'    Chi2/Npts')
         box_description_2= wx.StaticText(self, -1,'Npts(Fit)')
@@ -168,13 +168,17 @@
                                 " Total Npts : total number of data points")
         #box_description_4= wx.StaticText(self, -1,' ')
-        
-        
+        """
+        
+        """
         sizer_fit.Add(box_description_1,0,0)
         sizer_fit.Add(box_description_2,0,0)
-        sizer_fit.Add(box_description_3,0,0)       
+        sizer_fit.Add(box_description_3,0,0)  
+        """     
         sizer_fit.Add(self.draw_button,0,0)
+        """
         sizer_fit.Add(self.tcChi,0,0)
         sizer_fit.Add(self.Npts_fit ,0,0)
         sizer_fit.Add(self.Npts_total,0,0)
+        """
         sizer_fit.Add(self.btFit,0,0) 
         """
@@ -572,8 +576,10 @@
                 # Maximum value of data  
                 data_max = max(self.data.x)
+                """
                 #number of total data points
                 self.Npts_total.SetValue(str(len(self.data.x)))
                 #default:number of data points selected to fit
                 self.Npts_fit.SetValue(str(len(self.data.x)))
+                """
                 self.btEditMask.Disable()  
                 self.EditMask_title.Disable()
@@ -586,10 +592,13 @@
                 ## Maximum value of data  
                 data_max = math.sqrt(x*x + y*y)
+                """
                 #number of total data points
                 self.Npts_total.SetValue(str(len(self.data.data)))
                 #default:number of data points selected to fit
                 self.Npts_fit.SetValue(str(len(self.data.data)))
+                """
                 self.btEditMask.Enable()  
                 self.EditMask_title.Enable() 
+        """
         self.Npts_total.SetEditable(False)
         self.Npts_total.SetBackgroundColour(\
@@ -598,4 +607,5 @@
         self.Npts_total.Bind(wx.EVT_MOUSE_EVENTS, self._npts_click)
         #self.Npts_total.Disable()
+        """
         self.dataSource.SetValue(data_name)
         self.qmin_x = data_min
@@ -625,6 +635,9 @@
             #replace data plot on combo box selection
             #by removing the previous selected data
-            wx.PostEvent(self._manager.parent, NewPlotEvent(action="remove",
-                                                    group_id=group_id, id=id))
+            #wx.PostEvent(self._manager.parent, NewPlotEvent(action="remove",
+            #                                        group_id=group_id, id=id))
+            wx.PostEvent(self._manager.parent, 
+                             NewPlotEvent(group_id=group_id,
+                                               action="delete"))
             #plot the current selected data
             wx.PostEvent(self._manager.parent, NewPlotEvent(plot=self.data, 
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision cc316087447594027dc1ee6e8fb72cb75f171858)
+++ sansview/perspectives/fitting/fitpage.py	(revision 3f36675d749c00f48dfc7b848b879562b4a1b24c)
@@ -1280,5 +1280,6 @@
                         msg = "Cannot Plot :No or too little npts in"
                         msg += " that data range!!!  "
-                        wx.PostEvent(self.parent.parent, StatusEvent(status = msg ))
+                        wx.PostEvent(self.parent.parent, 
+                                     StatusEvent(status=msg))
                         return
                     else:
@@ -1732,5 +1733,5 @@
             #plot the current selected data
             wx.PostEvent(self._manager.parent, NewPlotEvent(plot=self.data, 
-                                                           title=str(self.data.title)))
+                                                title=str(self.data.title)))
             self._manager.store_data(uid=self.uid, data=data,
                                      data_list=self.data_list,
Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision cc316087447594027dc1ee6e8fb72cb75f171858)
+++ sansview/perspectives/fitting/fitpanel.py	(revision 3f36675d749c00f48dfc7b848b879562b4a1b24c)
@@ -313,4 +313,5 @@
         add an empty page
         """
+        """
         if self.batch_on:
             from batchfitpage import BatchFitPage
@@ -320,9 +321,10 @@
             index = self.batch_page_index
         else:
-            from fitpage import FitPage
-            panel = FitPage(parent=self)
-            #Increment index of fit page
-            self.fit_page_index += 1
-            index = self.fit_page_index
+        """
+        from fitpage import FitPage
+        panel = FitPage(parent=self)
+        #Increment index of fit page
+        self.fit_page_index += 1
+        index = self.fit_page_index
         panel.uid = wx.NewId()
         panel.populate_box(dict=self.model_list_box)
@@ -342,10 +344,12 @@
         if self.GetPageCount() <= 1:
             style = self.GetWindowStyleFlag() 
-            if style & wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB == wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB:
+            flag = wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
+            if style & wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB == flag:
                 style = style & ~wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
                 self.SetWindowStyle(style)
         else:
             style = self.GetWindowStyleFlag()
-            if style & wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB != wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB:
+            flag = wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
+            if style & wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB != flag:
                 style |= wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
                 self.SetWindowStyle(style)
@@ -372,4 +376,56 @@
                 self._manager.on_add_new_page(event=None)
         
+    def set_data_on_batch_mode(self, data_list):
+        """
+        Add all data to a single tab when the application is on Batch mode.
+        However all data in the set of data must be either 1D or 2D type. 
+        This method presents option to select the data type before creating a 
+        tab. 
+        """
+        data_1d_list = []
+        data_2d_list = []
+        for data in data_list:
+            if data.__class__.__name__ == "Data1D":
+                data_1d_list.append(data)
+            if data.__class__.__name__ == "Data2D":
+                data_2d_list.append(data)
+        page = None
+        for p in self.opened_pages.values():
+            #check if the selected data existing in the fitpanel
+            pos = self.GetPageIndex(page)
+            if p.get_data() is None:
+                page = p
+                break
+               
+        if data_1d_list and data_2d_list:
+            # need to warning the user that this batch is a special case
+            from .fitting_widgets import BatchDataDialog
+            dlg = BatchDataDialog(self)
+            if dlg.ShowModal() == wx.ID_OK:
+                data_type = dlg.get_data()
+                dlg.Destroy()
+                if page  is None:
+                    page = self.add_empty_page()
+                if data_type == 1:
+                    #user has selected only data1D
+                    page.fill_data_combobox(data_1d_list)
+                elif data_type == 2:
+                    page.fill_data_combobox(data_2d_list)
+            else:
+                #the batch analysis is canceled
+                 dlg.Destroy()
+                 return None
+        else:
+            if page is None:
+                page = self.add_empty_page()
+            if data_1d_list and not data_2d_list:
+                #only on type of data 
+                page.fill_data_combobox(data_1d_list)
+            elif not data_1d_list and data_2d_list:
+                page.fill_data_combobox(data_2d_list)
+            
+        self.opened_pages[page.uid] = page
+        return page
+    
     def set_data(self, data_list):
         """ 
@@ -378,17 +434,12 @@
         :param data: data to fit
         
-        :return panel : page just added for further used. is used by fitting module
+        :return panel : page just added for further used. 
+        is used by fitting module
         
         """
         if not data_list:
             return None
-        
         if self.batch_on:
-            page = self.add_empty_page()
-            print  "batch on fitpanel", page.__class__.__name__, page.window_caption
-            pos = self.GetPageIndex(page)
-            page.fill_data_combobox(data_list)
-            self.opened_pages[page.uid] = page
-            return page
+           return self.set_data_on_batch_mode(data_list)
         else:
             data = None
Index: sansview/perspectives/fitting/fitting_widgets.py
===================================================================
--- sansview/perspectives/fitting/fitting_widgets.py	(revision cfcb72075677c971e74582b3d8f057852b208f73)
+++ sansview/perspectives/fitting/fitting_widgets.py	(revision 3f36675d749c00f48dfc7b848b879562b4a1b24c)
@@ -17,4 +17,68 @@
 HEIGHT = 300
 MAX_NBR_DATA = 4
+
+class BatchDataDialog(wx.Dialog):
+    """
+    The current design of Batch  fit allows only of type of data in the data
+    set. This allows the user to make a quick selection of the type of data
+    to use in fit tab.
+    """
+    def __init__(self, parent=None,  *args, **kwds):
+        wx.Dialog.__init__(self, parent, *args, **kwds)
+        self.SetSize((WIDTH, 250))
+        self.data_1d_selected = None
+        self.data_2d_selected = None
+        self._do_layout()
+   
+    def _do_layout(self):
+        """
+        Draw the content of the current dialog window
+        """
+        vbox = wx.BoxSizer(wx.VERTICAL)
+        box_description= wx.StaticBox(self, -1,str("Hint"))
+        hint_sizer = wx.StaticBoxSizer(box_description, wx.VERTICAL)
+        selection_sizer = wx.GridBagSizer(5,5)
+        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
+        self.data_1d_selected = wx.RadioButton(self, -1, 'Data1D',
+                                                style=wx.RB_GROUP)
+        self.data_2d_selected  = wx.RadioButton(self, -1, 'Data2D')
+        self.data_1d_selected.SetValue(True)
+        self.data_2d_selected.SetValue(False)
+        button_cancel = wx.Button(self, wx.ID_CANCEL, "Cancel")
+        button_OK = wx.Button(self, wx.ID_OK, "Ok")
+        button_OK.SetFocus()
+        hint = "Selected Data set contains both 1D and 2D Data.\n"
+        hint += "Please select on type of analysis before proceeding.\n"
+        hint_sizer.Add(wx.StaticText(self, -1, hint))
+        #draw area containing radio buttons
+        ix = 0
+        iy = 0
+        selection_sizer.Add(self.data_1d_selected, (iy, ix),
+                           (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        iy += 1
+        selection_sizer.Add(self.data_2d_selected, (iy, ix),
+                           (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        #contruction the sizer contaning button
+        button_sizer.Add((20, 20), 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        button_sizer.Add(button_cancel, 0,
+                          wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10)
+        button_sizer.Add(button_OK, 0,
+                                wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10)
+        vbox.Add(hint_sizer,  0, wx.EXPAND|wx.ALL, 10)
+        vbox.Add(selection_sizer, 0, wx.TOP|wx.BOTTOM, 10)
+        vbox.Add(wx.StaticLine(self, -1),  0, wx.EXPAND, 0)
+        vbox.Add(button_sizer, 0 , wx.TOP|wx.BOTTOM, 10)
+        self.SetSizer(vbox)
+        
+    def get_data(self):
+        """
+        return 1 if  user requested Data1D , 2 if user requested Data2D
+        """
+        if self.data_1d_selected.GetValue():
+            return 1
+        else:
+            return 2
+
+
 
 class DataDialog(wx.Dialog):
