www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcwidgets/@itemList/pUpdateTable.m

    function pUpdateTable(obj, propnames)
%PUPDATETABLE Update the contained Table1D/Peer
%
%   This make sure the contained Table1D and it's Peer have the correct
%   settings based upon the current properties of the itemList.
%
%   PUPDATETABLE(OBJ, PROPNAMES) update properties in cell array PROPNAMES.

%   Copyright 2006-2007 The MathWorks, Inc.

if ischar( propnames )
    propnames = {propnames};
end

for n = 1:length(propnames)
    switch propnames{n}       
        case 'BorderStyle'
            obj.pSetBorder();
        
        case 'DisplayChecks'
            if( length( obj.getChecks() ) ~= length( obj.Items ) )
                checks = false( size( obj.Items ) );
                obj.setChecks( checks );
            end
            obj.Display.Peer.setDisplayChecks( obj.DisplayChecks );            

        case 'DisplayHeaderRow'
            obj.Display.ShowColumnHeader = obj.DisplayHeaderRow;

        case 'DisplayTypeColumn'
            if obj.DisplayTypeColumn
                obj.Display.Peer.setColumnData( {obj.ItemHeaderText, obj.TypeHeaderText} );
            else
                obj.Display.Peer.setColumnData( {obj.ItemHeaderText} );
            end
            obj.pDisplay(true);
            obj.pSetColumnWidths;

        case 'ItemColumnWidth'
            obj.pSetColumnWidths();

        case {'ItemHeaderText', 'TypeHeaderText'}
            if obj.DisplayTypeColumn
                colData = {obj.ItemHeaderText, obj.TypeHeaderText};
            else
                colData = {obj.ItemHeaderText};
            end
            obj.Display.Peer.setColumnData( colData );

        case 'Items'
            nItems = length( obj.Items );  
            obj.SelectedIndexListener.Enabled = 'off';
            % remove any selections that are not valid any more
            obj.SelectedIndex(obj.SelectedIndex>nItems) = [];
            obj.SelectedIndexListener.Enabled = 'on';               
            obj.setChecks( false( 1, nItems ) );
            obj.pDisplay(false);
            obj.pSetColumnWidths;

        case 'SelectedIndex'
            if ~isempty( obj.SelectedIndex )
                obj.Display.selectRows( obj.SelectedIndex );
            else
                obj.Display.clearSelection();
            end
            
        case 'SelectionStyle'
            multiSelect = strcmp(obj.SelectionStyle, 'multiple');
            if multiSelect
                obj.Display.SelectionMode = 'MultiRow';
            else
                obj.Display.SelectionMode = 'SingleRow';
            
            end            
            if ~multiSelect && (length(obj.SelectedIndex)>1)
                obj.SelectedIndex = min(obj.SelectedIndex);
            end
            obj.pUpdateTable( 'SelectedIndex' );
            
        case 'UIContextMenu'
            obj.Display.TableContextMenu = obj.UIContextMenu;
    end
end