www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/+mbcmodelview/+project/GetStartedPane.m

    classdef GetStartedPane < mbcgui.multiview.View
    %GetStartedPane CAGE get started view
    
    %  Copyright 2016-2016 The MathWorks, Inc. 
    
    properties (SetAccess=private)
        %ProjectPane project pane at LHS
        ProjectPane
        %ButtonPane main buttons view
        ButtonPane
        %Summary project summary table
        Summary
    end
    
    properties
        %Browser browser handle
        Browser
    end
    
    methods
        function obj = GetStartedPane(varargin)
        %GetStartedPane constructor
        
        obj@mbcgui.multiview.View(varargin{:})
        
        create(obj);
        
        obj.addMessageServiceListener('NodeUpdated',@obj.onUpdate);
        obj.addListeners(handle.listener(obj.Browser,obj.Browser.findprop('RootNode'),'PropertyPostSet',@obj.onProjectChanged))
        end
        
        function update(obj)
        %update main update
        update(obj.ProjectPane);
        update(obj.ButtonPane);
        update(obj.Summary)
        end
        
        function updateSummary(obj)
        %update project summary

        update(obj.Summary);
        end        
        
        function create(obj)
        %create create start page
        
        % project pane
        actions = mbcmodelview.project.ProjectActions(obj.Browser);
        obj.ProjectPane = mbcmodelview.project.ProjectPane('Parent',obj.Parent,...
            'MessageService',obj.MessageService,'ProjectActions',actions);
        
        obj.Summary = mbcmodelview.project.Summary('Parent',obj.Parent,...
            'MessageService',obj.MessageService);
        
        lhsLyt = xreggridbaglayout(obj.Parent,...
            'dimension',[2 1],...
            'rowsizes',[-1 140],...
            'elements',{obj.ProjectPane,obj.Summary});
        
        obj.ButtonPane = mbcmodelview.project.ButtonPanel('Parent',obj.Parent,...
            'MessageService',obj.MessageService,...
            'ShowBrowserButton',true,...
            'Browser',obj.Browser);
        
        mainLayout = xregsnapsplitlayout(obj.Parent,...
            'barstyle', 0,...
            'orientation', 'lr',...
            'right', obj.ButtonPane,...
            'left', lhsLyt ,...
            'minwidth',[250 400],...
            'split', [0.02 0.98],...
            'border',[-1 2 -1 -1],...
            'style','toleft');        
        
        obj.ContentHandle = mainLayout;
        
        update(obj)
        end
        
        function onUpdate(obj,~,~)
        %onUpdate update callback 
        
        if ~isempty(obj.Browser.RootNode) && ~isnull(obj.Browser.RootNode)
            update(obj)
        end
        end
        
        function onProjectChanged(obj,~,~)
        %onProjectChanged project changed 
        
        if ~isempty(obj.Browser.RootNode) && ~isnull(obj.Browser.RootNode)
            setNewProject(obj.MessageService,obj.Browser.RootNode);
        end
        end        
        
        
    end

    
end