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

    classdef GetStartedPane < mbcgui.multiview.View
    %GetStartedPane CAGE get started view
    
    %  Copyright 2016-2016 The MathWorks, Inc. 

    properties (SetAccess=private)
        %ProjectPane list of projects
        ProjectPane
        %ButtonPane main task buttons
        ButtonPane
        %Summary project summary list
        Summary
    end
    
    properties 
        %Browser handle
        Browser
    end
    
    methods
        function obj = GetStartedPane(varargin)
        %GetStartedPane constructor
        obj@mbcgui.multiview.View(varargin{:})
        
        create(obj);
        
        % update when root or current node is changed
        obj.addListeners(handle.listener(obj.Browser,obj.Browser.findprop('RootNode'),'PropertyPostSet',@obj.onUpdate))
        end
        
        function update(obj)
        %update project and buttons 
        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 ui component
        
        % project pane
        actions = cageview.project.ProjectActions(obj.Browser);
        obj.ProjectPane = mbcmodelview.project.ProjectPane('Parent',obj.Parent,...
            'MessageService',obj.MessageService,'ProjectActions',actions);        
        
        obj.Summary = cageview.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 = cageview.project.ButtonPanel('Parent',obj.Parent,...
            'Mode','startpage',...
            'MessageService',obj.MessageService,'Browser',obj.Browser);
        
        mainLayout = xregsnapsplitlayout(obj.Parent,...
            'barstyle', 0,...
            'orientation', 'lr',...
            'left', lhsLyt ,...
            'right', obj.ButtonPane,...
            '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 on new project
        update(obj)
        end
    end

    
end