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;