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

    function obj = ViewContainer(varargin)
%VIEWCONTAINER Constructor for ViewContainer object
%
%  OBJ = VIEWCONTAINER(PROP, VALUE, ...) constructs a new ViewContainer
%  object.

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


if nargin && isa(varargin{1}, 'mbcmultiview.ViewContainer')
    obj = varargin{1};
    varargin(1) = [];
else
    obj = mbcmultiview.ViewContainer;
end
obj.abstractcomponent(varargin{:});

if isempty(obj.PanelHandle)
    obj.PanelHandle = mbcgui.container.layoutpanel('Parent', obj.Parent, ...
        'Visible', obj.Visible);
else
    set(obj.PanelHandle, 'Parent', obj.Parent, 'Visible', obj.Visible);
end

obj.pConfigurePanel(obj.PanelHandle);

if ~isempty(obj.View)
    obj.pPostSetView;
end

obj.addPropertyListeners({'View', 'UIContextMenu', 'BackgroundColor'}, ...
    {@i_setview, {@i_setuic, obj.PanelHandle}, {@i_setbg, obj.PanelHandle}});


function i_setview(~, evt)
evt.AffectedObject.pPostSetView;


function i_setuic(~, evt, Panel)
obj = evt.AffectedObject;
if ~isempty(obj.View)
    obj.View.UIContextMenu = obj.UIContextMenu;
end
set(Panel, 'UIContextMenu', obj.UIContextMenu);


function i_setbg(~, evt, Panel)
set(Panel, 'BackgroundColor', evt.NewValue);