Index: invariantview/perspectives/invariant/invariant_panel.py
===================================================================
--- invariantview/perspectives/invariant/invariant_panel.py	(revision cef847cc8fe773e57e4d6ca956a6c0f999b488eb)
+++ invariantview/perspectives/invariant/invariant_panel.py	(revision cb274d9ee45c861812e7761f9b44b4c97ff85163)
@@ -195,5 +195,5 @@
                 wx.PostEvent(self.parent,StatusEvent(status=msg,info="info"))
             self.hint_msg_txt.SetLabel(msg)
-        self.data_name_boxsizer.Layout()
+            
        
     def set_manager(self, manager):
@@ -238,5 +238,6 @@
             
             self._get_input_list() 
-            
+            #make sure that the data is reset (especially when loaded from a inv file)
+            self.state.data = self._data
             self.new_state = False 
             
@@ -595,5 +596,5 @@
         #enable the button_ok for more details
         self.button_details.Enable()
-        self.button_details.SetFocus()
+
         if event != None: 
             self.button_report.Enable(True)
@@ -614,7 +615,7 @@
         
         if float(pre_state_num) <=0:
-            self.button_undo.Disable()
-        elif not self.button_undo.Enabled:
-            self.button_undo.Enable(True)
+            self._undo_disable()
+        else:
+            self._undo_enable()
 
         self._redo_enable()
@@ -631,4 +632,5 @@
         if event != None: event.Skip()
         self.is_power_out = True
+        # get the next state_num
         next_state_num = int(self.state.saved_state['state_num']) + 1
 
@@ -636,7 +638,7 @@
         
         if float(next_state_num)+2 > len(self.state.state_list):
-            self.button_redo.Disable()
+            self._redo_disable()
         elif not self.button_redo.Enabled:
-            self.button_redo.Enable(True)
+            self._redo_enable()
         
         self._undo_enable()
@@ -653,6 +655,9 @@
 
         self.state.set_report_string()
-        report_string = self.state.report_str 
-        dialog = ReportDialog(report_string, None, -1, "")
+        report_html_str = self.state.report_str
+        report_text_str = self.state.__str__()
+        report_img = self.state.image
+        report_list = [report_html_str,report_text_str,report_img]
+        dialog = ReportDialog(report_list, None, -1, "")
         dialog.ShowModal()
         
@@ -662,7 +667,5 @@
         
         : param state_num: the given state number
-        
-        """
-       
+        """     
         if state_num == None:
             return
@@ -694,11 +697,6 @@
         # set the input params at the state at pre_state_num
         for key in current_state:
-            # Do not reset set some outputs
-            #key_split = key.split('_') 
-            #if key_split[0] == 'surface' or key_split[0] == 'volume':
-            #    continue
             # set the inputs and boxes
             value = current_state[key]
-
             try:
                 exec 'self.%s.SetValue(str(%s))' % (key, value)
@@ -708,5 +706,4 @@
                 pass
 
-        
         self._enable_high_q_section(event=None)
         self._enable_low_q_section(event=None)
@@ -714,6 +711,5 @@
         self.state.saved_state = current_state
         self.state.state_num = state_num
-        
-        
+           
         
     def get_bookmark_by_num(self, num=None):
@@ -798,5 +794,4 @@
         
         :param event: rb/cb event
-        
         """
         if event == None:
@@ -1016,5 +1011,5 @@
         msg=  "State saved at %s on %s"%(my_time, date)
          ## post help message for the selected model 
-        msg +=" Saved! right click on this page to retrieve this model"
+        msg +=" Right click on the panel to retrieve this state"
         #wx.PostEvent(self.parent.parent, StatusEvent(status = msg ))
         name = "%d] bookmarked at %s on %s"%(self.bookmark_num,my_time, date)
@@ -1028,4 +1023,6 @@
         self.state.bookmark_list[self.bookmark_num] = [my_time,date,state,comp_state]
         self.state.toXML(self, doc=None, entry_node=None)
+        
+        wx.PostEvent(self.parent,StatusEvent(status=msg,info="info"))
 
     def _back_to_bookmark(self,event):
@@ -1719,8 +1716,7 @@
         Do the layout for the save button widgets
         """ 
-        import sans.perspectives.invariant as invariant
-        #from wx.lib.buttons import GenBitmapTextButton
-
-        path = invariant.get_data_path(media='media')
+        import sans.perspectives.invariant as inv
+
+        path = inv.get_data_path(media='media')
         self.undo_png = os.path.join(path,"undo.png")
         self.redo_png = os.path.join(path,"redo.png")
@@ -1733,7 +1729,6 @@
         self.button_undo.SetToolTipString("Undo")
         #self.button_undo.SetBackgroundColour('#c2e6f8')
-
         self.Bind(wx.EVT_BUTTON, self.undo, id=id)
-        self.button_undo.Disable()
+        self._undo_disable()
         #redo button
         id = wx.NewId()
@@ -1741,9 +1736,9 @@
         self.button_redo.SetToolTipString("Redo")
         self.Bind(wx.EVT_BUTTON, self.redo, id=id)
-        self.button_redo.Disable()   
+        self._redo_disable()   
         #bookmark button
         id = wx.NewId()
         self.button_bookmark = wx.BitmapButton(self, id,wx.Bitmap(self.bookmark_png))#wx.Button(self, id, "Undo",size=(50,20))
-        self.button_bookmark.SetToolTipString("Bookmark: right-click on the panel to retrieve")
+        self.button_bookmark.SetToolTipString("Bookmark: right-click on the panel to retrieve it")
         self.Bind(wx.EVT_BUTTON, self._on_bookmark, id=id)
         #report button
