Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/fitpanel.py

    rc9ecd1b r5251ec6  
    99from wx.aui import AuiNotebook as nb 
    1010 
     11from sas.sascalc.fit.models import ModelManager 
     12 
    1113from sas.sasgui.guiframe.panel_base import PanelBase 
    1214from sas.sasgui.guiframe.events import PanelOnFocusEvent, StatusEvent 
    1315from sas.sasgui.guiframe.dataFitting import check_data_validity 
    14 from sas.sasgui.perspectives.fitting.simfitpage import SimultaneousFitPage 
    15  
    16 import basepage 
    17 import models 
     16 
     17 
     18from . import basepage 
     19from .fitpage import FitPage 
     20from .simfitpage import SimultaneousFitPage 
     21from .batchfitpage import BatchFitPage 
     22from .fitting_widgets import BatchDataDialog 
     23 
    1824_BOX_WIDTH = 80 
    1925 
     
    4652        self.event_owner = None 
    4753        # dictionary of miodel {model class name, model class} 
    48         self.menu_mng = models.ModelManager() 
     54        self.menu_mng = ModelManager() 
    4955        self.model_list_box = self.menu_mng.get_model_list() 
    5056        # pageClosedEvent = nb.EVT_FLATNOTEBOOK_PAGE_CLOSING 
     
    8894            batch_state = self.sim_page.set_state() 
    8995 
    90         for uid, page in self.opened_pages.iteritems(): 
     96        for uid, page in self.opened_pages.items(): 
    9197            data = page.get_data() 
    9298            # state must be cloned 
     
    114120        """ 
    115121        temp = self.menu_mng.update() 
    116         if len(temp): 
     122        if temp: 
    117123            self.model_list_box = temp 
    118124        return temp 
     
    121127        """ 
    122128        """ 
    123         temp = self.menu_mng.plugins_reset() 
    124         if len(temp): 
    125             self.model_list_box = temp 
    126         return temp 
     129        self.model_list_box = self.menu_mng.plugins_reset() 
     130        return self.model_list_box 
    127131 
    128132    def get_page_by_id(self, uid): 
     
    131135        if uid not in self.opened_pages: 
    132136            msg = "Fitpanel cannot find ID: %s in self.opened_pages" % str(uid) 
    133             raise ValueError, msg 
     137            raise ValueError(msg) 
    134138        else: 
    135139            return self.opened_pages[uid] 
     
    213217        page_is_opened = False 
    214218        if state is not None: 
    215             for uid, panel in self.opened_pages.iteritems(): 
     219            for uid, panel in self.opened_pages.items(): 
    216220                # Don't return any panel is the exact same page is created 
    217221                if uid == panel.uid and panel.data == state.data: 
     
    298302        self.model_list_box = dict 
    299303 
    300     def set_model_dict(self, m_dict): 
     304    def set_model_dictionary(self, model_dictionary): 
    301305        """ 
    302306        copy a dictionary of model name -> model object 
    303307 
    304         :param m_dict: dictionary linking model name -> model object 
     308        :param model_dictionary: dictionary linking model name -> model object 
    305309        """ 
    306310 
     
    316320        Add the simultaneous fit page 
    317321        """ 
    318         from simfitpage import SimultaneousFitPage 
    319322        page_finder = self._manager.get_page_finder() 
    320323        if caption == "Const & Simul Fit": 
     
    344347        """ 
    345348        if self.batch_on: 
    346             from batchfitpage import BatchFitPage 
    347349            panel = BatchFitPage(parent=self) 
    348350            self.batch_page_index += 1 
     
    351353        else: 
    352354            # Increment index of fit page 
    353             from fitpage import FitPage 
    354355            panel = FitPage(parent=self) 
    355356            self.fit_page_index += 1 
     
    359360        panel._set_save_flag(not panel.batch_on) 
    360361        panel.set_model_dictionary(self.model_dictionary) 
    361         panel.populate_box(model_dict=self.model_list_box) 
     362        panel.populate_box(model_list_box=self.model_list_box) 
    362363        panel.formfactor_combo_init() 
    363364        panel.set_manager(self._manager) 
     
    395396        """ 
    396397        if data.__class__.__name__ != "list": 
    397             raise ValueError, "Fitpanel delete_data expect list of id" 
     398            raise ValueError("Fitpanel delete_data expect list of id") 
    398399        else: 
    399400            for page in self.opened_pages.values(): 
     
    445446        if data_1d_list and data_2d_list: 
    446447            # need to warning the user that this batch is a special case 
    447             from sas.sasgui.perspectives.fitting.fitting_widgets import \ 
    448                 BatchDataDialog 
    449448            dlg = BatchDataDialog(self) 
    450449            if dlg.ShowModal() == wx.ID_OK: 
     
    503502            if data is None: 
    504503                return None 
     504        focused_page = self.GetPage(self.GetSelection()) 
    505505        for page in self.opened_pages.values(): 
    506506            # check if the selected data existing in the fitpanel 
    507507            pos = self.GetPageIndex(page) 
    508508            if not check_data_validity(page.get_data()) and not page.batch_on: 
     509                if page.model is not None and page != focused_page: 
     510                    # Page has an active theory and is in background - don't 
     511                    # send data here. 
     512                    continue 
    509513                # make sure data get placed in 1D empty tab if data is 1D 
    510514                # else data get place on 2D tab empty tab 
     
    588592        if selected_page in page_finder: 
    589593            # Delete the name of the page into the list of open page 
    590             for uid, list in self.opened_pages.iteritems(): 
     594            for uid, list in self.opened_pages.items(): 
    591595                # Don't return any panel is the exact same page is created 
    592596                if flag and selected_page.uid == uid: 
     
    596600 
    597601        # Delete the name of the page into the list of open page 
    598         for uid, list in self.opened_pages.iteritems(): 
     602        for uid, list in self.opened_pages.items(): 
    599603            # Don't return any panel is the exact same page is created 
    600604            if selected_page.uid == uid: 
Note: See TracChangeset for help on using the changeset viewer.