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