Index: fittingview/src/sans/perspectives/fitting/basepage.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/basepage.py	(revision 70e439f1b2ad31a12d0eec748de03f5e8b24604b)
+++ fittingview/src/sans/perspectives/fitting/basepage.py	(revision dafc36fe760da3ccde79e0d54da63761f95366bb)
@@ -294,9 +294,16 @@
     def on_set_focus(self, event):
         """
+        On Set Focus, update guimanger and menu
         """
         if self._manager is not None:
             wx.PostEvent(self._manager.parent, PanelOnFocusEvent(panel=self))
-            chain_menu = self._manager.menu1.FindItemById(self._manager.id_reset_flag)
-            chain_menu.Enable(self.batch_on)
+            if self._manager.menu1 != None:
+                chain_menu = self._manager.menu1.FindItemById(\
+                                                        self._manager.id_reset_flag)
+                chain_menu.Enable(self.batch_on)
+                sim_menu = self._manager.menu1.FindItemById(self._manager.id_simfit)
+                sim_menu.Enable(not self.batch_on and self.data.is_data\
+                                and (self.model!=None))
+               
 
     class ModelTextCtrl(wx.TextCtrl):
@@ -2132,5 +2139,4 @@
                 return self.model
             
-
         ## post state to fit panel
         self.state.parameters =[]
Index: fittingview/src/sans/perspectives/fitting/fitpage.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitpage.py	(revision 1363416a648fba11ada370fa9e0ace10bfdcc831)
+++ fittingview/src/sans/perspectives/fitting/fitpage.py	(revision dafc36fe760da3ccde79e0d54da63761f95366bb)
@@ -78,6 +78,11 @@
         fill sizer 0 with data info
         """
-        box_description= wx.StaticBox(self, -1, 'I(q) Data Source')
-        boxsizer1 = wx.StaticBoxSizer(box_description, wx.VERTICAL)
+        self.data_box_description = wx.StaticBox(self, -1, 'I(q) Data Source')
+        if check_data_validity(self.data):
+            dname_color = wx.BLUE
+        else:
+            dname_color = wx.RED
+        self.data_box_description.SetForegroundColour(dname_color)
+        boxsizer1 = wx.StaticBoxSizer(self.data_box_description, wx.VERTICAL)
         #----------------------------------------------------------
         sizer_data = wx.BoxSizer(wx.HORIZONTAL)
@@ -123,8 +128,10 @@
             self.state.qmin = self.qmin_x
             self.state.qmax = self.qmax_x
-            
+        is_data = False    
         for data in self.data_list:
             if data is not None:
                 self.dataSource.Append(str(data.name), clientData=data)
+                if not is_data:
+                    is_data = check_data_validity(data)
         self.dataSource.SetSelection(0)
         self.on_select_data(event=None)
@@ -212,4 +219,5 @@
         #Sizers
         box_description_range = wx.StaticBox(self, -1,str(title))
+        box_description_range.SetForegroundColour(wx.BLUE)
         boxsizer_range = wx.StaticBoxSizer(box_description_range, wx.VERTICAL)      
         self.sizer_set_smearer = wx.BoxSizer(wx.VERTICAL)
@@ -571,5 +579,5 @@
         self.mbox_description= wx.StaticBox(self, -1,str(title))
         boxsizer1 = wx.StaticBoxSizer(self.mbox_description, wx.VERTICAL)
-        
+        self.mbox_description.SetForegroundColour(wx.RED)
         id = wx.NewId()
         self.model_help =wx.Button(self,id,'Details', size=(80,23))
@@ -1270,5 +1278,6 @@
    
             self._manager._on_model_panel(evt=evt)
-            self.mbox_description.SetLabel("Model [%s]" % str(self.model.name))
+            self.mbox_description.SetLabel("Model [ %s ]" % str(self.model.name))
+            self.mbox_description.SetForegroundColour(wx.BLUE)
             self.state.model = self.model.clone()
             self.state.model.name = self.model.name
@@ -1919,4 +1928,5 @@
                 self.btEditMask.Enable()  
                 self.EditMask_title.Enable() 
+    
         self.Npts_total.SetValue(str(npts))
         #default:number of data points selected to fit
@@ -1932,4 +1942,9 @@
         # send graph_id to page_finder 
         self._manager.set_graph_id(uid=self.uid, graph_id=self.graph_id)
+        #focus the page
+        if check_data_validity(data):
+            self.data_box_description.SetForegroundColour(wx.BLUE)
+        self.on_set_focus(None)
+        self.Refresh()
         #update model plot with new data information
         if flag:
Index: fittingview/src/sans/perspectives/fitting/fitpanel.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitpanel.py	(revision 2ada16c960a5b74c1b39fdd87b8139dd738dd76d)
+++ fittingview/src/sans/perspectives/fitting/fitpanel.py	(revision dafc36fe760da3ccde79e0d54da63761f95366bb)
@@ -364,4 +364,5 @@
         self._manager.page_finder[panel.uid].add_data(panel.get_data())
         self.enable_close_button()
+        panel.on_set_focus(None)
         return panel 
     
@@ -426,7 +427,7 @@
         for p in self.opened_pages.values():
             #check if there is an empty page to fill up 
-            if not check_data_validity(p.get_data()):
+            if not check_data_validity(p.get_data()) and p.batch_on:
                 page = p
-                self.batch_page_index += 1
+                #self.batch_page_index += 1
                 break
         if data_1d_list and data_2d_list:
@@ -496,5 +497,5 @@
             #check if the selected data existing in the fitpanel
             pos = self.GetPageIndex(page)
-            if not check_data_validity(page.get_data()):
+            if not check_data_validity(page.get_data()) and not page.batch_on:
                 #make sure data get placed in 1D empty tab if data is 1D
                 #else data get place on 2D tab empty tab
@@ -505,6 +506,6 @@
                     page._set_save_flag(not page.batch_on)
                     page.fill_data_combobox(data_list)
-                    caption = "FitPage" + str(self.fit_page_index)
-                    self.SetPageText(pos, caption)
+                    #caption = "FitPage" + str(self.fit_page_index)
+                    self.SetPageText(pos, page.window_caption)
                     self.SetSelection(pos)
                     return page
Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision 70e439f1b2ad31a12d0eec748de03f5e8b24604b)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision dafc36fe760da3ccde79e0d54da63761f95366bb)
@@ -105,4 +105,5 @@
         self.scipy_id = wx.NewId()
         self.park_id = wx.NewId()
+        self.menu1 = None
         
         self.temp_state = []
@@ -165,11 +166,13 @@
         wx.EVT_MENU(owner, id1, self.on_add_new_page)
         self.menu1.AppendSeparator()
-        id1 = wx.NewId()
+        self.id_simfit = wx.NewId()
         simul_help = "Simultaneous Fit"
-        self.menu1.Append(id1, '&Simultaneous Fit',simul_help)
-        wx.EVT_MENU(owner, id1, self.on_add_sim_page)
+        self.menu1.Append(self.id_simfit, '&Simultaneous Fit',simul_help)
+        wx.EVT_MENU(owner, self.id_simfit, self.on_add_sim_page)
+        sim_menu = self.menu1.FindItemById(self.id_simfit)
+        sim_menu.Enable(False) 
+        
         self.menu1.AppendSeparator()
         #Set park engine
-        
         scipy_help= "Scipy Engine: Perform Simple fit. More in Help window...."
         self.menu1.AppendCheckItem(self.scipy_id, "Simple FitEngine [LeastSq]",
@@ -585,5 +588,6 @@
         ftol_help = "Change the current FTolerance (=%s) " % str(self.ftol)
         ftol_help += "of Simple FitEngine..." 
-        self.menu1.SetHelpString(self.id_tol, ftol_help)
+        if self.menu1 != None:
+            self.menu1.SetHelpString(self.id_tol, ftol_help)
         
     def show_ftol_dialog(self, event=None):
@@ -1343,4 +1347,6 @@
         """
         event.Skip()
+        if self.menu1 == None:
+            return
         menu_item = self.menu1.FindItemById(self.id_reset_flag)
         flag = menu_item.IsChecked()
Index: fittingview/src/sans/perspectives/fitting/simfitpage.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/simfitpage.py	(revision 9e9be1367f8d0ccec58935cf20f37db63dcf1bec)
+++ fittingview/src/sans/perspectives/fitting/simfitpage.py	(revision dafc36fe760da3ccde79e0d54da63761f95366bb)
@@ -795,22 +795,26 @@
         sizer.Clear(True)
         
-        new_name = wx.StaticText(self, -1, 'New Model Name', 
+        new_name = wx.StaticText(self, -1, '  Model Title ',
                                  style=wx.ALIGN_CENTER)
         new_name.SetBackgroundColour('orange')
+        new_name.SetForegroundColour(wx.WHITE)
         sizer.Add(new_name,(iy, ix),(1,1),
                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
         ix += 2 
-        model_type = wx.StaticText(self, -1, '  Model Type')
+        model_type = wx.StaticText(self, -1, '  Model ')
         model_type.SetBackgroundColour('grey')
+        model_type.SetForegroundColour(wx.WHITE)
         sizer.Add(model_type,(iy, ix),(1,1),
                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
         ix += 1 
-        data_used = wx.StaticText(self, -1, '  Used Data')
+        data_used = wx.StaticText(self, -1, '  Data ')
         data_used.SetBackgroundColour('grey')
+        data_used.SetForegroundColour(wx.WHITE)
         sizer.Add(data_used,(iy, ix),(1,1),
                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
         ix += 1 
-        tab_used = wx.StaticText(self, -1, '  Fit Tab')
+        tab_used = wx.StaticText(self, -1, '  FitPage ')
         tab_used.SetBackgroundColour('grey')
+        tab_used.SetForegroundColour(wx.WHITE)
         sizer.Add(tab_used,(iy, ix),(1,1),
                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
@@ -821,37 +825,41 @@
                 ix = 0
                 for fitproblem in value.get_fit_problem():
-                    if  not self.parent.get_page_by_id(id).batch_on:
-                        iy += 1 
-                        data = fitproblem.get_fit_data()
-                        model = fitproblem.get_model()
-                        name = '_'
-                        if model is not None:
-                            name = str(model.name)
-                        cb = wx.CheckBox(self, -1, name)
-                        cb.SetValue(False)
-                        cb.Enable(model is not None and data.is_data)
-                        sizer.Add(cb, (iy, ix), (1, 1), 
-                                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
-                        wx.EVT_CHECKBOX(self, cb.GetId(), self.check_model_name)
-                        ix += 2 
-                        type = model.__class__.__name__
-                        model_type = wx.StaticText(self, -1, str(type))
-                        sizer.Add(model_type, (iy, ix), (1, 1), 
-                                  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
-                        name = '-'
-                        if data is not None and data.is_data:
-                            name = str(data.name)
-                        data_used = wx.StaticText(self, -1, name)
-                        ix += 1 
-                        sizer.Add(data_used, (iy, ix), (1, 1), 
-                                  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
-                        ix += 1 
-                        caption = value.get_fit_tab_caption()
-                        tab_caption_used= wx.StaticText(self, -1, str(caption))
-                        sizer.Add(tab_caption_used, (iy, ix), (1, 1), 
-                                  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
-                    
-                        self.model_list.append([cb,value,id,model])
+                    if  self.parent.get_page_by_id(id).batch_on:
+                        continue
+                    data = fitproblem.get_fit_data()
+                    if not data.is_data:
+                        continue
+                    model = fitproblem.get_model()
+                    if model == None:
+                        continue
+                    iy += 1 
+                    name = '_'
+                    if model is not None:
+                        name = str(model.name)
+                    cb = wx.CheckBox(self, -1, name)
+                    cb.SetValue(False)
+                    cb.Enable(model is not None and data.is_data)
+                    sizer.Add(cb, (iy, ix), (1, 1), 
+                               wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+                    wx.EVT_CHECKBOX(self, cb.GetId(), self.check_model_name)
+                    ix += 2 
+                    type = model.__class__.__name__
+                    model_type = wx.StaticText(self, -1, str(type))
+                    sizer.Add(model_type, (iy, ix), (1, 1), 
+                              wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+                    name = '-'
+                    if data is not None and data.is_data:
+                        name = str(data.name)
+                    data_used = wx.StaticText(self, -1, name)
+                    ix += 1 
+                    sizer.Add(data_used, (iy, ix), (1, 1), 
+                              wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+                    ix += 1 
+                    caption = value.get_fit_tab_caption()
+                    tab_caption_used= wx.StaticText(self, -1, str(caption))
+                    sizer.Add(tab_caption_used, (iy, ix), (1, 1), 
+                              wx.EXPAND|wx.ADJUST_MINSIZE, 0)
                 
+                    self.model_list.append([cb,value,id,model])   
             except:
                 raise
