Changeset b91c736 in sasview


Ignore:
Timestamp:
Mar 19, 2010 1:09:45 PM (15 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
837a043
Parents:
d2f1595
Message:

append more than one dat into the panel on focus

Location:
guiframe
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • guiframe/data_loader.py

    r196608d rb91c736  
    2222    return path 
    2323 
     24def append_data_to_existing_panel(panel_name, data_name): 
     25    """ 
     26        Pop up an error message. 
     27         
     28        @param panel_name: the name of the current panel 
     29        @param data_name: the name of the current data 
     30    """ 
     31    message = " Do you want to append %s data\n in "%(str(data_name)) 
     32    message += " %s panel?\n\n"%(str(panel_name)) 
     33    dial = wx.MessageDialog(None, message, 'Question', 
     34                       wx.YES_NO|wx.NO_DEFAULT|wx.ICON_QUESTION) 
     35    if dial.ShowModal() == wx.ID_YES: 
     36        return True 
     37    else: 
     38        return False 
     39    
    2440 
    2541def load_ascii_1D(path): 
     
    142158        ## when 2 data have the same id override the 1 st plotted 
    143159        new_plot.id = name 
    144        
    145160        ##group_id specify on which panel to plot this data 
    146161        new_plot.group_id = name 
    147162        new_plot.is_data = True 
    148163        ##post data to plot 
     164        title = output.filename 
    149165        if hasattr(new_plot,"title"): 
    150             title = str(new_plot.title) 
     166            title = str(new_plot.title.lstrip().rstrip()) 
    151167            if title == "": 
    152168                title = str(name) 
    153169        else: 
    154170            title = str(name) 
    155         wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=title )) 
     171        if hasattr(parent, "panel_on_focus") and not(parent.panel_on_focus is None): 
     172                existing_panel  = parent.panel_on_focus 
     173                panel_name = existing_panel.window_caption 
     174                data_name = new_plot.name 
     175                if existing_panel.__class__.__name__ == "ModelPanel1D"\ 
     176                    and existing_panel.group_id is not None: 
     177                    if append_data_to_existing_panel(panel_name, data_name): 
     178                        #add this plot the an existing panel 
     179                        new_plot.group_id = existing_panel.group_id 
     180        wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=title)) 
    156181         
    157182    ## the output of the loader is a list , some xml files contain more than one data 
     
    190215            new_plot.name = name 
    191216            new_plot.interactive = True 
    192           
    193217            new_plot.group_id = name 
    194218            new_plot.id = name 
    195       
    196             new_plot.is_data =True 
     219            new_plot.is_data = True 
     220         
    197221            if hasattr(item,"title"): 
    198                 title = item.title 
     222                title = item.title.lstrip().rstrip() 
    199223                if title == "": 
    200224                    title = str(name) 
    201225            else: 
    202226                title = name 
     227            if hasattr(parent, "panel_on_focus") and not(parent.panel_on_focus is None): 
     228                existing_panel  = parent.panel_on_focus 
     229                panel_name = existing_panel.window_caption 
     230                data_name = new_plot.name 
     231                if existing_panel.__class__.__name__ == "ModelPanel1D"\ 
     232                    and existing_panel.group_id is not None: 
     233                    if append_data_to_existing_panel(panel_name, data_name): 
     234                        #add this plot the an existing panel 
     235                        new_plot.group_id = existing_panel.group_id 
    203236            wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=str(title))) 
    204237            i+=1 
  • guiframe/gui_manager.py

    raf20f6b rb91c736  
    4040from sans.guicomm.events import EVT_STATUS 
    4141from sans.guicomm.events import EVT_NEW_PLOT,EVT_SLICER_PARS_UPDATE 
    42  
     42from sans.guicomm.events import EVT_ADD_MANY_DATA 
    4343import warnings 
    4444warnings.simplefilter("ignore") 
     
    220220        # Welcome panel 
    221221        self.defaultPanel = None 
    222  
     222        #panel on focus 
     223        self.panel_on_focus = None 
    223224        # Check for update 
    224225        #self._check_update(None) 
     
    238239        # Register to status events 
    239240        self.Bind(EVT_STATUS, self._on_status_event) 
    240      
     241        #Register add extra data on the same panel event on load 
     242        self.Bind(EVT_ADD_MANY_DATA, self.set_panel_on_focus) 
     243         
     244    def set_panel_on_focus(self, event): 
     245        """ 
     246            Store reference to the last panel on focus 
     247        """ 
     248        self.panel_on_focus = event.panel 
    241249         
    242250    def build_gui(self): 
  • guiframe/local_perspectives/plotting/Plotter1D.py

    r21d99c2 rb91c736  
    2424from sans.guicomm.events import EVT_NEW_PLOT 
    2525from sans.guicomm.events import StatusEvent ,NewPlotEvent,SlicerEvent,ErrorDataEvent 
    26 from sans.guicomm.events import RemoveDataEvent 
     26from sans.guicomm.events import RemoveDataEvent, AddManyDataEvent 
    2727from sans.guiframe.utils import PanelMenu 
    2828from sans.guiframe.dataFitting import Data1D 
     
    7979        self.graph.yaxis("\\rm{Intensity} ","cm^{-1}") 
    8080        self.graph.render(self) 
    81     
    82     
     81         
     82    def on_kill_focus(self, event): 
     83        """ 
     84            reset the panel color and post even just after the panel has been on  
     85            focus to make sure the group_id is filled after _onEVT_1DREPLOT 
     86            is called 
     87        """ 
     88        self.SetColor(None) 
     89        self.draw() 
     90        #post nd event to notify guiframe that this panel is on focus 
     91        wx.PostEvent(self.parent, AddManyDataEvent(panel=self)) 
     92         
    8393    def _reset(self): 
    8494        """ 
     
    8898        self.plots      = {} 
    8999        self.action_ids = {} 
    90      
    91100     
    92101    def _onEVT_1DREPLOT(self, event): 
     
    157166        else: 
    158167            self._on_add_errors( evt=None) 
    159         return 
    160168     
    161169    def onLeftDown(self,event):  
     
    169177            position = "x: %8.3g    y: %8.3g" % (event.xdata, event.ydata) 
    170178            wx.PostEvent(self.parent, StatusEvent(status=position)) 
    171  
    172  
     179      
    173180    def _onRemove(self, event): 
    174181        """ 
Note: See TracChangeset for help on using the changeset viewer.