www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregGui/@containerData/container_getPSobj.m

    function objout=container_getPSobj(obj,grp,DEBUG,RESET)
%CONTAINER_GETPSOBJ  Get a PS object for a PSgroup
%
%  PSOBJ = CONTAINER_GETPSOBJ(OBJ, GROUP) returns the packstatus object for
%  the packgroup grp.  If no group is specified, the default group is
%  assumed.

%  Copyright 2000-2014 The MathWorks, Inc. and Ford Global Technologies, Inc.


mlock
persistent PSOBJ
if isempty(PSOBJ)
    % create default group
    PSOBJ = mbcgui.util.containerPS;
    PSOBJ.packstatus = true;
end

if nargin>3
    if RESET
        % clear out all the packgroups
        PSOBJ = mbcgui.util.containerPS;
        PSOBJ.packstatus = true;
        objout = PSOBJ;
        return
    end
elseif nargin>2
    % DEBUG mode
    if DEBUG
        objout = PSOBJ;
        return
    end
elseif nargin<2
    grp='';
end

if isempty(grp)
    % return first object in PSOBJ array
    objout = PSOBJ(1);
    return
else
    if length(PSOBJ)>1
        % check to see if group exists
        ind = find(strcmp(grp,{PSOBJ(2:end).packgroup}));
        if ~isempty(ind)
            objout = PSOBJ(ind+1);
            return
        end
    end
    % need to create new group
    objout = mbcgui.util.containerPS;
    objout.packstatus = true;
    objout.packgroup = grp;
    PSOBJ(end+1) = objout;
    return
end