www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcmultiview/@ViewGroup/addView.m

    function addView(obj, hView)
%ADDVIEW Add a new ViewContainer to the group
%
%  ADDVIEW(OBJ, HVIEW) adds HVIEW to the list of ViewContainers that are
%  having their selection managed by this ViewGroup.  If this is the first
%  ViewContainer added it will be selected, otherwise it will be
%  unselected.  HVIEW may be a vector of ViewContainers

%  Copyright 2005 The MathWorks, Inc. and Ford Global Technologies, Inc.


% Weed out views that are already added
hView = hView(~ismember(hView, obj.ViewContainers));

if ~isempty(hView)
    % Attach listeners to button down and destruction events
    for n = 1:length(hView)
        obj.ButtonDownListeners = [obj.ButtonDownListeners; ...
            handle.listener(hView(n), 'ButtonDown', {@i_selectview, obj})];
        obj.DestructionListeners = [obj.DestructionListeners; ...
            handle.listener(hView(n), 'ObjectBeingDestroyed', {@i_removeview, obj})];
    end

    if isempty(obj.ViewContainers)
        % This are the first views added: select first one and send the
        % selected event
        if length(hView)>1
            set(hView(2:end), 'Selected', false);
        end        
        obj.selectView(hView(1));
    else
        % Make sure the new views are not selected
        set(hView, 'Selected', false);
    end
    obj.Viewcontainers = [obj.ViewContainers; hView(:)];
end



function i_selectview(src, evt, obj)
obj.selectView(src);


function i_removeview(src, evt, obj)
obj.removeView(src);