www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cglookuptwo/mtableview.m

    function mtableview(T,ThisTable,index)
%MTABLEVIEW table history view
%
%  MTABLEVIEW(T,ThisTable,index)
%
%  ThisTable is assumed to be an instance of a numeric mbcwidgets.Table2D.

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

% Sets up the tableviewer for a cglookuptwo object.
if nargin > 2
    % history display
    mem = get(T,'memory');

    data = [];

    if index(1) <= length(mem)
        data = mem(index(1)).Values;
    end
    if length(index) == 2 && index(2) <= length(mem)
        data2 = mem(index(2)).Values;
        if isequal(size(data),size(data2))
            data = data-data2;
        end
    end

    xNormaliser = get(T,'x');
    X = retrieveNormaliser(xNormaliser,mem(index(1)).Date);
    yNormaliser = get(T,'y');
    Y = retrieveNormaliser(yNormaliser,mem(index(1)).Date);

else
    data = get(T,'values');
    X = info(get(T, 'x'));
    Y = info(get(T, 'y'));
end

S = size(data);
if any(~S) || isempty(X) || isempty(Y)
    ThisTable.Peer.clearTable;
    return
end

xHeadings = invert(X,(0:S(2)-1));
yHeadings = invert(Y,(0:S(1)-1));
xvar = get(X, 'x');
yvar = get(Y, 'x');

ThisTable.Peer.setData(data, xHeadings, yHeadings);
ThisTable.Peer.setCornerLabels(yvar.getname,xvar.getname);
ThisTable.ShowRowHeader = true;
ThisTable.ShowColumnHeader = true;
ThisTable.ShowHeaderSelection = true;

function N = retrieveNormaliser(pNormaliser,Date)
[~,ind] = getmemory(pNormaliser.info,Date);
if isempty(ind)
    N = pNormaliser.info;
else
    N = pNormaliser.history_reset(ind);
end