www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/+mbcmodelview/+twostage/MessageService.m
classdef MessageService < mbcmodelview.ModelMessageService %MessageService two-stage view MessageService % Copyright 2015-2015 The MathWorks, Inc. and Ford Global Technologies, Inc. properties %CurrentPage currently selected sweep plots page CurrentPage=1; %CILevel confidence interval level CILevel = 95; %PlotOptions options for sweep plots PlotOptions = getpref(mbcprefs('mbc'),'LocalPlotOpts'); end properties (SetAccess=private) %NumPages number of pages of sweep plots % There are currently 4 plots per page NumPages %GlobalXData global input data GlobalXData end properties(Dependent,SetAccess=private) Title end methods function obj = MessageService %MessageService - constructor obj.Actions = mbcmodelview.twostage.Actions(obj); end function s = get.Title(obj) s = name(obj.ModelDev); end function updateNode(obj,pNode) %updateNode initial update when selecting node if nargin>1 obj.Pointer = pNode; end [X,Y] = getdata(obj.ModelDev,'fit'); obj.DataOK = true(size(Y,1),size(Y,2)); obj.DataOK( outliers(obj.ModelDev)) = false; % update data and model for test obj.XData = X{1}; obj.GlobalXData = X{2}; obj.YData = Y; obj.NumPages = ceil(size(Y,3)/4); if obj.CurrentPage>obj.NumPages obj.CurrentPage = 1; end % store local validation data [obj.ValidationXData,obj.ValidationYData]= getValidationData(obj.ModelDev); if hasBest(obj.ModelDev) obj.Model = model(obj.ModelDev); else obj.Model = []; end end function update(obj) %update update MessageService enable(obj.Actions) fireNodeUpdated(obj) end end methods % no action but need implementations as these are abstract methods % of ModelMessageService function showTestNumbers(obj,ax) %#ok<*INUSD> end function [data,factors,olIndex]= diagnosticStats(obj) %#ok<*MANU> data=[]; factors={}; olIndex=[]; end function [data,factors] = validationDiagnostics(ms) data=[]; factors={}; end function addOutliers(obj,olindex) end function OK = restoreOutliers(obj,olindex) OK=false; end function [lineh,legLabels] = legendLabels(obj,AxHand) lineh=[]; legLabels={}; end function msg = selectModelFigure(obj) %selectModelFigure p= obj.Pointer; pbest= children(info(p),@bestmdev); pbest=[pbest{:}]; if any(pbest==0) unvalmdev=children(info(p),find(pbest==0),@name); msg = char('You must select a best model for all sub-models ',... 'before selecting a best model. ',... 'The following sub-models do not have a best model:',... unvalmdev{:}); else % dependence on Model Browser hFig= get(MBrowser,'Figure'); hSelectionFig= Validate_TwoStage('create',p,hFig); if isgraphics(hSelectionFig) % register figure with message service % need to update when done list = event.listener(hSelectionFig,'ObjectBeingDestroyed',@(h,evt) obj.update); setappdata(hSelectionFig,'MBCSelectionClosed',list) obj.registerSubFigure(hSelectionFig); end msg = ''; end end end methods (Access=protected) function s = getStatus(obj) s = isvalid(obj.Pointer) && ~isempty(obj.Model); end end end