Ignore:
Timestamp:
Sep 15, 2011 3:57:37 PM (13 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:
c8537b5a
Parents:
581d1d4
Message:

working on grid

File:
1 edited

Legend:

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

    r656d65d rdadf255  
    113113            self.axis_value = [] 
    114114            self.axis_label = "" 
    115         if cell in self.selected_cells: 
    116             self.selected_cells.remove(cell) 
     115        if cell not in self.selected_cells: 
     116            if row > 0: 
     117                self.selected_cells.append(cell) 
    117118        else: 
    118             self.selected_cells.append(cell) 
    119         if row > 1: 
    120             if (cell) in self.selected_cells: 
    121                 self.axis_value.append(self.GetCellValue(row, col)) 
    122         self.axis_label = self.GetCellValue(row, col) 
     119            if flag: 
     120                self.selected_cells.remove(cell) 
     121        self.axis_value = [] 
     122        for cell_row, cell_col in self.selected_cells: 
     123            if cell_row > 0 and cell_row < self.max_row_touse: 
     124                self.axis_value.append(self.GetCellValue(cell_row, cell_col)) 
     125        self.axis_label = self.GetCellValue(0, col) 
    123126        event.Skip() 
    124127       
     
    129132        flag = event.CmdDown() or event.ControlDown() 
    130133        col = event.GetCol() 
     134        if not flag: 
     135            self.selected_cols = [] 
     136            self.selected_cells = [] 
     137            self.axis_label = "" 
     138        for row in range(1, self.GetNumberRows()+ 1): 
     139            cell = (row, col) 
     140            if row > 0 and row < self.max_row_touse: 
     141                if cell not in self.selected_cells: 
     142                    self.selected_cells.append(cell) 
     143        self.selected_cols.append(col) 
     144        self.axis_value = [] 
     145        for cell_row, cell_col in self.selected_cells: 
     146            self.axis_value.append(self.GetCellValue(cell_row, cell_col)) 
     147        self.axis_label = self.GetCellValue(0, col) 
    131148        event.Skip() 
     149         
    132150         
    133151    def on_right_click(self, event): 
     
    176194            col_name = self.GetCellValue(row, col) 
    177195            self.data[col_name] = [] 
    178             for row in range(1, self.GetNumberRows()): 
    179                 if row <= self.max_row_touse: 
     196            for row in range(1, self.GetNumberRows() + 1): 
     197                if row < self.max_row_touse: 
    180198                    value = self.GetCellValue(row, col) 
    181199                    self.data[col_name].append(value) 
     
    224242        """ 
    225243        Add data to the grid 
     244        :param data_inputs: data to use from the context menu of the grid 
     245        :param data_ouputs: default columns deplayed 
    226246        """ 
    227247        if data_outputs is None: 
     
    320340            msg += "Please select only one column" 
    321341            raise ValueError, msg 
    322         list_of_cells = [] 
    323342        if len(grid.selected_cols) == 1: 
    324343            col = grid.selected_cols[0] 
     
    329348                    msg += "Please select element of the same col" 
    330349                    raise ValueError, msg 
    331             for row in range(grid.GetNumberRows()): 
    332                 list_of_cells.append((row + 1 , col)) 
    333             for item in grid.selected_cells: 
    334                 if item in list_of_cells: 
    335                     list_of_cells.remove(item) 
    336         elif len(grid.selected_cols) == 0: 
    337             list_of_cells = [(row + 1, col) for row, col in grid.selected_cells] 
    338         return list_of_cells 
     350        return grid.selected_cells 
     351        
    339352     
    340353    def get_column_labels(self): 
     
    363376        label = "" 
    364377        col_name = "" 
     378        def create_label(col_name,  row_min=None, row_max=None): 
     379            """ 
     380            """ 
     381            result = "" 
     382            if row_min is not  None or row_max is not None: 
     383                if row_min is None: 
     384                    result = str(row_max) + "]" 
     385                elif row_max is None: 
     386                     result = str(col_name) + "[" + str(row_min) + ":" 
     387                else: 
     388                    result = str(col_name) +  "[" + str(row_min) + ":" 
     389                    result += str(col_name) + str(row_max) + "]" 
     390            return result 
     391             
    365392        if len(cell_list) > 0: 
    366             temp_list = copy.deepcopy(cell_list) 
    367             temp_list.sort() 
    368             temp = [] 
    369             for item in temp_list: 
    370                 if item[0] <= 1: 
    371                     temp.append(item) 
    372             for element in temp: 
    373                 temp_list.remove(element) 
    374             row_min, col  = temp_list[0]     
    375             row_max = row_min 
    376             col_name = grid.GetCellValue(0, col) 
    377             label += str(col_name) + "[" + str(row_min) + ":" 
    378             for index in xrange(len(temp_list)): 
    379                 prev = index - 1 
    380                 row, _ = temp_list[index] 
    381                 if row > row_max + 1 : 
    382                     if prev > 0: 
    383                         row_max, _ = temp_list[prev] 
    384                         label += str(row_max) + "]" + "," 
    385                         row_min = row 
    386                         label  += "[" + str(row_min) + ":" 
    387                 row_max = row 
    388                 if (index == len(temp_list)- 1): 
    389                     label +=  str(row_max) + "]"      
    390         return label, col_name 
     393            if len(cell_list) == 1: 
     394                 row_min, col  = cell_list[0]     
     395                 col_name = grid.GetCellValue(0, col) 
     396                 label = create_label(col_name, row_min+1 , row_min+1) 
     397                 return  label,  col_name 
     398            else: 
     399                temp_list = copy.deepcopy(cell_list) 
     400                temp_list.sort() 
     401                length = len(temp_list) 
     402                row_min, col  = temp_list[0]     
     403                row_max, _  = temp_list[length-1] 
     404                col_name = grid.GetCellValue(0, col) 
     405                index = 0 
     406                for row in xrange(row_min, row_max +1): 
     407                    if index > 0 and index < len(temp_list): 
     408                        new_row, _ = temp_list[index] 
     409                        if row != new_row: 
     410                            temp_list.insert(index, (None, None)) 
     411                            if index -1 >=0: 
     412                                new_row, _ = temp_list[index-1] 
     413                                label += create_label(col_name, None, new_row +1) 
     414                                label += "," 
     415                            if index + 1 < len(temp_list): 
     416                                new_row, _ = temp_list[index + 1] 
     417                                label += create_label(col_name, new_row+1, None) 
     418                    if index == 0: 
     419                        label += create_label(col_name,  row_min+1, None) 
     420                    elif index == len(temp_list)-1: 
     421                        label += create_label(col_name, None, row_max+1) 
     422                    index += 1 
     423                return label, col_name 
    391424     
    392425    def on_close_page(self, event): 
     
    499532                    axis.append(float(row - 1)) 
    500533                else: 
    501                     axis.append(float(value)) 
     534                    try: 
     535                        axis.append(float(value)) 
     536                    except: 
     537                        msg = "Invalid data in row %s column %s" % (str(row), 
     538                                                                    str(col)) 
     539                        wx.PostEvent(self.parent.parent,  
     540                             SatusEvent(status=msg, info="error"))  
    502541            else: 
    503542                axis.append(None)  
     
    561600        try: 
    562601            title = self.notebook.GetPageText(pos) 
    563             data.name = title 
     602            new_plot.name = title 
    564603            wx.PostEvent(self.parent.parent,  
    565604                             NewPlotEvent(plot=new_plot,  
    566605                        group_id=str(new_plot.group_id), title =title))     
    567606        except: 
    568             pass 
     607             wx.PostEvent(self.parent.parent,  
     608                             SatusEvent(status=msg, info="error"))  
    569609         
    570610    def layout_grid(self): 
Note: See TracChangeset for help on using the changeset viewer.