Index: guiframe/data_panel.py
===================================================================
--- guiframe/data_panel.py	(revision ae83ad3180ca903349862eeb880ab5902c6acab1)
+++ guiframe/data_panel.py	(revision e88ebfd2e12449882f12bc250cc13a70851e559f)
@@ -410,5 +410,5 @@
 
             for theory_id, item in theory_list.iteritems():
-                theory_data, _ = item
+                theory_data, theory_state = item
                 if theory_data is None:
                     name = "Unknown"
@@ -420,4 +420,6 @@
                     theory_class = theory_data.__class__.__name__
                     theory_id = theory_data.id
+                    if theory_state is not None:
+                        name = theory_state.model.name
                     temp = (theory_id, theory_class, state_id)
                 if theory_id not in theory_list_ctrl:
@@ -451,10 +453,14 @@
             theory_list_ctrl = {}
             for theory_id, item in theory_list.iteritems():
-                theory_data, _ = item
+                theory_data, theory_state = item
                 if theory_data is not None:
+                    name = theory_data.name
                     theory_class = theory_data.__class__.__name__
-                    
+                    theory_id = theory_data.id
+                    if theory_state is not None:
+                        name = theory_state.model.name 
+                    temp = (theory_id, theory_class, state_id)
                     t_child = self.tree_ctrl.AppendItem(theory_child,
-                            theory_data.name, ct_type=1, 
+                            name, ct_type=1, 
                             data=(theory_data.id, theory_class, state_id))
                     t_i_c = self.tree_ctrl.AppendItem(t_child, 'Info')
@@ -475,17 +481,22 @@
         """
         data_to_plot = []
+        state_to_plot = []
+        theory_to_plot = []
         for value in self.list_cb_data.values():
             item, _, _, _, _, _ = value
             if item.IsChecked():
-               data_id, _, _ = self.tree_ctrl.GetItemPyData(item) 
+               data_id, _, state_id = self.tree_ctrl.GetItemPyData(item) 
                data_to_plot.append(data_id)
-        theory_to_plot = []
+               if state_id not in state_to_plot:
+                   state_to_plot.append(state_id)
         for theory_dict in self.list_cb_theory.values():
             for key, value in theory_dict.iteritems():
                 item, _, _ = value
                 if item.IsChecked():
-                    theory_id, _, _ = self.tree_ctrl.GetItemPyData(item)
+                    theory_id, _, state_id = self.tree_ctrl.GetItemPyData(item)
                     theory_to_plot.append(theory_id)
-        return data_to_plot, theory_to_plot
+                    if state_id not in state_to_plot:
+                        state_to_plot.append(state_id)
+        return data_to_plot, theory_to_plot, state_to_plot
     
     def remove_by_id(self, id):
@@ -524,11 +535,17 @@
         Get all select data and set them to the current active perspetive
         """
-        self.post_helper(plot=False)
-       
+        data_id, theory_id, state_id = self.set_data_helper()
+        self.parent.set_data(data_id)
+        self.parent.set_data(state_id=state_id, theory_id=theory_id)
+        
     def on_append_plot(self, event=None):
         """
         append plot to plot panel on focus
         """
-        self.post_helper(plot=True, append=True)
+        data_id, theory_id, state_id = self.set_data_helper()
+        self.parent.plot_data(data_id=data_id,  
+                              state_id=state_id,
+                              theory_id=theory_id,
+                              append=True)
    
     def on_plot(self, event=None):
@@ -536,11 +553,15 @@
         Send a list of data names to plot
         """
-        self.post_helper(plot=True)
+        data_id, theory_id, state_id = self.set_data_helper()
+        self.parent.plot_data(data_id=data_id,  
+                              state_id=state_id,
+                              theory_id=theory_id,
+                              append=False)
        
     def on_freeze(self, event):
         """
         """
-        data_to_plot, theory_to_plot = self.set_data_helper()
-        self.parent.freeze(data_id=data_to_plot, theory_id=theory_to_plot)
+        _, theory_id, state_id = self.set_data_helper()
+        self.parent.freeze(state_id=state_id, theory_id=theory_id)
         
     def set_active_perspective(self, name):
@@ -555,13 +576,5 @@
         """
         self.tctrl_plotpanel.SetLabel(str(name))
-        
-    def post_helper(self, plot=False, append=False):
-        """
-        """
-        data_to_plot, theory_to_plot = self.set_data_helper()
-        if self.parent is not None:
-            self.parent.get_data_from_panel(data_id=data_to_plot, plot=plot,
-                                            append=append)
-            
+ 
     
 
