Ignore:
Timestamp:
Oct 6, 2011 9:40:56 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:
01642fec
Parents:
92b2fd8
Message:

almost to copy array disp too: but still many to go

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fittingview/src/sans/perspectives/fitting/basepage.py

    r706667b race0e33  
    24882488                        item[0].Disable() 
    24892489                        item[2].Disable() 
     2490                        item[3].Show(False) 
     2491                        item[4].Show(False) 
    24902492                        item[5].Disable() 
    24912493                        item[6].Disable() 
     
    29042906                disfunc = ',' + disfunc 
    29052907            # TODO: to support array func for copy/paste 
    2906             if disfunc.count('array') == 0: 
    2907                 content += name + ',' + value + disfunc + ':' 
     2908            try: 
     2909                if disfunc.count('array') > 0: 
     2910                    disfunc += ',' 
     2911                    for val in self.values[name]: 
     2912                        disfunc += ' ' + str(val) 
     2913                    disfunc += ',' 
     2914                    for weight in self.weights[name]: 
     2915                        disfunc += ' ' + str(weight) 
     2916            except: 
     2917                pass 
     2918            #if disfunc.count('array') == 0: 
     2919            content += name + ',' + value + disfunc + ':' 
    29082920 
    29092921        return content 
     
    29562968            try: 
    29572969                poly_func = item[2] 
     2970                context[name].append(poly_func) 
     2971                try: 
     2972                    # take the vals and weights for  array  
     2973                    array_values = item[3].split(' ') 
     2974                    array_weights = item[4].split(' ') 
     2975                    val = [float(a_val) for a_val in array_values[1:]] 
     2976                    weit = [float(a_weit) for a_weit in array_weights[1:]] 
     2977                     
     2978                    context[name].append(val) 
     2979                    context[name].append(weit) 
     2980                except: 
     2981                    raise 
    29582982            except: 
    2959                 poly_func = None 
    2960             context[name].append(poly_func) 
     2983                poly_func = '' 
     2984                context[name].append(poly_func) 
    29612985 
    29622986        # Do it if params exist         
     
    29953019                name = item[1] 
    29963020                if name in content.keys(): 
    2997                      
     3021                    pd = content[name][0] 
    29983022                    if name.count('.') > 0: 
    29993023                        try: 
    3000                             float(content[name][0]) 
     3024                            float(pd) 
    30013025                        except: 
    30023026                            continue 
    3003                     item[2].SetValue(content[name][0]) 
     3027                            #if not pd and pd != '': 
     3028                            #    continue 
     3029                    item[2].SetValue(str(pd)) 
     3030                     
    30043031                    if item[2].__class__.__name__ == "ComboBox": 
    30053032                        if self.model.fun_list.has_key(content[name][0]): 
     
    30073034                            self.model.setParam(name,fun_val) 
    30083035                     
    3009                     poly_func = content[name][1] 
    3010                     if poly_func: 
    3011                         try: 
    3012                             item[7].SetValue(poly_func) 
    3013                             selection = item[7].GetCurrentSelection() 
    3014                             param_name = item[7].Name.split('.')[0] 
    3015                             disp_name = item[7].GetValue() 
    3016                             dispersity= item[7].GetClientData(selection) 
    3017                             disp_model = dispersity() 
    3018                             #disp_model = self._disp_obj_dict[name] 
    3019                             self.model.set_dispersion(param_name, disp_model) 
    3020                             self.state._disp_obj_dict[param_name]= disp_model 
    3021                         except: 
    3022                             pass            
     3036                    value = content[name] 
     3037                    self._paste_poly_help(item, value) 
    30233038        # 1D 
    30243039            else: 
     
    30293044                        # Avoid changing combox content which needs special care 
    30303045                        value = content[name] 
     3046                        pd = value[0] 
    30313047                        if name.count('.') > 0: 
    30323048                            try: 
    3033                                 float(value[0]) 
     3049                                pd = float(pd) 
    30343050                            except: 
    30353051                                continue 
    3036                         item[2].SetValue(value[0]) 
     3052                                #if not pd and pd != '': 
     3053                                #    continue 
     3054                        item[2].SetValue(str(pd)) 
     3055                        if item in self.fixed_param and pd == '': 
     3056                            # Only array func has pd == '' case. 
     3057                            item[2].Enable(False) 
    30373058                        if item[2].__class__.__name__ == "ComboBox": 
    30383059                            if self.model.fun_list.has_key(value[0]): 
     
    30423063                                #self._copy_parameters_state(self.str_parameters,  
    30433064                                #    self.state.str_parameters) 
    3044                         if value[1]: 
    3045                             try: 
    3046                                 item[7].SetValue(value[1]) 
    3047                                 selection = item[7].GetCurrentSelection() 
    3048                                 param_name = item[7].Name.split('.')[0] 
    3049                                 disp_name = item[7].GetValue() 
    3050                                 dispersity= item[7].GetClientData(selection) 
    3051                                 disp_model = dispersity() 
    3052                                 self.model.set_dispersion(param_name, disp_model) 
    3053                                 self.state._disp_obj_dict[param_name]= disp_model 
    3054                             except: 
    3055                                 pass 
     3065                        self._paste_poly_help(item, value) 
     3066                         
     3067    def _paste_poly_help(self, item, value): 
     3068        """ 
     3069        Helps get paste for poly function 
     3070         
     3071        :param item: Gui param items 
     3072        :param value: the values for parameter ctrols 
     3073        """ 
     3074        if len(value[1]) > 0: 
     3075            # Only for dispersion func.s 
     3076            try: 
     3077                item[7].SetValue(value[1]) 
     3078                selection = item[7].GetCurrentSelection() 
     3079                param_name = item[7].Name.split('.')[0] 
     3080                disp_name = item[7].GetValue() 
     3081                dispersity= item[7].GetClientData(selection) 
     3082                disp_model = dispersity() 
     3083                # Only for array disp 
     3084                try: 
     3085                    pd_vals = numpy.array(value[2]) 
     3086                    pd_weights = numpy.array(value[3]) 
     3087                    if len(pd_vals) > 0 and len(pd_vals) > 0: 
     3088                        if len(pd_vals) == len(pd_weights): 
     3089                            disp_model.set_weights(pd_vals,  
     3090                                                   pd_weights) 
     3091                            self.values[param_name] = pd_vals 
     3092                            self.weights[param_name] = pd_weights 
     3093                            # disable the fixed items for array 
     3094                            item[0].SetValue(False) 
     3095                            item[0].Enable(False) 
     3096                            item[2].Enable(False) 
     3097                            item[4].Show(False) 
     3098                            item[5].SetValue('') 
     3099                            item[5].Enable(False) 
     3100                            item[6].SetValue('') 
     3101                            item[6].Enable(False) 
     3102                except: 
     3103                    pass  
     3104                self._disp_obj_dict[param_name] = disp_model 
     3105                self.model.set_dispersion(param_name,  
     3106                                          disp_model) 
     3107                self.state._disp_obj_dict[param_name] = \ 
     3108                                          disp_model 
     3109                     
     3110            except: 
     3111                pass  
Note: See TracChangeset for help on using the changeset viewer.