Index: inversionview/src/sans/perspectives/pr/pr.py
===================================================================
--- inversionview/src/sans/perspectives/pr/pr.py	(revision d80f7e10c23dfc0ea75f8d28166db3c3ee22430e)
+++ inversionview/src/sans/perspectives/pr/pr.py	(revision 3ecaa2bec26b2739ab5f821ff872e5b9fbcea42d)
@@ -1356,11 +1356,33 @@
                 data = data_list[0]
             else:
-                msg = "Pr panel does not allow multiple Data.\n"
-                msg += "Please select one!\n"
+                data_1d_list = []
+                data_2d_list = []
+                error_msg = ""
+                # separate data into data1d and data2d list
+                for data in data_list:
+                    if data is not None:
+                        if issubclass(data.__class__, Data1D):
+                            data_1d_list.append(data)
+                        else:
+                            error_msg += " %s  type %s \n" % (str(data.name),
+                                             str(data.__class__.__name__))
+                            data_2d_list.append(data)
+                if len(data_2d_list) > 0:
+                    msg = "PrView does not support the following data types:\n"
+                    msg += error_msg
+                if len(data_1d_list) == 0:
+                    wx.PostEvent(self.parent, 
+                    StatusEvent(status=msg, info='error'))
+                    return
+                msg += "Prview does not allow multiple data!\n"
+                msg += "Please select one.\n"
                 from pr_widgets import DataDialog
-                dlg = DataDialog(data_list=data_list, text=msg)
+                dlg = DataDialog(data_list=data_1d_list, text=msg)
                 if dlg.ShowModal() == wx.ID_OK:
                     data = dlg.get_data()
             if data is None:
+                msg += "PrView receives no data. \n"
+                wx.PostEvent(self.parent, 
+                     StatusEvent(status=msg, info='error'))
                 return
             if issubclass(data.__class__, Data1D):
Index: inversionview/src/sans/perspectives/pr/pr_widgets.py
===================================================================
--- inversionview/src/sans/perspectives/pr/pr_widgets.py	(revision 11f51965dac854a7a4710abd8a5b9217be157cdb)
+++ inversionview/src/sans/perspectives/pr/pr_widgets.py	(revision 3ecaa2bec26b2739ab5f821ff872e5b9fbcea42d)
@@ -17,4 +17,15 @@
 import os
 from wx.lib.scrolledpanel import ScrolledPanel
+
+WIDTH = 400
+HEIGHT = 350
+
+
+class DialogPanel(ScrolledPanel):
+    def __init__(self, *args, **kwds):
+        ScrolledPanel.__init__(self, *args, **kwds)
+        self.SetupScrolling()
+        
+        
 class PrTextCtrl(wx.TextCtrl):
     """
@@ -120,4 +131,25 @@
         return self._complete_path
     
+
+            
+            
+def load_error(error=None):
+    """
+    Pop up an error message.
+    
+    :param error: details error message to be displayed
+    """
+    message = "The data file you selected could not be loaded.\n"
+    message += "Make sure the content of your file is properly formatted.\n\n"
+    
+    if error is not None:
+        message += "When contacting the DANSE team, mention the"
+        message += " following:\n%s" % str(error)
+    
+    dial = wx.MessageDialog(None, message, 'Error Loading File',
+                            wx.OK | wx.ICON_EXCLAMATION)
+    dial.ShowModal()    
+
+    
 class DataDialog(wx.Dialog):
     """
@@ -125,9 +157,21 @@
     """
     def __init__(self, data_list, parent=None, text='', *args, **kwds):
+        kwds['size'] = (WIDTH, HEIGHT)
+        kwds['title'] = "Data Selection"
         wx.Dialog.__init__(self, parent, *args, **kwds)
         self.list_of_ctrl = []
-        self._do_layout(data_list, text=text)
-        
-    def _do_layout(self, data_list, text=''):
+        if not data_list:
+            return 
+        self._sizer_main = wx.BoxSizer(wx.VERTICAL)
+        self._sizer_txt = wx.BoxSizer(wx.VERTICAL)
+        self._sizer_button = wx.BoxSizer(wx.HORIZONTAL)
+        self._choice_sizer = wx.GridBagSizer(5, 5)
+        self._panel = DialogPanel(self, style=wx.RAISED_BORDER,
+                               size=(WIDTH-20, HEIGHT/3))
+        self.SetSizer(self._sizer_main)
+        self.__do_layout(data_list, text=text)
+        self.Layout()
+        
+    def __do_layout(self, data_list, text=''):
         """
         layout the dialog
@@ -135,54 +179,45 @@
         if not data_list or len(data_list) <= 1:
             return 
-        # Dialog box properties
-        self.SetTitle("Data Selection")
-        w = 400
-        h = 200
-        self.SetSize((w, h))
-        sizer_main = wx.BoxSizer(wx.VERTICAL)
-        sizer_txt = wx.BoxSizer(wx.VERTICAL)
-        sizer_button = wx.BoxSizer(wx.HORIZONTAL)
-        choice_sizer = wx.GridBagSizer(5, 5)
-        #choice_sizer.SetMinSize((w-20, h-50))
-        panel = ScrolledPanel(self, style=wx.RAISED_BORDER, size=(w-20, h-50))
-        panel.SetupScrolling()
         #add text
         if text.strip() == "":
             text = "This Perspective does not allow multiple data !\n"
             text += "Please select only one Data.\n"
-        text_ctrl = wx.StaticText(self, -1, str(text))
-        sizer_txt.Add(text_ctrl)
+        text_ctrl = wx.TextCtrl(self, -1, str(text), style=wx.TE_MULTILINE,
+                                size=(-1, HEIGHT/3))
+        text_ctrl.SetEditable(False)
+        self._sizer_txt.Add(text_ctrl , 1, wx.EXPAND|wx.ALL, 10)
         iy = 0
         ix = 0
-        rbox = wx.RadioButton(panel, -1, str(data_list[0].name), 
+        rbox = wx.RadioButton(self._panel, -1, str(data_list[0].name), 
                                   (10, 10), style= wx.RB_GROUP)
         rbox.SetValue(True)
         self.list_of_ctrl.append((rbox, data_list[0]))
-        choice_sizer.Add(rbox, (iy, ix), (1, 1),
+        self._choice_sizer.Add(rbox, (iy, ix), (1, 1),
                          wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
         for i in range(1, len(data_list)):
             iy += 1
-            rbox = wx.RadioButton(panel, -1, str(data_list[i].name), (10, 10))
+            rbox = wx.RadioButton(self._panel, -1, 
+                                  str(data_list[i].name), (10, 10))
             rbox.SetValue(False)
             self.list_of_ctrl.append((rbox, data_list[i]))
-            choice_sizer.Add(rbox, (iy, ix),
+            self._choice_sizer.Add(rbox, (iy, ix),
                            (1, 1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
-        panel.SetSizer(choice_sizer)
+        self._panel.SetSizer(self._choice_sizer)
         #add sizer
-        sizer_button.Add((20, 20), 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        self._sizer_button.Add((20, 20), 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0)
         button_cancel = wx.Button(self, wx.ID_CANCEL, "Cancel")
-        sizer_button.Add(button_cancel, 0,
+        self._sizer_button.Add(button_cancel, 0,
                           wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10)
         button_OK = wx.Button(self, wx.ID_OK, "Ok")
         button_OK.SetFocus()
-        sizer_button.Add(button_OK, 0, wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10)
+        self._sizer_button.Add(button_OK, 0,
+                                wx.LEFT|wx.RIGHT|wx.ADJUST_MINSIZE, 10)
         static_line = wx.StaticLine(self, -1)
         
-        sizer_txt.Add(panel, 1, wx.EXPAND|wx.LEFT|wx.RIGHT, 5)
-        sizer_main.Add(sizer_txt, 1, wx.EXPAND|wx.ALL, 10)
-        sizer_main.Add(static_line, 0, wx.EXPAND, 0)
-        sizer_main.Add(sizer_button, 0, wx.EXPAND|wx.ALL, 10)
-        self.SetSizer(sizer_main)
-        self.Layout()
+        self._sizer_txt.Add(self._panel, 0, wx.EXPAND|wx.ALL, 5)
+        self._sizer_main.Add(self._sizer_txt, 0, wx.EXPAND|wx.ALL, 5)
+        self._sizer_main.Add(static_line, 0, wx.EXPAND, 0)
+        self._sizer_main.Add(self._sizer_button, 0, wx.EXPAND|wx.ALL, 10)
+        
         
     def get_data(self):
@@ -194,19 +229,6 @@
             if rbox.GetValue():
                 return data 
-def load_error(error=None):
-    """
-    Pop up an error message.
-    
-    :param error: details error message to be displayed
-    """
-    message = "The data file you selected could not be loaded.\n"
-    message += "Make sure the content of your file is properly formatted.\n\n"
-    
-    if error is not None:
-        message += "When contacting the DANSE team, mention the"
-        message += " following:\n%s" % str(error)
-    
-    dial = wx.MessageDialog(None, message, 'Error Loading File',
-                            wx.OK | wx.ICON_EXCLAMATION)
-    dial.ShowModal()    
-
+
+    
+
+ 
