Changeset ae84427 in sasview for fittingview/src


Ignore:
Timestamp:
Apr 20, 2013 7:14:41 PM (11 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:
ba152f1
Parents:
d4895dd
Message:

mdi frames for main applications

Location:
fittingview/src/sans/perspectives/fitting
Files:
4 edited

Legend:

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

    rcb270ad2 rae84427  
    713713        msg = menu.GetHelpString(event.GetId()) 
    714714        msg += " reloaded" 
    715         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     715        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    716716        self.Show(False) 
    717717        name = menu.GetLabel(event.GetId()) 
     
    746746        if self.parent != None: 
    747747            self._default_save_location = \ 
    748                         self.parent.parent._default_save_location 
     748                        self._manager.parent._default_save_location 
    749749        dlg = wx.FileDialog(self, "Choose a file", self._default_save_location, 
    750750                                        self.window_caption, "*.fitv", wx.SAVE) 
     
    753753            path = dlg.GetPath() 
    754754            self._default_save_location = os.path.dirname(path) 
    755             self.parent.parent._default_save_location =\ 
     755            self._manager.parent._default_save_location =\ 
    756756                                 self._default_save_location 
    757757        else: 
     
    803803            msg += ": No valid parameter values to paste from the clipboard..." 
    804804            infor = "error" 
    805             wx.PostEvent(self.parent.parent, 
     805            wx.PostEvent(self._manager.parent, 
    806806                    StatusEvent(status=msg, info=infor)) 
    807807            raise 
    808808        # inform msg to wx 
    809         wx.PostEvent(self.parent.parent, 
     809        wx.PostEvent(self._manager.parent, 
    810810                    StatusEvent(status=msg, info=infor)) 
    811811         
     
    843843        ## post help message for the selected model 
    844844        msg += " Saved! right click on this page to retrieve this model" 
    845         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     845        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    846846         
    847847        id = wx.NewId() 
    848848        self.popUpMenu.Append(id, name, str(msg)) 
    849849        wx.EVT_MENU(self, id, self.onResetModel) 
    850         wx.PostEvent(self.parent.parent, 
     850        wx.PostEvent(self._manager.parent, 
    851851                     AppendBookmarkEvent(title=name, 
    852852                                         hint=str(msg), 
     
    877877        try: 
    878878            if path == None: 
    879                 wx.PostEvent(self.parent.parent, 
     879                wx.PostEvent(self._manager.parent, 
    880880                            StatusEvent(status= \ 
    881881                            " Selected Distribution was not loaded: %s" % path)) 
     
    14901490        if self.parent != None: 
    14911491            self._default_save_location = \ 
    1492                         self.parent.parent.get_save_location() 
     1492                        self._manager.parent.get_save_location() 
    14931493        dlg = wx.FileDialog(self, "Choose a weight file", 
    14941494                                self._default_save_location, "", 
     
    17021702            msg = "Cannot Plot or Fit :Must select a " 
    17031703            msg += " model or Fitting range is not valid!!!  " 
    1704             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1704            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    17051705         
    17061706        try: 
     
    20812081        except: 
    20822082            msg = "%s\n" % (sys.exc_value) 
    2083             wx.PostEvent(self.parent.parent, 
     2083            wx.PostEvent(self._manager.parent, 
    20842084                         StatusEvent(status=msg, info="error")) 
    20852085        self._populate_box(self.formfactorbox, m_list) 
     
    21882188        #Clear msg if previously shown. 
    21892189        msg = "" 
    2190         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2190        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    21912191        # Flag to register when a parameter has changed. 
    21922192        is_modified = False 
     
    22232223                else: 
    22242224                    msg = "Cannot Plot :No npts in that Qrange!!!  " 
    2225                     wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2225                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    22262226        else: 
    22272227            tcrtl.SetBackgroundColour("pink") 
    22282228            msg = "Model Error:wrong value entered!!!" 
    2229             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2229            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    22302230        self.save_current_state() 
    22312231        event = PageInfoEvent(page=self) 
     
    23672367                qmax_ctrl.Refresh() 
    23682368                msg = "Invalid Q range: Q min must be smaller than Q max" 
    2369                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2369                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    23702370                return False 
    23712371        return True 
     
    23992399                msg = "Npts of Data Error :" 
    24002400                msg += "No or too little npts of %s." % data.name 
    2401                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2401                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    24022402                self.fitrange = False 
    24032403                flag = False 
     
    24342434                msg = "Npts of Data Error :" 
    24352435                msg += "No or too little npts of %s." % data.name 
    2436                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2436                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    24372437                self.fitrange = False 
    24382438                flag = False 
     
    24852485                        except: 
    24862486                            msg = "Wrong Fit parameter range entered " 
    2487                             wx.PostEvent(self.parent.parent, 
     2487                            wx.PostEvent(self._manager.parent, 
    24882488                                         StatusEvent(status=msg)) 
    24892489                            raise ValueError, msg 
     
    25022502                        except: 
    25032503                            msg = "Wrong Fit parameter range entered " 
    2504                             wx.PostEvent(self.parent.parent, 
     2504                            wx.PostEvent(self._manager.parent, 
    25052505                                         StatusEvent(status=msg)) 
    25062506                            raise ValueError, msg 
     
    25112511                        msg = "Wrong Fit range entered for parameter " 
    25122512                        msg += "name %s of model %s " % (name, self.model.name) 
    2513                         wx.PostEvent(self.parent.parent, 
     2513                        wx.PostEvent(self._manager.parent, 
    25142514                                     StatusEvent(status=msg)) 
    25152515                 
     
    25332533                item[2].SetBackgroundColour("pink") 
    25342534                msg = "Wrong Fit parameter value entered " 
    2535                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2535                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    25362536                 
    25372537        return is_modified 
     
    27632763            # Focus on Fit button so that users can see the pinky box 
    27642764            self.btFit.SetFocus() 
    2765             wx.PostEvent(self.parent.parent, 
     2765            wx.PostEvent(self._manager.parent, 
    27662766                         StatusEvent(status=msg, info="error")) 
    27672767         
     
    27852785            return 
    27862786        self._default_save_location = os.path.dirname(path) 
    2787         if self.parent != None: 
    2788             self.parent.parent._default_save_location =\ 
     2787        if self._manager != None: 
     2788            self._manager.parent._default_save_location =\ 
    27892789                             self._default_save_location 
    27902790 
     
    28002800        # Tell the user that we are about to apply the distribution 
    28012801        msg = "Applying loaded %s distribution: %s" % (name, path) 
    2802         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2802        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    28032803        self._set_array_disp_model(name=name, disp=disp, 
    28042804                                    values=values, weights=weights) 
     
    29472947        if flag == False: 
    29482948            msg = "Cannot Plot :Must enter a number!!!  " 
    2949             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     2949            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    29502950        else: 
    29512951            # set relative text ctrs. 
     
    29832983        res_item = None 
    29842984        # call gui_manager 
    2985         gui_manager = self.parent.parent 
     2985        gui_manager = self._manager.parent 
    29862986        # loops through the panels [dic] 
    29872987        for _, item2 in gui_manager.plot_panels.iteritems(): 
  • fittingview/src/sans/perspectives/fitting/fitpage.py

    r3e001f9 rae84427  
    6868        #create a default data for an empty panel 
    6969        self.create_default_data() 
     70        #self._manager.frame.Bind(wx.EVT_SET_FOCUS, self.on_set_focus) 
    7071     
    7172    def enable_fit_button(self): 
     
    985986        if not flag: 
    986987            msg = "The parameters are invalid" 
    987             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     988            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    988989            return 
    989990         
     
    10001001            return 
    10011002 
    1002         if len(self.parent._manager.fit_thread_list) > 0 and\ 
    1003                     self.parent._manager._fit_engine != "park" and\ 
     1003        if len(self._manager.fit_thread_list) > 0 and\ 
     1004                    self._manager._fit_engine != "park" and\ 
    10041005                    self._manager.sim_page != None and \ 
    10051006                    self._manager.sim_page.uid == self.uid: 
     
    10361037        if not flag: 
    10371038            msg = "Fitting range or parameters are invalid" 
    1038             wx.PostEvent(self.parent.parent, 
     1039            wx.PostEvent(self._manager.parent, 
    10391040                         StatusEvent(status=msg, type="stop")) 
    10401041            return 
     
    12591260        #Clear msg if previously shown. 
    12601261        msg = "" 
    1261         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1262        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    12621263 
    12631264        if check_float(tcrtl): 
     
    13011302            self.save_current_state() 
    13021303            msg = "Cannot Plot :Must enter a number!!!  " 
    1303             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1304            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    13041305              
    13051306        self.save_current_state() 
     
    13131314        #Clear msg if previously shown. 
    13141315        msg = "" 
    1315         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1316        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    13161317        # Flag to register when a parameter has changed. 
    13171318        is_modified = False 
     
    13241325                tcrtl.SetBackgroundColour("pink") 
    13251326                msg = "Model Error:wrong value entered : %s" % sys.exc_value 
    1326                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1327                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    13271328                return 
    13281329        else: 
     
    13571358            d_group_id = self.data.group_id 
    13581359            act_ctrl = event.GetEventObject() 
    1359             wx.PostEvent(self.parent.parent,  
     1360            wx.PostEvent(self._manager.parent,  
    13601361                         PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id,  
    13611362                                     group_id=d_group_id, leftdown=is_click, 
     
    13731374        d_id = self.data.id 
    13741375        d_group_id = self.data.group_id 
    1375         wx.PostEvent(self.parent.parent,  
     1376        wx.PostEvent(self._manager.parent,  
    13761377                     PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id,  
    13771378                                     group_id=d_group_id, leftdown=False,  
     
    14151416        #Clear msg if previously shown. 
    14161417        msg = "" 
    1417         wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1418        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14181419        # For theory mode 
    14191420        if not self.data.is_data: 
     
    14361437                    tcrtl.SetBackgroundColour("pink") 
    14371438                    msg = "Model Error:wrong value entered : %s" % sys.exc_value 
    1438                     wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1439                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14391440                    return 
    14401441            except: 
    14411442                tcrtl.SetBackgroundColour("pink") 
    14421443                msg = "Model Error:wrong value entered : %s" % sys.exc_value 
    1443                 wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1444                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14441445                return 
    14451446            #Check if # of points for theory model are valid(>0). 
     
    14571458                    msg = "Cannot Plot :No or too little npts in" 
    14581459                    msg += " that data range!!!  " 
    1459                     wx.PostEvent(self.parent.parent, 
     1460                    wx.PostEvent(self._manager.parent, 
    14601461                                 StatusEvent(status=msg)) 
    14611462                    return 
     
    14751476            tcrtl.SetBackgroundColour("pink") 
    14761477            msg = "Model Error:wrong value entered!!!" 
    1477             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1478            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14781479         
    14791480        self._draw_model() 
     
    17671768            self.set_npts2fit() 
    17681769            msg = "No model is found on updating MASK in the model plot... " 
    1769             wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1770            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    17701771        else: 
    17711772            event.Skip() 
     
    19831984            try: 
    19841985                wx.PostEvent(self._manager.parent, 
    1985                              NewPlotEvent(action="remove", 
     1986                             NewPlotEvent(action="delete", 
    19861987                                          group_id=old_group_id, id=old_id)) 
    19871988            except: 
     
    20152016            msg += "information.\n" 
    20162017            msg += "%s"% (sys.exc_value) 
    2017             wx.PostEvent(self.parent.parent, 
     2018            wx.PostEvent(self._manager.parent, 
    20182019                         StatusEvent(status=msg, info="error")) 
    20192020        self._lay_out() 
     
    26802681            if item[0] and item[0].IsShown(): 
    26812682                param2fit.append(item[1]) 
    2682         self.parent._manager.set_param2fit(self.uid, param2fit) 
     2683        self._manager.set_param2fit(self.uid, param2fit) 
    26832684                 
    26842685    def select_all_param(self, event): 
     
    28122813            if item[0] and item[0].IsShown(): 
    28132814                param2fit.append(item[1]) 
    2814         self.parent._manager.set_param2fit(self.uid, param2fit) 
     2815        self._manager.set_param2fit(self.uid, param2fit) 
    28152816         
    28162817    def set_model_param_sizer(self, model): 
     
    32373238            infor = 'warning' 
    32383239            # inform msg to wx 
    3239             wx.PostEvent(self.parent.parent, 
     3240            wx.PostEvent(self._manager.parent, 
    32403241                        StatusEvent(status=msg, info=infor)) 
    32413242         
  • fittingview/src/sans/perspectives/fitting/fitpanel.py

    r3b148c3 rae84427  
    7171        self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.on_page_changing) 
    7272        self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSED, self.on_closed) 
    73  
     73         
    7474    def on_closed(self, event): 
    7575        """ 
     
    161161        if pos != -1: 
    162162            selected_page = self.GetPage(pos) 
    163             wx.PostEvent(self.parent, PanelOnFocusEvent(panel=selected_page)) 
     163            wx.PostEvent(self._manager.parent,  
     164                         PanelOnFocusEvent(panel=selected_page)) 
    164165        self.enable_close_button() 
    165166        
     
    170171        if pos != -1: 
    171172            selected_page = self.GetPage(pos) 
    172             wx.PostEvent(self.parent, PanelOnFocusEvent(panel=selected_page)) 
     173            wx.PostEvent(self._manager.parent,  
     174                         PanelOnFocusEvent(panel=selected_page)) 
    173175         
    174176    def get_data(self): 
  • fittingview/src/sans/perspectives/fitting/fitting.py

    rbca2cb9 rae84427  
    4141from sans.perspectives.calculator.model_editor import TextDialog 
    4242from sans.perspectives.calculator.model_editor import EditorWindow 
     43from sans.guiframe.gui_manager import MDIFrame 
    4344 
    4445MAX_NBR_DATA = 4 
     
    427428            page.Refresh() 
    428429            page.SetFocus() 
    429             self.parent._mgr.Update() 
     430            #self.parent._mgr.Update() 
    430431            msg = "%s already opened\n" % str(page.window_caption) 
    431432            wx.PostEvent(self.parent, StatusEvent(status=msg)) 
     
    500501        #self.parent.Bind(EVT_FITSTATE_UPDATE, self.on_set_state_helper) 
    501502        # Creation of the fit panel 
    502         self.fit_panel = FitPanel(parent=self.parent, manager=self) 
     503        self.frame = MDIFrame(self.parent, None, 'None', (100, 200)) 
     504        self.fit_panel = FitPanel(parent=self.frame, manager=self) 
     505        self.frame.set_panel(self.fit_panel) 
     506        self._frame_set_helper() 
    503507        self.on_add_new_page(event=None) 
    504508        #Set the manager for the main panel 
     
    513517        self.parent.Bind(EVT_SLICER_PANEL, self._on_slicer_event) 
    514518        self.parent.Bind(EVT_SLICER_PARS_UPDATE, self._onEVT_SLICER_PANEL) 
    515         self.parent._mgr.Bind(wx.aui.EVT_AUI_PANE_CLOSE,self._onclearslicer) 
     519        #self.parent._mgr.Bind(wx.aui.EVT_AUI_PANE_CLOSE,self._onclearslicer) 
    516520        #Create reader when fitting panel are created 
    517521        self.state_reader = Reader(self.set_state) 
     
    577581                wx.PostEvent(self.parent, StatusEvent(status=msg, info="error")) 
    578582     
    579     def set_top_panel(self): 
    580         """ 
    581         Close default (welcome) panel 
    582         """ 
    583         if 'default' in self.parent.panels: 
    584             self.parent.on_close_welcome_panel() 
    585  
    586          
    587583    def set_theory(self, theory_list=None): 
    588584        """ 
     
    11681164                wx.PostEvent(self.parent, StatusEvent(status=msg, 
    11691165                                                       info="warning")) 
    1170             self.set_top_panel() 
    11711166        except: 
    11721167            msg = "Creating Fit page: %s"%sys.exc_value 
     
    12241219            the panel and panel_name to find the slicer 's panel concerned. 
    12251220        """ 
     1221        event.panel_name 
    12261222        for item in self.parent.panels: 
    12271223            name = event.panel_name 
     
    12291225                self.parent.panels[item].set_slicer(event.type, event.params) 
    12301226                 
    1231         self.parent._mgr.Update() 
     1227        #self.parent._mgr.Update() 
    12321228    
    12331229    def _closed_fitpage(self, event): 
     
    13081304                data = plottable 
    13091305                self.add_fit_page(data=[data]) 
    1310         self.set_top_panel() 
    13111306             
    13121307    def update_fit(self, result=None, msg=""): 
     
    16891684            self.slicer_panels.append(event.panel) 
    16901685            # Set group ID if available 
    1691             event_id = self.parent.popup_panel(new_panel) 
    1692             new_panel.uid = event_id 
    1693             self.mypanels.append(new_panel) 
     1686            event_id = self.parent.popup_panel(event.panel) 
     1687            event.panel.uid = event_id 
     1688            self.mypanels.append(event.panel) 
    16941689        
    16951690    def _onclearslicer(self, event): 
     
    16971692        Clear the boxslicer when close the panel associate with this slicer 
    16981693        """ 
    1699         name = event.GetPane().caption 
    1700      
     1694        name = event.GetEventObject().frame.GetTitle() 
     1695        print "name", name 
    17011696        for panel in self.slicer_panels: 
    17021697            if panel.window_caption == name: 
     
    17061701                        if self.parent.panels[item].uid == panel.base.uid: 
    17071702                            self.parent.panels[item].onClearSlicer(event) 
    1708                             self.parent._mgr.Update() 
     1703                            #self.parent._mgr.Update() 
    17091704                            break 
    17101705                break 
Note: See TracChangeset for help on using the changeset viewer.