Changeset 8523a1f2 in sasview for sansguiframe/src


Ignore:
Timestamp:
Sep 12, 2011 4:38:17 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:
c911f34
Parents:
33dd2e5
Message:

working data processor grid

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

Legend:

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

    r83eb1b52 r8523a1f2  
    2222FUNC_DICT = {"sqrt": "math.sqrt", 
    2323             "pow": "math.sqrt"} 
    24  
    2524 
    2625 
     
    7473        self.panel = panel 
    7574        self.col_names = [] 
     75        self.data_inputs = {} 
     76        self.data_outputs = {} 
    7677        self._cols = 50 
    7778        self._rows = 51 
     
    164165        self.panel.set_yaxis(y=self.axis_value, label=self.axis_label)      
    165166             
    166     def set_data(self, data): 
     167    def set_data(self, data_inputs, data_outputs): 
    167168        """ 
    168169        Add data to the grid 
    169170        """ 
    170         if data is None: 
    171             data = {} 
    172         if  len(data) > 0: 
     171        if data_outputs is None: 
     172            data_outputs = {} 
     173        self.data_outputs = data_outputs 
     174        if self.data_inputs is None: 
     175            data_inputs = {} 
     176        self.data_inputs = data_inputs 
     177         
     178        if  len(self.data_outputs) > 0: 
    173179            self._cols = self.GetNumberCols() 
    174180            self._rows = self.GetNumberRows() 
    175             self.data = data 
    176             self.col_names = data.keys() 
     181            self.col_names = self.data_outputs.keys() 
    177182            self.col_names.sort()  
    178183            nbr_user_cols = len(self.col_names) 
     
    182187                self.AppendCols(new_col_nbr, True) 
    183188            #Add more rows to the grid if necessary   
    184             nbr_user_row = len(self.data.values()) 
     189            nbr_user_row = len(self.data_outputs.values()) 
    185190            if nbr_user_row > self._rows + 1: 
    186191                new_row_nbr =  nbr_user_row - self._rows  
     
    188193            # add data to the grid     
    189194            row = 0 
    190             for index  in range(nbr_user_cols): 
    191                 col = index 
     195            col = 0 
     196            cell_col = 0 
     197            for col_name in  self.col_names: 
    192198                # use the first row of the grid to add user defined labels 
    193                 self.SetCellValue(row, col, str(self.col_names[index])) 
    194             col = 0 
    195             for value_list in self.data.values(): 
    196                 row = 1 
    197                 for index in range(len(value_list)): 
    198                     self.SetCellValue(row, col, str(value_list[index])) 
    199                     row += 1 
     199                self.SetCellValue(row, col, str(col_name)) 
    200200                col += 1 
     201                cell_row =  1 
     202                value_list = self.data_outputs[col_name] 
     203                 
     204                for value in value_list: 
     205                    self.SetCellValue(cell_row, cell_col, str(value)) 
     206                    cell_row += 1 
     207                cell_col += 1 
    201208            self.AutoSize() 
    202209            
     
    331338        self.enable_close_button() 
    332339         
    333     def set_data(self, data): 
    334         if data is None: 
     340    def set_data(self, data_inputs, data_outputs): 
     341        if data_outputs is None or data_outputs == {}: 
    335342            return 
    336              
    337343        grid = GridPage(self, panel=self.parent) 
    338         grid.set_data(data 
     344        grid.set_data(data_inputs, data_outputs 
    339345        self.AddPage(grid, "") 
    340346        pos = self.GetPageIndex(grid) 
     
    368374 
    369375class GridPanel(SPanel): 
    370     def __init__(self, parent, data=None, *args, **kwds): 
     376    def __init__(self, parent, data_inputs=None, 
     377                 data_outputs=None, *args, **kwds): 
    371378        SPanel.__init__(self, parent , *args, **kwds) 
    372379        self.vbox = wx.BoxSizer(wx.VERTICAL) 
     
    378385                           (self.plotting_sizer)]) 
    379386        self.parent = parent 
    380         self._data = data 
     387        self._data_inputs = data_inputs 
     388        self._data_outputs = data_outputs 
    381389        self.x = [] 
    382390        self.y  = [] 
     
    393401        self.SetSizer(self.vbox) 
    394402         
    395     def set_data(self, data): 
     403    def set_data(self, data_inputs, data_outputs): 
    396404        """ 
    397405        """ 
    398406        if self.notebook is not None: 
    399             self.notebook.set_data(data) 
     407            self.notebook.set_data(data_inputs, data_outputs) 
    400408         
    401409    def set_xaxis(self, label="", x=None): 
     
    488496        """ 
    489497        self.notebook = Notebook(parent=self) 
    490         self.notebook.set_data(self._data) 
     498        self.notebook.set_data(self._data_inputs, self._data_outputs) 
    491499        self.grid_sizer.Add(self.notebook, 1, wx.EXPAND, 0) 
    492500        
     
    582590         
    583591class GridFrame(wx.Frame): 
    584     def __init__(self, parent=None, data=None, id=-1,  
     592    def __init__(self, parent=None, data_inputs=None, data_outputs=None, id=-1,  
    585593                 title="Batch Results", size=(700, 400)): 
    586594        wx.Frame.__init__(self, parent=parent, id=id, title=title, size=size) 
    587595        self.parent = parent 
    588         self.panel = GridPanel(self, data) 
     596        self.panel = GridPanel(self, data_inputs, data_outputs) 
    589597        menubar = wx.MenuBar() 
    590598        self.SetMenuBar(menubar) 
     
    616624        self.panel.add_column() 
    617625         
    618     def set_data(self, data): 
    619         """ 
    620         """ 
    621         self.panel.set_data(data) 
     626    def set_data(self, data_inputs, data_outputs): 
     627        """ 
     628        """ 
     629        self.panel.set_data(data_inputs, data_outputs) 
    622630       
    623631       
     
    626634    Allow to select where the result of batch will be displayed or stored 
    627635    """ 
    628     def __init__(self, parent, data=None, file_name="", 
     636    def __init__(self, parent, data_inputs, data_outputs, file_name="", 
    629637                 details="", *args, **kwds): 
    630638        """ 
     
    639647        self.file_name = file_name 
    640648        self.details = details 
    641         self.data = data 
     649        self.data_inputs = data_inputs 
     650        self.data_outputs = data_outputs 
     651        self.data = {} 
     652        for item in (self.data_outputs, self.data_inputs): 
     653            self.data.update(item) 
    642654        self.flag = 1 
    643655        self.SetSize((300, 200)) 
     
    646658        self.save_to_file = None 
    647659        self._do_layout() 
    648  
     660     
    649661    def _do_layout(self): 
    650662        """ 
     
    710722        """ 
    711723        if self.flag == 1: 
    712             self.parent.open_with_localapp(self.data) 
     724            self.parent.open_with_localapp(data_inputs=self.data_inputs, 
     725                                            data_outputs=self.data_outputs) 
    713726        elif self.flag == 2: 
    714727            self.parent.open_with_externalapp(data=self.data,  
     
    762775            data["index"+str(i)] = [i/j, i*j, i, i+j] 
    763776             
    764         frame = GridFrame(data=data) 
     777        frame = GridFrame(data_outputs=data, data_inputs=data) 
    765778        frame.Show(True) 
    766779    except: 
  • sansguiframe/src/sans/guiframe/gui_manager.py

    rdc79cfc r8523a1f2  
    287287        self.setup_custom_conf() 
    288288     
    289     def on_set_batch_result(self, data, plugin_name): 
     289    def on_set_batch_result(self, data_outputs, data_inputs=None, 
     290                             plugin_name=""): 
    290291        """ 
    291292        Display data into a grid in batch mode and show the grid 
     
    301302        file_name = self._default_save_location + str(file_name) 
    302303        #Need to save configuration for later  
    303         frame = BatchOutputFrame(parent=self, data=data,  
     304        frame = BatchOutputFrame(parent=self, data_outputs=data_outputs,  
     305                                 data_inputs=data_inputs, 
    304306                                file_name=file_name, 
    305307                                details=details) 
    306308        frame.Show(True) 
    307309     
    308     def open_with_localapp(self, data): 
     310    def open_with_localapp(self, data_inputs, data_outputs): 
    309311        """ 
    310312        Display value of data into the application grid 
    311313        :param data: dictionary of string and list of items 
    312314        """ 
    313         self.batch_frame.set_data(data) 
     315        self.batch_frame.set_data(data_inputs, data_outputs) 
    314316        self.batch_frame.Show(True) 
    315317         
     
    349351        buffer = fd.read() 
    350352        lines = buffer.split('\n') 
     353        fd.close() 
    351354        column_names_line  = "" 
    352355        index = None 
Note: See TracChangeset for help on using the changeset viewer.