Changeset 86a9e6c in sasview


Ignore:
Timestamp:
Jul 6, 2012 6:02:05 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:
88a65e2
Parents:
c71d042
Message:

some minor fixes in Grid panel

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

Legend:

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

    rc71d042 r86a9e6c  
    126126        self.SetNumberRows(self._rows) 
    127127        self.SetNumberCols(self._cols) 
     128        color = self.parent.GetBackgroundColour() 
     129        for col in range(self._cols): 
     130            self.SetCellBackgroundColour(0, col, color) 
    128131        self.AutoSize() 
    129132        self.list_plot_panels = {} 
     
    216219            if cell_row > 0 and cell_row < self.max_row_touse: 
    217220                self.axis_value.append(self.GetCellValue(cell_row, cell_col)) 
    218       
     221 
    219222    def on_left_click(self, event): 
    220223        """ 
     
    226229        col = event.GetCol() 
    227230        row = event.GetRow() 
     231 
    228232        if not (flag): 
    229233            self.selected_cols = [] 
     
    422426        if width < self.default_col_width: 
    423427           self.SetColSize(col, self.default_col_width) 
     428        color = self.parent.GetBackgroundColour() 
     429        self.SetCellBackgroundColour(0, col, color) 
    424430        self.ForceRefresh() 
    425431         
     
    529535        return grid_view 
    530536     
     537    def get_nofrows(self): 
     538        """ 
     539        Return number of total rows 
     540        """ 
     541        return self._rows 
     542     
    531543class Notebook(nb, PanelBase): 
    532544    """ 
     
    546558                    wx.CLIP_CHILDREN) 
    547559        PanelBase.__init__(self, parent) 
     560        self.gpage_num = 1 
    548561        self.enable_close_button() 
    549562        self.parent = parent 
     
    552565        #add empty page 
    553566        self.add_empty_page() 
    554          
    555         self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.on_close_page) 
     567        self.pageClosedEvent = wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE 
     568        self.Bind(self.pageClosedEvent, self.on_close_page)     
    556569     
    557570    def add_empty_page(self): 
     
    561574        self.AddPage(grid, "", True) 
    562575        pos = self.GetPageIndex(grid) 
    563         title = "Grid" + str(self.GetPageCount()) 
     576        title = "Grid" + str(self.gpage_num) 
    564577        self.SetPageText(pos, title) 
    565578        self.SetSelection(pos) 
     579        self.enable_close_button() 
     580        self.gpage_num += 1 
    566581        return grid , pos 
    567582         
     
    605620                    msg += "Please select elements of the same col.\n" 
    606621                    raise ValueError, msg 
     622                 
     623            # Finally check the highlighted cell if any cells missing 
     624            self.get_highlighted_row() 
    607625        else: 
    608626            msg = "No item selected.\n" 
    609627            msg += "Please select only one column or one cell" 
    610628            raise ValueError, msg 
    611         
    612629        return grid.selected_cells 
    613630        
    614      
     631    def get_highlighted_row(self): 
     632        """ 
     633        Add highlight rows 
     634        """ 
     635        pos = self.GetSelection() 
     636        grid = self.GetPage(pos) 
     637        col = grid.selected_cols[0] 
     638        # Finally check the highlighted cell if any cells missing 
     639        for row in range(grid.get_nofrows()): 
     640            if grid.IsInSelection(row, col): 
     641                cel = (row, col) 
     642                if row < 1: 
     643                    continue 
     644                if not grid.GetCellValue(row, col): 
     645                    continue 
     646                if cel not in grid.selected_cells: 
     647                    grid.selected_cells.append(cel) 
     648                         
    615649    def get_column_labels(self): 
    616650        """ 
     
    655689        if len(cell_list) > 0: 
    656690            if len(cell_list) == 1: 
    657                  row_min, col  = cell_list[0]     
    658                  col_name =  grid.GetColLabelValue(int(col))#grid.GetCellValue(0, col) 
    659                  col_title = grid.GetCellValue(0, col) 
    660                  label = create_label(col_name, row_min+1 , row_min+1) 
    661                  return  label,  col_title 
     691                row_min, col  = cell_list[0]     
     692                col_name =  grid.GetColLabelValue(int(col)) 
     693                  
     694                col_title = grid.GetCellValue(0, col) 
     695                label = create_label(col_name, row_min+1 , row_min+1) 
     696                return  label,  col_title 
    662697            else: 
    663698                temp_list = copy.deepcopy(cell_list) 
     
    666701                row_min, col  = temp_list[0]     
    667702                row_max, _  = temp_list[length-1] 
    668                 col_name =  grid.GetColLabelValue(int(col))#grid.GetCellValue(0, col) 
     703                col_name = grid.GetColLabelValue(int(col)) 
    669704                col_title = grid.GetCellValue(0, col) 
     705 
    670706                index = 0 
    671                 for row in xrange(row_min, row_max +1): 
     707                for row in xrange(row_min, row_max + 1): 
    672708                    if index > 0 and index < len(temp_list): 
    673709                        new_row, _ = temp_list[index] 
     
    676712                            if index -1 >= 0: 
    677713                                new_row, _ = temp_list[index-1] 
    678                                 if not new_row==None and new_row!=' ' : 
    679                                     label += create_label(col_name, None, int(new_row) +1) 
     714                                if not new_row == None and new_row != ' ' : 
     715                                    label += create_label(col_name, None,  
     716                                                          int(new_row) +1) 
    680717                                else: 
    681718                                    label += "]" 
     
    684721                                new_row, _ = temp_list[index + 1] 
    685722                                if not new_row==None: 
    686                                     label += create_label(col_name, int(new_row)+1, None) 
     723                                    label += create_label(col_name,  
     724                                                          int(new_row)+1, None) 
    687725                    if row_min != None and row_max != None: 
    688726                        if index == 0: 
    689                             label += create_label(col_name,  int(row_min)+1, None) 
     727                            label += create_label(col_name,   
     728                                                  int(row_min)+1, None) 
    690729                        elif index == len(temp_list)-1: 
    691                             label += create_label(col_name, None, int(row_max)+1) 
     730                            label += create_label(col_name, None,  
     731                                                  int(row_max)+1) 
    692732                    index += 1 
    693733                # clean up the list 
    694734                label_out = '' 
    695735                for item in label.split(','): 
    696                     if item.split(":")[1]=="]": 
     736                    if item.split(":")[1] == "]": 
    697737                        continue 
    698738                    else: 
     
    707747        if self.GetPageCount() == 1: 
    708748            event.Veto() 
    709         self.enable_close_button() 
     749        wx.CallAfter(self.enable_close_button) 
    710750         
    711751    def set_data(self, data_inputs, data_outputs, details="", file_name=None): 
     
    806846        self.plot_button = None 
    807847        self.notebook = None 
     848        self.plot_num = 1 
    808849        
    809850        self.layout_grid() 
     
    869910        grid = self.notebook.GetPage(pos) 
    870911        title = self.notebook.GetPageText(pos) 
     912        self.notebook.get_highlighted_row() 
    871913        if len(grid.selected_cells) == 0: 
    872914            msg = "Highlight a Data or Chi2 column first..." 
     
    937979                                    #time.sleep(0.5)  
    938980                                    return 
    939                                     #continue   
    940                         """ 
    941                         wx.PostEvent(self.parent.parent,  
    942                                      NewPlotEvent(action="clear", 
    943                                                   group_id=str(group_id), 
    944                                                   title=title))  
    945                         """  
     981 
    946982                        wx.PostEvent(self.parent.parent,  
    947983                                     NewPlotEvent(plot=new_plot,  
     
    963999                    #continue 
    9641000     
    965          
    966       
    967      
    9681001    def on_plot(self, event): 
    9691002        """ 
     
    9821015                raise ValueError, msg 
    9831016        except: 
    984              wx.PostEvent(self.parent.parent,  
    985                              StatusEvent(status=msg, info="error"))  
    986              return 
    987  
     1017            msg = "X axis value error." 
     1018            wx.PostEvent(self.parent.parent,  
     1019                            StatusEvent(status=msg, info="error"))  
     1020            return 
    9881021        dict = parse_string(sentence, column_names.keys()) 
    989         sentence = self.get_sentence(dict, sentence, column_names) 
     1022         
    9901023        try: 
     1024            sentence = self.get_sentence(dict, sentence, column_names) 
    9911025            x = eval(sentence) 
    9921026        except: 
     
    9971031        #evaluate y 
    9981032        sentence = self.y_axis_label.GetValue() 
    999         if sentence.strip() == "": 
    1000             msg = "select value for y axis" 
    1001             raise ValueError, msg 
     1033        try: 
     1034            if sentence.strip() == "": 
     1035                msg = "select value for y axis" 
     1036                raise ValueError, msg 
     1037        except: 
     1038            msg = "Y axis value error." 
     1039            wx.PostEvent(self.parent.parent,  
     1040                            StatusEvent(status=msg, info="error"))  
     1041            return 
    10021042        dict = parse_string(sentence, column_names.keys()) 
    1003         sentence = self.get_sentence(dict, sentence, column_names) 
    10041043        try: 
     1044            sentence = self.get_sentence(dict, sentence, column_names) 
    10051045            y = eval(sentence) 
    10061046        except: 
     
    10521092        try: 
    10531093            title = y_title.strip() 
    1054             title += self.notebook.GetPageText(pos) 
     1094             
     1095            title += "_" + self.notebook.GetPageText(pos) 
     1096            title += "_" + str(self.plot_num) 
     1097            self.plot_num += 1 
    10551098            new_plot.name = title 
    10561099            new_plot.xtransform = "x" 
     
    13461389        """ 
    13471390        if self.parent is not None: 
    1348             self.parent.on_read_batch_tofile(event) 
     1391            self.parent.on_read_batch_tofile(self) 
    13491392             
    13501393    def open_with_excel(self, event): 
  • sansguiframe/src/sans/guiframe/gui_manager.py

    rd560a37 r86a9e6c  
    374374        self.show_batch_frame(None) 
    375375         
    376     def on_read_batch_tofile(self, event): 
     376    def on_read_batch_tofile(self, base): 
    377377        """ 
    378378        Open a file dialog , extract the file to read and display values 
     
    382382        if self._default_save_location == None: 
    383383            self._default_save_location = os.getcwd() 
    384          
    385         dlg = wx.FileDialog(self,  
     384        wildcard = "(*.csv; *.txt)|*.csv; *.txt" 
     385        dlg = wx.FileDialog(base,  
    386386                            "Choose a file",  
    387387                            self._default_save_location, "", 
    388                              "(*.csv)|*.csv| Text Files (*.txt)|*.txt") 
     388                             wildcard) 
    389389        if dlg.ShowModal() == wx.ID_OK: 
    390390            path = dlg.GetPath() 
     
    392392                self._default_save_location = os.path.dirname(path) 
    393393        dlg.Destroy() 
    394         self.read_batch_tofile(file_name=path) 
    395          
     394        try: 
     395            self.read_batch_tofile(file_name=path) 
     396        except: 
     397            msg = "Error occurred when reading the file; %s\n"% path 
     398            msg += "%s\n"% sys.exc_value 
     399            wx.PostEvent(self, StatusEvent(status=msg, 
     400                                             info="error")) 
     401             
    396402    def read_batch_tofile(self, file_name): 
    397403        """ 
     
    446452            c_name = col_name_toks[col_index] 
    447453            if c_name.strip() != "": 
    448                 data[c_name] = [ lines[row].split(separator)[c_index] 
    449                                 for row in range(index + 1, len(lines)-1)] 
     454                # distinguish between column name and value 
     455                try: 
     456                    float(c_name) 
     457                    col_name = "Column %s"% str(col_index + 1) 
     458                    index_min = index 
     459                except: 
     460                    col_name = c_name 
     461                    index_min = index + 1 
     462                data[col_name] = [ lines[row].split(separator)[c_index] 
     463                                for row in range(index_min, len(lines)-1)] 
    450464                c_index += 1 
    451465                 
Note: See TracChangeset for help on using the changeset viewer.