www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregMdlGui/@PolynomialOrderEditor/PolynomialOrderEditor.m

    function obj = PolynomialOrderEditor( varargin )
%POLYNOMIALORDEREDITOR Constructor for PolynomialOrderEditor object
%
%  OBJ = POLYNOMIALORDEREDITOR(Prop, Value, ...) constructs an object for
%  editing the order of the polynomial in an xregcubic model.

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


% Is the first input argument a udd object derived from me? If it is then
% we are being called as a super class constructor and don't have to
% construct an object
if nargin && isa(varargin{1}, 'xregMdlGui.PolynomialOrderEditor')
	obj = varargin{1};
	varargin(1) = [];
else
	obj = xregMdlGui.PolynomialOrderEditor;
end
% Call the inherited constructor
P = com.mathworks.toolbox.mbc.gui.peer.PolynomialOrderEditorPeer;
obj.Table2D(P,...
   'SelectionMode', 'SingleCell',...
   'Editable', true,...
   'ValueChangedCallback', @i_valueChange,...
   varargin{:});

obj.Peer.setRowHeaderWidth( 100 );
obj.Peer.setHeaderRenderSelection( false );
obj.Peer.setCornerString( 'Symbol' );
obj.Peer.setColumnData( 'Order' );

% Attach property listeners
obj.addPropertyListeners('model', @i_setModel);

obj.pSetModel( obj.Model );

function i_valueChange(obj, evt)
rowIndex = evt.data.Rows;
newValue = evt.data.NewValue;

order = get( obj.Model, 'order' );
order( rowIndex ) = newValue;
obj.Model = set( obj.Model, 'order', order );

obj.pFireModelChangedEvent( 'Order' );

function i_setModel(obj, evt)
m = evt.NewValue;
obj.pSetModel( m );