www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcwidgets/@scrollTable/doSetupBaseClass.m
function doSetupBaseClass( obj ) %DOSETUPBASECLASS Setup listeners % % obj.doSetupBaseClass % Copyright 2000-2006 The MathWorks, Inc. and Ford Global Technologies, Inc. obj.scrollTable_GeneralListeners = [ ... handle.listener(obj, obj.findprop('ShowRowHeaders'), 'PropertyPostSet', @i_setShowRows) ;... handle.listener(obj, obj.findprop('ShowColumnHeaders'), 'PropertyPostSet', @i_setShowCols) ;... handle.listener(obj, obj.findprop('MaximumObjectCacheSize'), 'PropertyPostSet', @i_setCacheSize) ;... ]; obj.scrollTable_DataListeners = [ ... handle.listener(obj, obj.findprop('RowHeaderData'), 'PropertyPostSet', @i_setRHData) ;... handle.listener(obj, obj.findprop('ColumnHeaderData'), 'PropertyPostSet', @i_setCHData) ;... handle.listener(obj, obj.findprop('MainData'), 'PropertyPostSet', @i_setMainData) ;... ]; obj.scrollTable_ScrollListeners = [ ... handle.listener(obj, obj.findprop('CurrentRow'), 'PropertyPostSet', @i_setRow) ;... handle.listener(obj, obj.findprop('CurrentColumn'), 'PropertyPostSet', @i_setColumn) ;... ]; obj.connect(xregfigurehook(obj.Parent),'up'); function i_setRow(srcobj,evt) obj = evt.AffectedObject; % Limit the property obj.CurrentRow = max(min(evt.NewValue, obj.ScrollRowLimits(2)), obj.ScrollRowLimits(1)); if obj.canPaint obj.paintRowHeader; obj.paintMain; end function i_setColumn(srcobj,evt) obj = evt.AffectedObject; % Limit the property obj.CurrentColumn = max(min(evt.NewValue, obj.ScrollColumnLimits(2)), obj.ScrollColumnLimits(1)); if obj.canPaint obj.paintColumnHeader; obj.paintMain; end function i_setRHData(srcobj,evt) obj = evt.AffectedObject; obj.updateDataFlag; obj.updateRealSize; if obj.canPaint if obj.isAlive obj.paintRowHeader; else obj.updateToLiveState; end else obj.updateToDeadState; end function i_setCHData(srcobj,evt) obj = evt.AffectedObject; obj.updateDataFlag; obj.updateRealSize; if obj.canPaint if obj.isAlive obj.paintColumnHeader; else obj.updateToLiveState; end else obj.updateToDeadState; end function i_setMainData(srcobj,evt) obj = evt.AffectedObject; obj.updateDataFlag; obj.updateRealSize; if obj.canPaint if obj.isAlive if obj.isCreatedCorrect obj.paintMain; else % Need to add/delete display objects obj.disableScrolling; scroll_change = obj.checkScrollLocation; obj.enableScrolling; obj.updateObjectArrays; obj.paintMain; end else obj.updateToLiveState; end else obj.updateToDeadState; end function i_setShowRows(srcobj, evt) obj = evt.AffectedObject; obj.updateDataFlag; obj.updateRealSize; if obj.canPaint if obj.isAlive obj.updateRowHeader; else obj.updateToLiveState; end else obj.updateToDeadState; end function i_setShowCols(srcobj, evt) obj = evt.AffectedObject; obj.updateDataFlag; obj.updateRealSize; if obj.canPaint if obj.isAlive obj.updateColumnHeader; else obj.updateToLiveState; end else obj.updateToDeadState; end function i_setCacheSize(srcobj, evt) if evt.NewValue<0 obj.MaximumObjectCacheSize = 0; end evt.AffectedObject.doUpdateCacheSizes;