www.gusucode.com > mbc 工具箱 matlab 源码程序 > mbc/+mbcextensions/ModelExtensions.m
classdef ModelExtensions < mbcextensions.BaseExtensions %ModelExtensions Information about extensions installed in MBC % e = mbcextensions.ModelExtensions() % Copyright 2014 The MathWorks, Inc. and Ford Global Technologies, Inc. properties BrowserTools = []; DesignEditorTools = []; DataEditorTools = []; DataEditorViews = []; ModelClasses = []; LocalModelClasses = []; BrowserStartupTasks = {}; BoundaryEditorTools = []; BoundaryEditorViews = []; CmdLineClassMappingFile = []; CmdLineModelNameMappingFile = []; CmdLineModelParameterMappingFile = []; end methods function obj = ModelExtensions() obj@mbcextensions.BaseExtensions('xregextras.mbc'); end function obj=processinfo(obj,Svect) % loop over input structure and extract info into the form needed % Essentially this means compressing information in the n-element structure array % into a single structure element whose fields contain n values for n = 1:length(Svect) opts = Svect(n); % handle new extensions if ~isempty(opts.BrowserTools) obj.BrowserTools = [obj.BrowserTools opts.BrowserTools]; end if ~isempty(opts.DesignEditorTools) obj.DesignEditorTools = [obj.DesignEditorTools opts.DesignEditorTools]; end if ~isempty(opts.DataEditorTools) obj.DataEditorTools = [obj.DataEditorTools opts.DataEditorTools]; end if ~isempty(opts.DataEditorViews) obj.DataEditorViews = [obj.DataEditorViews opts.DataEditorViews]; end if ~isempty(opts.ModelClasses) obj.ModelClasses = [obj.ModelClasses opts.ModelClasses]; end if ~isempty(opts.LocalModelClasses) obj.LocalModelClasses = [obj.LocalModelClasses opts.LocalModelClasses]; end if ~isempty(opts.BrowserStartupTasks) % Vertically concatenate cells obj.BrowserStartupTasks = [obj.BrowserStartupTasks, opts.BrowserStartupTasks]; end if ~isempty(opts.BoundaryEditorTools) obj.BoundaryEditorTools = [obj.BoundaryEditorTools opts.BoundaryEditorTools]; end if ~isempty(opts.BoundaryEditorViews) obj.BoundaryEditorViews = [obj.BoundaryEditorViews opts.BoundaryEditorViews]; end % command line mapping files - for these latest addon wins - no % concatenation. if ~isempty(opts.CmdLineClassMappingFile) obj.CmdLineClassMappingFile = opts.CmdLineClassMappingFile; end if ~isempty(opts.CmdLineModelNameMappingFile) obj.CmdLineModelNameMappingFile = opts.CmdLineModelNameMappingFile; end if ~isempty(opts.CmdLineModelParameterMappingFile) obj.CmdLineModelParameterMappingFile = opts.CmdLineModelParameterMappingFile; end end % handle default properties ToolsMenuDefault = struct('Name',{}, ... 'Level',{}, ... 'Separator',{}, ... 'Callback',{}, ... 'EnableFcn',{}); ViewListDefault = struct( ... 'Constructor', {}, ... 'MenuLabel', {}, ... 'Icon', {}, ... 'Description', {}, ... 'MaxRecommended', {} ); if isempty(obj.BrowserTools) obj.BrowserTools = ToolsMenuDefault; end if isempty(obj.DesignEditorTools) obj.DesignEditorTools = ToolsMenuDefault; end if isempty(obj.DataEditorTools) obj.DataEditorTools = ToolsMenuDefault; end if isempty(obj.DataEditorViews) obj.DataEditorViews = struct( 'Constructor', {}, 'MenuLabel', {}, ... 'MaxRecommended', {} ); end if isempty(obj.ModelClasses) obj.ModelClasses = struct('fCreate',{},'DisplayName',{},'Group',{},... 'minNF',{},'maxNF',{},'exactNF',{},'RFmodel',{},'onestagemodel',{}); end if isempty(obj.LocalModelClasses) obj.LocalModelClasses = struct('fCreate',{},'DisplayName',{},'Group',{},... 'minNF',{},'maxNF',{},'exactNF',{}); end if isempty(obj.BoundaryEditorTools) obj.BoundaryEditorTools = ToolsMenuDefault; end if isempty(obj.BoundaryEditorViews) obj.BoundaryEditorViews = ViewListDefault; end if isempty(obj.CmdLineClassMappingFile) % put in the default obj.CmdLineClassMappingFile = xregrespath( 'ClassMappings.map' ); end if isempty(obj.CmdLineModelNameMappingFile) % put in the default obj.CmdLineModelNameMappingFile = xregrespath( 'ModelNameMapping.map' ); end if isempty(obj.CmdLineModelParameterMappingFile) % put in the default obj.CmdLineModelParameterMappingFile = xregrespath( 'ModelParameterMappings.map' ); end end end end