www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/+tpsetup/DoEDrivenDialog.m

    classdef DoEDrivenDialog < handle
    %DoEDrivenDialog dialog to create new test plan for DoE
    %
    %  Start with create static method
    %      tpsetup.DoEDrivenDialog.create(Model)
     
    

    %  Copyright 2014-2015 The MathWorks, Inc. and Ford Global Technologies, Inc.

    properties (SetAccess=private)
        %Model data model object
        Model
        %TemplateSelector UI component to select testplan template
        TemplateSelector
        %IOSelector UI component to select inputs
        IOSelector
        %Dialog mbcgui.container.Dialog
        Dialog
        %Listeners store for listeners
        Listeners
    end
    
    methods
        
        function obj = DoEDrivenDialog(Model)
        %DoEDrivenDialog constructor
        obj.Model = Model;
        
        dlg = mbcgui.container.Dialog('Name', 'New Test Plan',...
            'Size', [500 550], ...
            'Buttons', 'OK_CANCEL_HELP', ...
            'DefaultAction', 'OK', ...
            'CloseAction', 'CANCEL', ...
            'HelpCode', 'xreg_newTestPlan', ...
            'ValidationFcn',@obj.validate,...
            'Tag', 'TestplanTemplates');
        
        obj.Dialog = dlg;
        % add template component and IO
        obj.TemplateSelector = tpsetup.TemplateSelector(dlg.Figure,Model);
        obj.IOSelector = tpsetup.DoEDrivenIO(dlg.Figure,Model);
        
        
        mainl=xreggridbaglayout(dlg.Figure,...
            'dimension',[2, 1],...
            'elements',{...
            obj.TemplateSelector.Layout,...
            obj.IOSelector.Layout},...
            'rowsizes',[150,-1],...
            'border',[0 10 0 0],...
            'gapy',10,...
            'gapx',5);
        set(dlg.Figure,'UserData',obj);
        
        dlg.Content = mainl;
        update(obj)
        
        end
        
        function update(obj)
        %update update components
        update(obj.TemplateSelector)
        update(obj.IOSelector)
        end
        function finalize(obj)
        %finalize create process final test plan creation on OK
        [T,ok] = finalize(obj.IOSelector);
        if ok
            obj.Model.FinalTestplan = T;
            createTestplan(obj.Model)
        end
        end
        
        function ok = validate(obj)
        [~,ok] = finalize(obj.IOSelector);
        end
    end
    
    methods(Static)
        function ok = create(Model)
        %create static create 

        obj = tpsetup.DoEDrivenDialog(Model);
        closeMode = obj.Dialog.showDialog();
        
        ok = strcmp(closeMode, 'OK');
        if ok
            finalize(obj);
        end
        delete(obj.Dialog);
        
        end
    end
    
end