Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision 3c44c66f5a43cf590e90b9a7ba318e6e6f869f58)
+++ sansview/perspectives/fitting/fitpanel.py	(revision 72a6bf826d69f4c362708c1aa47b4233ce14e282)
@@ -190,27 +190,19 @@
         from hint_fitpage import HintFitPage
         self.hint_page = HintFitPage(self) 
-        self.AddPage(page=self.hint_page, caption="Hint")
-        #Add the first fit page
-        self.add_empty_page()
-        
+        self.AddPage(page=self.hint_page, caption="Loaded Data")
         # increment number for model name
-        self.count=0
+        self.count = 0
         #updating the panel
         self.Update()
         self.Center()
         
-    def set_data(self, list=[]):
-        """
-        Receive a list of data and create new 
-        """
-        if list==[]:
-            msg = "Please select data for Fitting perspective.\n"
-            dial = wx.MessageDialog(None, msg, 'Error Loading File', 
-                                    wx.OK | wx.ICON_EXCLAMATION)
-            dial.ShowModal() 
+    def set_data(self, list=[], state=None):
+        """
+        Receive a list of data from data manager
+        """
+        if len(list) ==0:
             return 
-        for data, path in list:
-            self.manager.add_fit_page(data=data)
-            
+        self.hint_page.set_data(list=list)
+      
     def set_state(self, state):
         """
@@ -220,5 +212,5 @@
         if state is not None:
             page_info = self.get_page_info(data=state.data)
-            for name, panel in self.opened_pages.values():
+            for name, panel, type in self.opened_pages.values():
                 #Don't return any panel is the exact same page is created
                 if name == page_info.window_name:
@@ -231,5 +223,5 @@
                         panel.initialize_combox()
                         panel.set_page_info(page_info=page_info)
-                        self.opened_pages[page_info.type] = [page_info.window_name, panel]
+                        self.opened_pages[page_info.window_name] = [page_info.window_name, panel, page_info.type]
                     if panel is not None:  
                         self.manager.store_page(page=panel, data=state.data)
@@ -249,5 +241,6 @@
         """
         nbr_page = self.GetPageCount()
-        if nbr_page == 1:
+        pos = self.GetSelection()
+        if nbr_page == 1 or self.GetPage(pos)== self.hint_page:
             event.Veto()
             return 
@@ -354,5 +347,5 @@
         panel = FitPage(parent=self, page_info=page_info)
         self.AddPage(page=panel, caption=page_info.window_name, select=True)
-        self.opened_pages[page_info.type] = [page_info.window_name, panel]
+        self.opened_pages[page_info.window_name] = [page_info.window_name, panel, page_info.type]
         return panel 
     
@@ -381,5 +374,5 @@
             panel.initialize_combox()
         panel.set_page_info(page_info=page_info)
-        self.opened_pages[page_info.type] = [page_info.window_name, panel]
+        self.opened_pages[page_info.window_name] = [page_info.window_name, panel, page_info.type]
         return panel
     
@@ -389,5 +382,5 @@
         """
         self.DeletePage(index)
-        del self.opened_pages[type]
+        del self.opened_pages[page_info.window_name]
         return self.add_page(page_info=page_info)
         
@@ -406,37 +399,37 @@
         type = page_info.type
         npages = len(self.opened_pages.keys())
-        #check if only and empty page is opened
-        if len(self.opened_pages.keys()) > 0:
-            first_page_type = self.opened_pages.keys()[0]
-            if npages == 1 and first_page_type in ['empty']:
-                #replace the first empty page
-                name, panel = self.opened_pages[first_page_type]
-                index = self.GetPageIndex(panel)
-                panel = self.change_page_content(data=data, index=index)
-                del self.opened_pages[first_page_type]
-                return panel
-        if type in self.opened_pages.keys():
-            #this type of page is already created but it is a theory
-            # meaning the same page is just to fit different data
-            if not type.lower() in ['data']:
-                #delete the previous theory page and add a new one
-                name, panel = self.opened_pages[type]
-                #self.manager.reset_plot_panel(panel.get_data())
-                #delete the existing page and replace it
-                index = self.GetPageIndex(panel)
-                panel = self.replace_page(index=index, page_info=page_info, type=type)
+        if npages == 0:
+            # create new type of page
+            panel = self.add_page(page_info=page_info)
+            return panel
+        else:
+            if page_info.window_name not in self.opened_pages.keys() and \
+                page_info.type.lower() in ['data']:
+                #create new data type page
+                panel = self.add_page(page_info=page_info)
+                return panel 
+            elif page_info.type.lower() not in ['data']:
+                #create new theory page
+                for open_tab_caption, value in self.opened_pages.iteritems():
+                    open_tab = value[1]
+                    open_type = value[2]
+                    if page_info.type == open_type:
+                        #replace theory fit tab
+                        existing_value = self.opened_pages[open_tab_caption]
+                        panel = existing_value[1]
+                        #delete the existing page and replace it
+                        index = self.GetPageIndex(panel)
+                        panel = self.replace_page(index=index, page_info=page_info,
+                                                   type=type)
+                        return panel 
+                panel = self.add_page(page_info=page_info)
                 return panel 
             else:
-                for value in self.opened_pages.values():
-                    if page_info.window_name == str(value[0]):
-                        #Don't return any panel is the exact same page is created
-                        return None
-                panel = self.add_page(page_info=page_info)
-                return panel        
-        else:
-            #a new type of page is created
-            panel = self.add_page(page_info=page_info)
-            return panel
-    
+                _, panel, _ = self.opened_pages[page_info.window_name]
+                index = self.GetPageIndex(panel)
+                self.SetSelection(index)
+                #page already existing
+                return None
+             
     def  _onGetstate(self, event):
         """
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 0b12abb5c0c3b5a6afac1385baf8c31c36e66602)
+++ sansview/perspectives/fitting/fitting.py	(revision 72a6bf826d69f4c362708c1aa47b4233ce14e282)
@@ -670,4 +670,11 @@
             if page != None:  
                 self.store_page(page=page, data=data)
+                if hasattr(data,"title"):
+                    title = str(data.title.lstrip().rstrip())
+                    if title == "":
+                        title = str(data.name)
+                else:
+                    title = str(data.name)
+                wx.PostEvent(self.parent, NewPlotEvent(plot=data, title=title))
                 wx.PostEvent(self.parent, StatusEvent(status="Page Created",
                                                info="info"))
@@ -676,6 +683,7 @@
                 wx.PostEvent(self.parent, StatusEvent(status=msg, info="warning"))
         except:
-            msg = "Creating Fit page: %s"%sys.exc_value
-            wx.PostEvent(self.parent, StatusEvent(status=msg, info="error"))
+            raise
+            #msg = "Creating Fit page: %s"%sys.exc_value
+            #wx.PostEvent(self.parent, StatusEvent(status=msg, info="error"))
        
     def _onEVT_SLICER_PANEL(self, event):
Index: sansview/perspectives/fitting/hint_fitpage.py
===================================================================
--- sansview/perspectives/fitting/hint_fitpage.py	(revision 5062bbf9abf800e4b5ffab0375da1c4a03967672)
+++ sansview/perspectives/fitting/hint_fitpage.py	(revision 72a6bf826d69f4c362708c1aa47b4233ce14e282)
@@ -1,7 +1,9 @@
 
+import os 
 import wx
+from wx.lib.scrolledpanel import ScrolledPanel
+from sans.guicomm.events import NewPlotEvent
 
-
-class HintFitPage(wx.ScrolledWindow):
+class HintFitPage(ScrolledPanel):
     """
     This class provide general structure of  fitpanel page
@@ -15,10 +17,26 @@
         """
         """
-        wx.ScrolledWindow.__init__(self, parent,
-                 style= wx.FULL_REPAINT_ON_RESIZE )
-        
+        ScrolledPanel.__init__(self, parent,
+                 style=wx.FULL_REPAINT_ON_RESIZE)
+        self.SetupScrolling()
+        self.parent = parent
         msg = "right click on the data when it is highlighted "
         msg += "the select option to fit for futher options"
         self.do_layout()
+       
+        
+    def set_data(self, list=[], state=None):
+        """
+        """
+        if not list:
+            return 
+        for data, path in list:
+            if data.name not in self.data_cbbox.GetItems():
+                self.data_cbbox.Insert(item=data.name, pos=0,
+                                    clientData=(data, path))
+        if self.data_cbbox.GetCount() >0:
+            self.data_cbbox.SetSelection(0)
+            self.data_cbbox.Enable()
+            self.on_select_data(event=None)
         
     def do_layout(self):
@@ -26,7 +44,10 @@
         Draw the page 
         """
-        name="Hint"
-        box_description= wx.StaticBox(self, -1,name)
-        boxsizer = wx.StaticBoxSizer(box_description, wx.VERTICAL)
+        self.vbox = wx.BoxSizer(wx.VERTICAL)
+        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer2 = wx.GridBagSizer(0,0)
+        box_description = wx.StaticBox(self, -1, "Hint")
+        boxsizer = wx.StaticBoxSizer(box_description, wx.HORIZONTAL)
+        boxsizer.SetMinSize((450,100))
         msg  = "    How to link data to the control panel: \n \n"
         msg += "    First load data file from 'File' menu. \n"
@@ -34,12 +55,32 @@
         msg += "    Finally, select 'Select data for fitting' in the pop-up menu. \n"
         self.hint_txt = wx.StaticText(self, -1, msg, style=wx.ALIGN_LEFT)
-        boxsizer.Add(self.hint_txt, wx.ALL|wx.EXPAND, 20)
-        self.vbox = wx.BoxSizer(wx.VERTICAL)
-        self.vbox.Add(boxsizer )
-        self.vbox.Layout()
-        self.vbox.Fit(self) 
+        self.data_txt = wx.StaticText(self, -1,"Loaded Data: ")
+        self.data_cbbox = wx.ComboBox(self, -1, size=(260,20))
+        self.data_cbbox.Disable()
+        wx.EVT_COMBOBOX(self.data_cbbox ,-1, self.on_select_data) 
+        
+        sizer1.Add(self.hint_txt)
+        ix = 0 
+        iy = 0
+      
+        sizer2.Add(self.data_txt, (iy, ix), (1,1),
+                    wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        sizer2.Add( self.data_cbbox, (iy, ix), (1,1),
+                    wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        boxsizer.Add(sizer1)
+       
+        self.vbox.Add(boxsizer,0, wx.ALL, 10)
+        self.vbox.Add(sizer2)
         self.SetSizer(self.vbox)
-        self.SetScrollbars(20,20,25,65)
-        self.Layout()
+       
+    def on_select_data(self, event=None):
+        """
+        """
+        n = self.data_cbbox.GetCurrentSelection()
+        data, path = self.data_cbbox.GetClientData(n)
+        self.parent.manager.add_fit_page(data=data)
+        title = os.path.basename(path)
+       
         
     def createMemento(self):
@@ -47,18 +88,3 @@
         """
         return 
-"""   
-Example: ::
-     
-    class HelpWindow(wx.Frame):
-        def __init__(self, parent, id, title):
-            wx.Frame.__init__(self, parent, id, title, size=(570, 400))
-           
-            self.page = HintFitPage(self) 
-            self.Centre()
-            self.Show(True)
-     
-    if __name__=="__main__":
-        app = wx.App()
-        HelpWindow(None, -1, 'HelpWindow')
-        app.MainLoop()
-"""              
+ 
