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);