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

    function pDrawTable(obj)
%PDRAWTABLE Redraw the table
%
%  PDRAWTABLE(OBJ) re-adds the data according to the current setup of
%  variable information.

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


Names = obj.VariableNames;
Types = obj.VariableTypes;
Values = obj.VariableValues;
if obj.ValueColumnCount==1
    Types = Types(:);
    Values = Values(:);
end

P = obj.Peer;
numItems = min([length(Names), size(Types,1), size(Values,1)]);
numCols = min([size(Types,2), size(Values,2), obj.ValueColumnCount]);

P.setStoreSwingCalls(true);

switch obj.ValueConstraint
    case 'none'
        ConMode = com.mathworks.toolbox.mbc.gui.table.InputListTable.VALUE_MODE_NONE;
    case 'plot'
        ConMode = com.mathworks.toolbox.mbc.gui.table.InputListTable.VALUE_MODE_PLOT;
    otherwise
        warning(message('mbc:mbcwidgets:VariableEditorTable:InvalidPropertyValue'));
        ConMode = com.mathworks.toolbox.mbc.gui.table.InputListTable.VALUE_MODE_NONE;      
end
P.setValueConstraintsMode(ConMode);

P.clear;
for n = 1:numItems
    if numCols==0
        P.addNull(Names{n});
    else
        switch Types(n,1)
            case 0
                % No value
                P.addNull(Names{n});
            case 1
                % Scalar
                P.addScalar(Names{n}, Values{n,1}(1));
            case 2
                % Range
                P.addVector(Names{n}, Values{n,1}(1), Values{n,1}(2), Values{n,1}(3));
            case 3
                % Freeform vector
                P.addVector(Names{n}, Values{n,1});
            case 4
                % Linked object
                P.addLinkedObject(Names{n}, Values{n,1});
            case 5
                % Logical object
                P.addLogical(Names{n}, Values{n,1}(1));
        end
    end
end

if numCols>1
    % Set additional columns of data
    for n = 1:numItems
        for m = 2:numCols
            switch Types(n,m)
                case 0
                    % No value
                    P.setNull(n-1, m-1);
                case 1
                    % Scalar
                    P.setScalar(n-1, m-1, Values{n,m}(1));
                case 2
                    % Range
                    P.setVector(n-1, m-1, Values{n,m}(1), Values{n,m}(2), Values{n,m}(3));
                case 3
                    % Freeform vector
                    P.setVector(n-1, m-1, Values{n,m});
                case 4
                    % Linked object
                    P.setLinkedObject(n-1, m-1, Values{n,m});
                case 5
                    % Logical object
                    P.setLogical(n-1, m-1, Values{n,m}(1));
            end
        end
    end
end
P.setStoreSwingCalls(false);