Changeset 53cf669 in sasview for sansguiframe/src/sans/guiframe


Ignore:
Timestamp:
Sep 4, 2011 6:12:25 PM (13 years ago)
Author:
Jae Cho <jhjcho@…>
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:
e85e2bc
Parents:
37c36d9
Message:

Can change plotpanel 1D 2D title and set Graph as default: update datapanel cb and menu_graph accordingly

Location:
sansguiframe/src/sans/guiframe
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sansguiframe/src/sans/guiframe/gui_manager.py

    r37c36d9 r53cf669  
    234234        # List of plot panels 
    235235        self.plot_panels = {} 
     236        # default Graph number fot the plotpanel caption 
     237        self.graph_num = 0 
    236238 
    237239        # Default locations 
     
    808810                count += 1 
    809811        windowname = p.window_name 
    810         caption = p.window_caption 
     812        windowcaption = 'Graph'#p.window_caption 
    811813        if count > 0: 
    812814            windowname += str(count+1) 
    813             caption += (' '+str(count)) 
     815            #caption += (' '+str(count)) 
    814816        p.window_name = windowname 
     817 
     818        # Append nummber 
     819        captions = self._get_plotpanel_captions() 
     820        while (1): 
     821            self.graph_num += 1 
     822            caption = windowcaption + '%s'% str(self.graph_num) 
     823            if caption not in captions: 
     824                break 
     825 
    815826        p.window_caption = caption 
    816827             
     
    861872                    self._data_panel.cb_plotpanel.Append(str(caption), p) 
    862873        return ID 
    863          
     874     
     875    def _get_plotpanel_captions(self): 
     876        """ 
     877        Get all the plotpanel cations 
     878         
     879        : return: list of captions 
     880        """ 
     881        captions = [] 
     882        for Id in self.plot_panels.keys(): 
     883            captions.append(self.plot_panels[Id].window_caption) 
     884         
     885        return captions 
     886           
    864887    def _setup_menus(self): 
    865888        """ 
     
    23612384        # wx.aui.AuiPaneInfo 
    23622385        pane_info = self.get_paneinfo(name)  
    2363         # New Caption 
    2364         pane_info.Caption(new_caption) 
    23652386        # update the data_panel.cb_plotpanel 
    23662387        if 'data_panel' in self.panels.keys(): 
     
    23682389            data_panel = self.panels["data_panel"] 
    23692390            if data_panel.cb_plotpanel is not None: 
     2391                # Check if any panel has the same caption 
     2392                has_newstring = data_panel.cb_plotpanel.FindString\ 
     2393                                                            (str(new_caption))  
     2394                caption = new_caption 
     2395                if has_newstring != wx.NOT_FOUND: 
     2396                    captions = self._get_plotpanel_captions() 
     2397                    # Append nummber 
     2398                    inc = 1 
     2399                    while (1): 
     2400                        caption = new_caption + '_%s'% str(inc) 
     2401                        if caption not in captions: 
     2402                            break 
     2403                        inc += 1 
     2404                    # notify to users 
     2405                    msg = "Found Same Title: Added '_%s'"% str(inc) 
     2406                    wx.PostEvent(self, StatusEvent(status=msg)) 
     2407                # update data_panel cb 
    23702408                pos = data_panel.cb_plotpanel.FindString(str(old_caption))  
    23712409                if pos != wx.NOT_FOUND: 
    2372                     data_panel.cb_plotpanel.SetString(pos, new_caption) 
    2373                     data_panel.cb_plotpanel.SetStringSelection(new_caption) 
     2410                    data_panel.cb_plotpanel.SetString(pos, caption) 
     2411                    data_panel.cb_plotpanel.SetStringSelection(caption) 
    23742412        # update window Show menu 
    23752413        if self._window_menu != None: 
     
    23772415                pos = self._window_menu.FindItem(old_caption) 
    23782416                if self._window_menu.GetLabel(pos) == str(old_caption): 
    2379                     self._window_menu.SetLabel(pos, new_caption) 
     2417                    self._window_menu.SetLabel(pos, caption) 
    23802418                break 
     2419        # New Caption 
     2420        pane_info.Caption(caption) 
    23812421        # update aui manager 
    23822422        self._mgr.Update() 
     2423        return caption 
    23832424         
    23842425    def get_paneinfo(self, name): 
     
    25802621        self.panel_on_focus = panel   
    25812622        self.set_panel_on_focus(None) 
    2582      
     2623 
    25832624    def set_plot_unfocus(self):  
    25842625        """ 
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py

    r37c36d9 r53cf669  
    247247                self.subplot.set_xlim((xlo, xhi))      
    248248                self.subplot.set_ylim((ylo, yhi))   
     249            # Update Graph menu and help string         
     250            pos = self.parent._window_menu.FindItem(self.window_caption) 
     251            helpString = 'Show/Hide Graph: ' 
     252            for plot in  self.plots.itervalues(): 
     253                helpString += (' ' + plot.label +';') 
     254            self.parent._window_menu.SetHelpString(pos, helpString) 
    249255        else: 
    250256            self.plots[data.id] = data 
     
    270276        Display the position of the mouse on the statusbar 
    271277        """ 
    272         PlotPanel.onLeftDown(self, event) 
    273         ax = event.inaxes 
    274         if ax != None: 
    275             # data coordinate position 
    276             pos_x = "%8.3g"% event.xdata 
    277             pos_y = "%8.3g"% event.ydata 
    278             position = "x: %s    y: %s" % (pos_x, pos_y) 
    279             wx.PostEvent(self.parent, StatusEvent(status=position)) 
     278        PlotPanel.onLeftDown(self, event)                       
    280279        # unfocus all 
    281280        self.parent.set_plot_unfocus()   
     
    458457        self._slicerpop.AppendSeparator() 
    459458        id = wx.NewId() 
    460         self._slicerpop.Append(id, '&Reset Range') 
     459        self._slicerpop.Append(id, '&Reset Axis Ranges') 
    461460        wx.EVT_MENU(self, id, self.onResetGraph)   
    462461        try: 
     
    490489            newLabel = dial.getText()  
    491490            selected_plot.label = newLabel 
     491            # Updata Graph menu help string 
     492            pos = self.parent._window_menu.FindItem(self.window_caption) 
     493            helpString = 'Show/Hide Graph: ' 
     494            for plot in  self.plots.itervalues(): 
     495                helpString += (' ' + plot.label +';') 
     496            self.parent._window_menu.SetHelpString(pos, helpString) 
     497            #break 
    492498        dial.Destroy() 
     499         
    493500        ## render the graph 
    494501        self._onEVT_FUNC_PROPERTY()  
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter2D.py

    r37c36d9 r53cf669  
    143143        """ 
    144144        # Check that the LEFT button was pressed 
    145         if event.button == 1: 
    146             self.leftdown = True 
    147             ax = event.inaxes 
    148             if ax != None: 
    149                 self.xInit, self.yInit = event.xdata, event.ydata 
     145        PlotPanel.onLeftDown(self, event)     
     146           
    150147        self.plottable_selected(self.data2D.id) 
    151         
    152148        self._manager.set_panel_on_focus(self) 
    153149        wx.PostEvent(self.parent, PanelOnFocusEvent(panel=self)) 
     
    251247                self.toolbar.update() 
    252248                self._is_zoomed = False 
    253  
     249                 
     250        # Update Graph menu and help string         
     251        pos = self.parent._window_menu.FindItem(self.window_caption) 
     252        helpString = 'Show/Hide Graph: ' 
     253        helpString += (' ' + data.label +';') 
     254        self.parent._window_menu.SetHelpString(pos, helpString) 
     255         
    254256    def _set_axis_labels(self): 
    255257        """ 
     
    383385        slicerpop.Append(id, '&Toggle Linear/Log Scale') 
    384386        wx.EVT_MENU(self, id, self._onToggleScale)  
     387         
     388         
     389        slicerpop.AppendSeparator() 
     390        id = wx.NewId() 
     391        slicerpop.Append(id, '&Window Title') 
     392        wx.EVT_MENU(self, id, self.onChangeCaption) 
     393         
    385394        try: 
    386395            pos_evt = event.GetPosition() 
     
    391400        self.PopupMenu(slicerpop, pos) 
    392401         
    393         slicerpop.AppendSeparator() 
    394         id = wx.NewId() 
    395         slicerpop.Append(id, '&Window Title') 
    396         wx.EVT_MENU(self, id, self.onChangeCaption) 
    397          
    398         self.PopupMenu(self._slicerpop, pos) 
    399402             
    400403    def onEditLabels(self, event): 
     
    416419                colour = dial.getColor() 
    417420                if len(newlabel) > 0: 
     421                    # update Label 
    418422                    selected_plot.label = newlabel 
     423                    self.graph.title(newlabel) 
    419424                    self.title_label = selected_plot.label 
    420425                    self.title_font = font 
     
    433438                    raise 
    434439        dial.Destroy() 
     440         
     441        # Update Graph menu and help string  
     442        if self.title_label != None:      
     443            pos = self.parent._window_menu.FindItem(self.window_caption) 
     444            helpString = 'Show/Hide Graph: ' 
     445            helpString += (' ' + self.title_label +';') 
     446            self.parent._window_menu.SetHelpString(pos, helpString) 
    435447 
    436448         
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/plotting.py

    r846c724 r53cf669  
    158158            if pos != -1: 
    159159                self.menu.Delete(DEFAULT_MENU_ITEM_ID) 
    160             
    161         self.menu.AppendCheckItem(event_id, new_panel.window_caption,  
    162                          "Show %s plot panel" % new_panel.window_caption) 
    163         self.menu.Check(event_id, IS_WIN) 
    164         wx.EVT_MENU(self.parent, event_id, self._on_check_menu) 
    165  
    166         wx.EVT_SHOW(new_panel, self._on_close_panel) 
    167          
    168160        # Set UID to allow us to reference the panel later 
    169161        new_panel.uid = event_id 
     
    172164        self.plot_panels[new_panel.group_id] = new_panel 
    173165         
     166        # Set Graph menu and help string         
     167        helpString = 'Show/Hide Graph: ' 
     168        for plot in  new_panel.plots.itervalues(): 
     169            helpString += (' ' + plot.label + ';') 
     170        self.menu.AppendCheckItem(event_id, new_panel.window_caption,  
     171                                  helpString) 
     172        self.menu.Check(event_id, IS_WIN) 
     173        wx.EVT_MENU(self.parent, event_id, self._on_check_menu) 
     174 
     175        wx.EVT_SHOW(new_panel, self._on_close_panel) 
     176          
    174177         
    175178    def create_1d_panel(self, data, group_id): 
     
    282285        title = None 
    283286        if hasattr(event, 'title'): 
    284             title = event.title 
     287            title = 'Graph'#event.title 
    285288                 
    286289        data = event.plot 
Note: See TracChangeset for help on using the changeset viewer.