www.gusucode.com > mbc 工具箱 matlab 源码程序 > mbc/+mbcextensions/CageExtensions.m

    classdef CageExtensions < mbcextensions.BaseExtensions
    %CageExtensions Information about extensions installed in MBC
    %   e = mbcextensions.CageExtensions()
    
    %  Copyright 2014 The MathWorks, Inc. and Ford Global Technologies, Inc.
    
    properties
        BrowserTools = struct('Name',{},'Level',{},'Separator',{},'Callback',{},'EnableFcn',{});
        BrowserTypes = {};
        ModelImportFunctions = struct('funstr',{},'fileType',{},'filterSpec',{},'nextfcn',{});
        cgFeatureLibraries = cell(0,3);
        BrowserStartupTasks = {};
        OptimizationTableFillingFunctions = {};
    end
    
    methods
        function obj = CageExtensions()
            obj@mbcextensions.BaseExtensions('cageextras.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);
                if ~isempty(opts.BrowserTools)
                    obj.BrowserTools=[obj.BrowserTools opts.BrowserTools];
                end   
                % set values for new properties
                if ~isempty(opts.BrowserTypes)
                    obj.BrowserTypes=[obj.BrowserTypes opts.BrowserTypes];
                end
                if ~isempty(opts.ModelImportFunctions)
                    if ~isfield(opts.ModelImportFunctions,'nextfcn')
                        opts.ModelImportFunctions(1).nextfcn = [];
                    end
                    
                    obj.ModelImportFunctions=[obj.ModelImportFunctions opts.ModelImportFunctions];
                end
                if ~isempty(opts.cgFeatureLibraries)
                    % Vertically concatenate cells
                    obj.cgFeatureLibraries=[obj.cgFeatureLibraries; opts.cgFeatureLibraries];  
                end
                if ~isempty(opts.BrowserStartupTasks)
                    % Horizontally concatenate cells
                    obj.BrowserStartupTasks=[obj.BrowserStartupTasks, opts.BrowserStartupTasks];  
                end
                if ~isempty(opts.OptimizationTableFillingFunctions)
                    % Horizontally concatenate cells
                    obj.OptimizationTableFillingFunctions=[obj.OptimizationTableFillingFunctions, opts.OptimizationTableFillingFunctions];
                end
            end


        end
    end
end