www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/+cgmergesetup/TestplanPage.m

    classdef TestplanPage < cgmergesetup.MergeItemsPage
%CGMERGESETUP.TESTPLANPAGE wizard page for setting up composite models from model browser   
    
    
%  Copyright 2009-2013 The MathWorks, Inc. and Ford Global Technologies, Inc.

    properties
        %RESPONSELIST list of responses 
        ResponseList
        hTotalResponses
    end
    
    methods
        function updatePage(M,iFace)
            %UPDATEDATA update mergesetup data
            %    updateData(M)
            
            updatePage@cgmergesetup.MergeItemsPage(M,iFace)
            updateResponseTool(M);
            M.hInfoPane.Title = 'Test plan selection';
            M.hInfoPane.InfoString = 'Select test plans to create composite models from.';
        end
    end
        
    methods(Access=protected)
        
        function M = TestplanPage(fh,iFace,C)
            M@cgmergesetup.MergeItemsPage(fh,iFace,C);
        end
        
        function h = createResponseTool(M,fh,iFace) %#ok<INUSD>
            %createResponseLayout create main layout for model page
            %
            M.hTotalResponses = uicontrol('Parent',fh,...
                'HorizontalAlignment','right',...
                'Style','text',...
                'String','Total responses:');
            
            h = M.hTotalResponses;
            
        end
        
        function configureMergeTable(M)
            %CONFIGUREMERGETABLE configure table for selection of items to be merged
            %    configureMergeTable(M,fh)

            M.ModelList.Peer.setIconBaseLocation(xregrespath);
            M.ModelList.Peer.setColumnData( {'Test plan','Inputs'} );
            M.ModelList.Peer.setColumnWidths([150 260]);
            M.ModelList.Peer.setDisplayChecks(true);
        end
        
        function updateMergeTable(M)
            %UPDATEMERGETABLE 
            %    updateMergeTable(M)
            
            C = M.Data;
            Table = [C.Labels(:),C.InputLabels(:)];
            M.ModelList.Peer.setData(Table);
        end
        
        function updateResponseTool(M)
            %UPDATERESPONSETool
            %    updateResponseTool(M)
            
            C = M.Data;
            % update response list
            set(M.hTotalResponses,...
                'String',sprintf('Total responses:%2d',length(C.Responses)));
        end
        
        function enableNext(M,iFace,State)
            %enableNext(M,iFace,State)
            C = M.Data;
            if nargin<3
                State = length(C.pSelected)>1 && ~isempty(C.Responses);
            end
            feval(iFace.setNextButton, State);
            feval(iFace.setFinishButton, false);
        end
        
        function f= getNextPage(M) %#ok<MANU>
            %getNextPage next page is for mode setup
            f = @cgmergesetup.ResponsePage.createPage;
        end                
        
    end
    
    methods(Static)
       function layout = createPage( C,fh, iFace )
            %CREATEPAGE static factory function for test plan selection
            %page
            %    layout = cgmergesetup.TestplanPage.createPage( C,fh, iFace )
            
            if isa(fh, 'xregcontainer')
                M = get(fh,'UserData');
                updatePage(M,iFace)
            else
                iFace.setWizardSize( [450, 350] );
                iFace.setUserData(C);
                M = cgmergesetup.TestplanPage(fh,iFace,C);
            end
            layout = M.Layout;
       end
    end
    
end