Changeset 0899c82 in sasview for sansguiframe/src/sans/guiframe


Ignore:
Timestamp:
Jul 8, 2012 4:15:15 PM (12 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:
9696a10b
Parents:
e4cd34c
Message:

Added copy/paste on grid cells

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

Legend:

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

    r86a9e6c r0899c82  
    132132        self.list_plot_panels = {} 
    133133        self.default_col_width = 75 
    134         self.EnableEditing(False) 
     134        self.EnableEditing(True) 
    135135        if self.GetNumberCols() > 0: 
    136136            self.default_col_width =  self.GetColSize(0) 
     
    139139        self.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.on_selected_cell) 
    140140        self.Bind(wx.grid.EVT_GRID_CMD_CELL_CHANGE, self.on_edit_cell) 
    141          
     141        self.Bind(wx.grid.EVT_GRID_CELL_RIGHT_CLICK, self.onContextMenu) 
    142142         
    143143    def on_edit_cell(self, event): 
     
    459459            self.data.update(item) 
    460460             
    461         if len(self.data) + len(self.data_inputs) +len(self.data_outputs) == 0: 
    462             self.EnableEditing(False) 
    463         else: 
    464             self.EnableEditing(True) 
     461        #if len(self.data) + len(self.data_inputs) +len(self.data_outputs) == 0: 
     462        #    self.EnableEditing(False) 
     463        #else: 
     464        #    self.EnableEditing(True) 
    465465        if  len(self.data_outputs) > 0: 
    466466            self._cols = self.GetNumberCols() 
     
    541541        return self._rows 
    542542     
     543    def onContextMenu(self, event): 
     544        """ 
     545        Default context menu  
     546        """ 
     547        id = wx.NewId() 
     548        c_menu = wx.Menu() 
     549        copy_menu = c_menu.Append(id, '&Copy', 'Copy cell values') 
     550        wx.EVT_MENU(self, id, self.on_copy) 
     551         
     552        id = wx.NewId() 
     553        paste_menu = c_menu.Append(id, '&Paste', 'Paste cell values') 
     554        wx.EVT_MENU(self, id, self.on_paste) 
     555        # enable from flag 
     556        has_selection = False 
     557        selected_cel = self.selected_cells 
     558        if len(selected_cel) > 0: 
     559            _row, _col = selected_cel[0] 
     560            has_selection = self.IsInSelection(_row, _col) 
     561        copy_menu.Enable(has_selection) 
     562        try: 
     563            # mouse event pos 
     564            pos_evt = event.GetPosition() 
     565            self.PopupMenu(c_menu, pos_evt) 
     566        except: 
     567            return 
     568     
     569    def on_copy(self, event): 
     570        """ 
     571        On copy event from the contextmenu 
     572        """ 
     573        self.Copy() 
     574 
     575    def on_paste(self, event): 
     576        """ 
     577        On paste event from the contextmenu 
     578        """ 
     579        self.data = {} 
     580        self.Paste() 
     581     
    543582class Notebook(nb, PanelBase): 
    544583    """ 
     
    574613        self.AddPage(grid, "", True) 
    575614        pos = self.GetPageIndex(grid) 
    576         title = "Grid" + str(self.gpage_num) 
     615        title = "Table" + str(self.gpage_num) 
    577616        self.SetPageText(pos, title) 
    578617        self.SetSelection(pos) 
     
    815854        grid.on_remove_column(event=None) 
    816855         
    817          
    818856class GridPanel(SPanel): 
    819857    def __init__(self, parent, data_inputs=None, 
     
    898936                                                                    str(col)) 
    899937                        wx.PostEvent(self.parent.parent,  
    900                              StatusEvent(status=msg, info="error"))  
     938                             StatusEvent(status=msg, info="error")) 
     939                        return None 
    901940            else: 
    902941                axis.append(None)  
     
    934973                    wx.PostEvent(self.parent.parent, StatusEvent(status=msg,  
    935974                                                                info="error")) 
    936                     #time.sleep(0.5) 
    937975                    continue 
    938976                else: 
     
    11191157            col = column_names[col_name] 
    11201158            axis = self.get_plot_axis(col, list) 
     1159            if axis == None: 
     1160                return None 
    11211161            sentence = sentence.replace(tok,  
    11221162                                        "numpy.array(%s)" % str(axis)) 
     
    12921332         
    12931333        self.edit = wx.Menu() 
     1334 
     1335        self.copy_menu = self.edit.Append(-1, 'Copy', 'Copy cells') 
     1336        wx.EVT_MENU(self, self.copy_menu.GetId(), self.on_copy) 
     1337        self.paste_menu = self.edit.Append(-1, 'Paste', 'Paste Cells') 
     1338        wx.EVT_MENU(self, self.paste_menu.GetId(), self.on_paste) 
    12941339        hint = "Insert column before the selected column" 
    12951340        self.insert_before_menu = wx.Menu() 
    1296         self.insert_sub_menu = self.edit.AppendSubMenu(self.insert_before_menu,  
     1341        self.insertb_sub_menu = self.edit.AppendSubMenu(self.insert_before_menu,  
    12971342                                                      'Insert Before', hint) 
    1298   
     1343        hint = "Insert column after the selected column" 
     1344        self.insert_after_menu = wx.Menu() 
     1345        self.inserta_sub_menu = self.edit.AppendSubMenu(self.insert_after_menu,  
     1346                                                      'Insert After', hint) 
    12991347        hint = "Remove the selected column" 
    13001348        self.remove_menu = self.edit.Append(-1, 'Remove Column', hint) 
     
    13041352        menubar.Append(self.edit, "&Edit") 
    13051353        self.Bind(wx.EVT_CLOSE, self.on_close) 
     1354     
     1355    def on_copy(self, event): 
     1356        """ 
     1357        On Copy 
     1358        """ 
     1359        pos = self.panel.notebook.GetSelection() 
     1360        grid = self.panel.notebook.GetPage(pos) 
     1361        grid.Copy() 
     1362         
     1363    def on_paste(self, event): 
     1364        """ 
     1365        On Paste 
     1366        """ 
     1367        pos = self.panel.notebook.GetSelection() 
     1368        grid = self.panel.notebook.GetPage(pos) 
     1369        grid.on_paste(event) 
     1370      
    13061371    def GetLabelText(self, id): 
    13071372        """ 
     1373        Get Label Text 
    13081374        """ 
    13091375        for item in self.insert_before_menu.GetMenuItems(): 
     
    13141380    def on_remove_column(self, event): 
    13151381        """ 
     1382        On remove column 
    13161383        """ 
    13171384        pos = self.panel.notebook.GetSelection() 
     
    13211388    def on_menu_open(self, event): 
    13221389        """ 
    1323          
     1390        On menu open 
    13241391        """ 
    13251392        if self.edit == event.GetMenu(): 
     
    13281395            grid = self.panel.notebook.GetPage(pos) 
    13291396            col_list = grid.GetSelectedCols() 
     1397            #has_selection = False 
     1398            #selected_cel = grid.selected_cells 
     1399            #if len(selected_cel) > 0: 
     1400            #    has_selection = True 
     1401            #self.copy_menu.Enable(has_selection) 
     1402             
     1403            has_selection = False 
     1404            selected_cel = grid.selected_cells 
     1405            if len(selected_cel) > 0: 
     1406                _row, _col = selected_cel[0] 
     1407                has_selection = grid.IsInSelection(_row, _col) 
     1408            self.copy_menu.Enable(has_selection) 
     1409         
    13301410            if len(col_list) > 0: 
    13311411                self.remove_menu.Enable(True) 
     
    13331413                self.remove_menu.Enable(False) 
    13341414            if len(col_list) == 0 or len(col_list) > 1: 
    1335                 self.insert_sub_menu.Enable(False) 
    1336                  
     1415                self.insertb_sub_menu.Enable(False) 
     1416                self.inserta_sub_menu.Enable(False) 
    13371417                label = "Insert Column Before" 
    1338                 self.insert_sub_menu.SetText(label) 
     1418                self.insertb_sub_menu.SetText(label) 
     1419                label = "Insert Column After" 
     1420                self.inserta_sub_menu.SetText(label) 
    13391421            else: 
    1340                 self.insert_sub_menu.Enable(True) 
     1422                self.insertb_sub_menu.Enable(True) 
     1423                self.inserta_sub_menu.Enable(True) 
    13411424                 
    13421425                col = col_list[0] 
    1343                 #GetColLabelValue(self, col) 
    13441426                col_name = grid.GetCellValue(row=0, col=col) 
    13451427                label = "Insert Column Before " + str(col_name) 
    1346                 self.insert_sub_menu.SetText(label) 
     1428                self.insertb_sub_menu.SetText(label) 
    13471429                for item in self.insert_before_menu.GetMenuItems(): 
    13481430                    self.insert_before_menu.DeleteItem(item) 
    13491431                grid.insert_col_menu(menu=self.insert_before_menu,  
     1432                                     label=col_name, window=self) 
     1433                label = "Insert Column After " + str(col_name) 
     1434                self.inserta_sub_menu.SetText(label) 
     1435                for item in self.insert_after_menu.GetMenuItems(): 
     1436                    self.insert_after_menu.DeleteItem(item) 
     1437                grid.insert_after_col_menu(menu=self.insert_after_menu,  
    13501438                                     label=col_name, window=self) 
    13511439        event.Skip() 
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py

    r6c4130a r0899c82  
    3535from sans.guiframe.panel_base import PanelBase 
    3636from sans.guiframe.gui_style import GUIFRAME_ICON 
    37 from binder import BindArtist 
     37from danse.common.plottools.binder import BindArtist 
    3838from appearanceDialog import appearanceDialog 
    3939from graphAppearance import graphAppearance 
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter2D.py

    r7c755888 r0899c82  
    2828from sans.guiframe.events import SlicerEvent 
    2929from sans.guiframe.utils import PanelMenu 
    30 from binder import BindArtist 
     30from danse.common.plottools.binder import BindArtist 
    3131from Plotter1D import ModelPanel1D 
    3232from danse.common.plottools.toolbar import NavigationToolBar  
Note: See TracChangeset for help on using the changeset viewer.