Index: guiframe/data_panel.py
===================================================================
--- guiframe/data_panel.py	(revision 13a63ab48749452a673cea2a06f239c3cca9d6c6)
+++ guiframe/data_panel.py	(revision a03d419257aa974d705140242fbdf985d0e305a8)
@@ -23,4 +23,6 @@
 from sans.guiframe.events import StatusEvent
 from sans.guiframe.events import EVT_DELETE_PLOTPANEL
+from sans.guiframe.events import NewLoadDataEvent
+from sans.guiframe.gui_style import GUIFRAME
 from DataLoader.loader import Loader
 
@@ -236,4 +238,5 @@
         """
         w, _ = self.GetSize()
+       
         self.bt_add = wx.Button(self, wx.NewId(), "Load Data", 
                                 size=(BUTTON_WIDTH, -1))
@@ -287,5 +290,5 @@
 
         self.sizer3.AddGrowableCol(1, 1)
-
+        self.show_data_button()
         self.enable_remove()
         self.enable_import()
@@ -582,100 +585,10 @@
     def _load_data(self, event):
         """
-        Load data
-        """
-        path = None
-        if self._default_save_location == None:
-            self._default_save_location = os.getcwd()
-        
-        cards = self.loader.get_wildcards()
-        temp = [APPLICATION_WLIST] + PLUGINS_WLIST
-        for item in temp:
-            if item in cards:
-                cards.remove(item)
-        wlist =  '|'.join(cards)
-        style = wx.OPEN|wx.FD_MULTIPLE
-        dlg = wx.FileDialog(self.parent, 
-                            "Choose a file", 
-                            self._default_save_location, "",
-                             wlist,
-                             style=style)
-        if dlg.ShowModal() == wx.ID_OK:
-            file_list = dlg.GetPaths()
-            if len(file_list) >= 0 and not(file_list[0]is None):
-                self._default_save_location = os.path.dirname(file_list[0])
-                path = self._default_save_location
-        dlg.Destroy()
-        
-        if path is None or not file_list or file_list[0] is None:
-            return
-        self._get_data(file_list)
-        
-    def _get_data(self, path, format=None):
-        """
-        """
-        message = ""
-        log_msg = ''
-        output = {}
-        error_message = ""
-        for p_file in path:
-            basename  = os.path.basename(p_file)
-            root, extension = os.path.splitext(basename)
-            if extension.lower() in EXTENSIONS:
-                log_msg = "Data Loader cannot "
-                log_msg += "load: %s\n" % str(p_file)
-                log_msg += """Please try to open that file from "open project" """
-                log_msg += """or "open analysis" menu\n"""
-                error_message = log_msg + "\n"
-                logging.info(log_msg)
-                continue
-        
-            try:
-                temp =  self.loader.load(p_file, format)
-                if temp.__class__.__name__ == "list":
-                    for item in temp:
-                        data = self.parent.create_gui_data(item, p_file)
-                        output[data.id] = data
-                else:
-                    data = self.parent.create_gui_data(temp, p_file)
-                    output[data.id] = data
-                message = "Loading Data..." + str(p_file) + "\n"
-                self.load_update(output=output, message=message)
-            except:
-                error = "Error while loading Data: %s\n" % str(p_file)
-                error += str(sys.exc_value) + "\n"
-                error_message = "The data file you selected could not be loaded.\n"
-                error_message += "Make sure the content of your file"
-                error_message += " is properly formatted.\n\n"
-                error_message += "When contacting the DANSE team, mention the"
-                error_message += " following:\n%s" % str(error)
-                self.load_update(output=output, message=error_message)
-                
-        message = "Loading Data Complete! "
-        message += log_msg
-        self.load_complete(output=output, error_message=error_message,
-                       message=message, path=path)
+        send an event to the parent to trigger load from plugin module
+        """
+        if self.parent is not None:
+            wx.PostEvent(self.parent, NewLoadDataEvent())
             
-    def load_update(self, output=None, message=""):
-        """
-        print update on the status bar
-        """
-        if message != "" and self.parent is not None:
-            wx.PostEvent(self.parent, StatusEvent(status=message,
-                                                  type="progress",
-                                                   info="warning"))
-            
-    def load_complete(self, output, message="", error_message="", path=None):
-        """
-         post message to  status bar and return list of data
-        """
-        if self.parent is not None:
-            wx.PostEvent(self.parent, StatusEvent(status=message,
-                                              info="warning",
-                                              type="stop"))
-        if error_message != "":
-            self.load_error(error_message)
-        if self.parent is not None:
-            self.parent.add_data(data_list=output)
-            
+
     def on_remove(self, event):
         """
@@ -917,5 +830,22 @@
             self.selection_cbox.Disable()
             
-            
+    def show_data_button(self):
+        """
+        show load data and remove data button if 
+        dataloader on else hide them
+        """
+        try:
+            gui_style = self.parent.get_style()
+            style = gui_style & GUIFRAME.DATALOADER_ON
+            if style == GUIFRAME.DATALOADER_ON: 
+                #self.bt_remove.Show(True)
+                self.bt_add.Show(True) 
+            else:
+                #self.bt_remove.Hide()
+                self.bt_add.Hide()
+        except: 
+            #self.bt_remove.Hide()
+            self.bt_add.Hide() 
+           
         
 class DataFrame(wx.Frame):
Index: guiframe/events.py
===================================================================
--- guiframe/events.py	(revision 13a63ab48749452a673cea2a06f239c3cca9d6c6)
+++ guiframe/events.py	(revision a03d419257aa974d705140242fbdf985d0e305a8)
@@ -24,3 +24,5 @@
 #book mark event
 (AppendBookmarkEvent, EVT_APPEND_BOOKMARK) = wx.lib.newevent.NewEvent()
+#event to ask dataloader plugin to load data if dataloader plugin exist
+(NewLoadDataEvent, EVT_NEW_LOAD_DATA) = wx.lib.newevent.NewEvent()
 
Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision b46b1b9962d0c9b37d0f298d9682e40be5522543)
+++ guiframe/gui_manager.py	(revision a03d419257aa974d705140242fbdf985d0e305a8)
@@ -40,9 +40,10 @@
 from sans.guiframe.events import EVT_APPEND_BOOKMARK
 from sans.guiframe.events import EVT_PANEL_ON_FOCUS
+from sans.guiframe.events import EVT_NEW_LOAD_DATA
 from sans.guiframe.events import StatusEvent
 from sans.guiframe.events import NewPlotEvent
 from sans.guiframe.gui_style import GUIFRAME
 from sans.guiframe.gui_style import GUIFRAME_ID
-from sans.guiframe.events import NewLoadedDataEvent
+#from sans.guiframe.events import NewLoadedDataEvent
 from sans.guiframe.data_panel import DataPanel
 from sans.guiframe.panel_base import PanelBase
@@ -190,6 +191,14 @@
         self.Bind(EVT_PANEL_ON_FOCUS, self.set_panel_on_focus)
         self.Bind(EVT_APPEND_BOOKMARK, self.append_bookmark)
-        
-        
+        self.Bind(EVT_NEW_LOAD_DATA, self.on_load_data)
+        
+        
+    def on_load_data(self, event):
+        """
+        received an event to trigger load from data plugin
+        """
+        if self._data_plugin is not None:
+            self._data_plugin.load_data(event)
+            
     def get_current_perspective(self):
         """
@@ -958,35 +967,34 @@
         style = self.__gui_style & GUIFRAME.DATALOADER_ON
         style1 = self.__gui_style & GUIFRAME.MULTIPLE_APPLICATIONS
-        if style == GUIFRAME.DATALOADER_ON:
+        
+        id = wx.NewId()
+        hint_load_file = "read all analysis states save previously"
+        self._save_appl_menu = self._file_menu.Append(id, 
+                                '&Open Project', hint_load_file)
+        wx.EVT_MENU(self, id, self._on_open_state_project)
+            
+        if style1 == GUIFRAME.MULTIPLE_APPLICATIONS:
+            # some menu of plugin to be seen under file menu
+            hint_load_file = "Read a status files and load"
+            hint_load_file += " them into the analysis"
             id = wx.NewId()
-            hint_load_file = "read all analysis states save previously"
             self._save_appl_menu = self._file_menu.Append(id, 
-                                    '&Open Project', hint_load_file)
-            wx.EVT_MENU(self, id, self._on_open_state_project)
-            
-            if style1 == GUIFRAME.MULTIPLE_APPLICATIONS:
-                # some menu of plugin to be seen under file menu
-                hint_load_file = "Read a status files and load"
-                hint_load_file += " them into the analysis"
-                id = wx.NewId()
-                self._save_appl_menu = self._file_menu.Append(id, 
-                                        '&Open Analysis', hint_load_file)
-                wx.EVT_MENU(self, id, self._on_open_state_application)
+                                    '&Open Analysis', hint_load_file)
+            wx.EVT_MENU(self, id, self._on_open_state_application)
                 
-            self._file_menu.AppendSeparator()
+        self._file_menu.AppendSeparator()
+        id = wx.NewId()
+        self._file_menu.Append(id, '&Save Project',
+                             'Save the state of the whole analysis')
+        wx.EVT_MENU(self, id, self._on_save_project)
+        if style1 == GUIFRAME.MULTIPLE_APPLICATIONS:
+            #self._file_menu.AppendSeparator()
             id = wx.NewId()
-            self._file_menu.Append(id, '&Save Project',
-                                 'Save the state of the whole analysis')
-            
-            wx.EVT_MENU(self, id, self._on_save_project)
-            if style1 == GUIFRAME.MULTIPLE_APPLICATIONS:
-                #self._file_menu.AppendSeparator()
-                id = wx.NewId()
-                self._save_appl_menu = self._file_menu.Append(id, 
-                                                          '&Save Analysis',
-                            'Save state of the current active analysis panel')
-                wx.EVT_MENU(self, id, self._on_save_application)
-            
-            self._file_menu.AppendSeparator()
+            self._save_appl_menu = self._file_menu.Append(id, 
+                                                      '&Save Analysis',
+                        'Save state of the current active analysis panel')
+            wx.EVT_MENU(self, id, self._on_save_application)
+        
+        self._file_menu.AppendSeparator()
         
         id = wx.NewId()
Index: guiframe/local_perspectives/data_loader/data_loader.py
===================================================================
--- guiframe/local_perspectives/data_loader/data_loader.py	(revision 8cb8c89e4aa4e8b5917565436f0787318d0c2d5d)
+++ guiframe/local_perspectives/data_loader/data_loader.py	(revision a03d419257aa974d705140242fbdf985d0e305a8)
@@ -57,5 +57,5 @@
         menu_list = []
         data_file_hint = "load one or more data in the application"
-        menu_list = [('&Load Data File(s)', data_file_hint, self._load_data)]
+        menu_list = [('&Load Data File(s)', data_file_hint, self.load_data)]
         gui_style = self.parent.get_style()
         style = gui_style & GUIFRAME.MULTIPLE_APPLICATIONS
@@ -78,5 +78,5 @@
         self._data_menu.Append(data_file_id, 
                          '&Load Data File(s)', data_file_hint)
-        wx.EVT_MENU(self.parent, data_file_id, self._load_data)
+        wx.EVT_MENU(self.parent, data_file_id, self.load_data)
         gui_style = self.parent.get_style()
         style = gui_style & GUIFRAME.MULTIPLE_APPLICATIONS
@@ -92,5 +92,5 @@
         return [(self._data_menu, 'Data')]
 
-    def _load_data(self, event):
+    def load_data(self, event):
         """
         Load data
