www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/@cgtradeoffgui/@setupUI/setupUI.m

    function obj = setupUI(varargin)
%SETUPUI Object constructor for setupUI
%
%  OBJ = SETUPUI(PROP, VAL, ...) creates a setupUI object that displays and
%  allows editing of the setup of a tradeoff.

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


obj = cgtradeoffgui.setupUI;
abstractcomponent(obj, varargin{:});

if isempty(obj.Browser)
    error(message('mbc:cgtradeoffgui:setupUI:InvalidState'));
end

toppanel = mbcgui.container.titlebarpanel(...
    'Parent', obj.Parent, ...
    'Visible', obj.Visible, ...
    'BarTitle', 'Tables');
obj.TableSetup = cgtradeoffgui.tableSetupList('parent', toppanel);
set(toppanel,'ContentHandle',obj.TableSetup);


btmpanel = mbcgui.container.titlebarpanel(...
    'Parent', obj.Parent, ...
    'Visible', obj.Visible, ...
    'BarTitle', 'Additional Display Models');
obj.ModelSetup = cgtradeoffgui.modelSetupList('parent', btmpanel);
set(btmpanel,'ContentHandle',obj.ModelSetup);

obj.Layout = xregsplitlayout(obj.Parent, ...
    'Visible', obj.Visible, ...
    'dividerstyle', 'flat', ...
    'dividerwidth', 4, ...
    'orientation', 'ud', ...
    'top', toppanel, ...
    'bottom', btmpanel);
connect(obj.Layout, obj, 'up');

% Make the menus
obj.pMakeTradeoffMenu;

% Make a toolbar
obj.pMakeToolbar;

% Listeners to keep tree, menus and components updated
obj.addListeners( ...
    [ ...
    handle.listener(obj, obj.findprop('Tradeoff'), 'PropertyPostSet', {@i_refresh, obj}); ...
    handle.listener(obj.TableSetup, 'TableAdded', {@i_refreshstatus, obj}); ...
    handle.listener(obj.TableSetup, 'TableRemoved', {@i_refreshstatus, obj}); ...
    handle.listener(obj.TableSetup, 'TableEdited', {@i_tablefillaltered, obj}); ...
    ] ...
    );



function i_refresh(src, evt, obj)
obj.TableSetup.TradeoffPointer = obj.Tradeoff;
obj.ModelSetup.TradeoffPointer = obj.Tradeoff;


function i_tablefillaltered(src, evt, obj)
obj.ModelSetup.refresh;


function i_refreshstatus(src, evt, obj)
obj.Browser.doDrawTree(obj.Browser.CurrentNode,'refresh');
pTO = obj.Tradeoff;
if ~isempty(pTO)
    menus = [obj.hChangeFillMenu; ...
        obj.hRemoveTableMenu];
    buttons = [obj.hChangeFillButton; ...
        obj.hRemoveTableButton];
    if pTO.numTables>0
        set(menus, 'Enable', 'on');
        set(buttons, 'Enable', 'on');
    else
        set(menus, 'Enable', 'off');
        set(buttons, 'Enable', 'off');
    end
end

% Refresh the model list
obj.ModelSetup.refresh;