www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcwidgets/@columnTable/doSetupGrid.m
function doSetupGrid(obj) %DOSETUPGRID Set the table elements into the grid layout % % SETUPGRID(OBJ) sets up the grid layout to correctly contain the table % display objects and the scrollbars. % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. if obj.canPaint && obj.isCreatedCorrect % Flags to indicate that various components should be visible or not SHOW_VSCROLL = (diff(obj.ScrollRowLimits)>0); [nR_obj, nC_obj] = size(obj.MainObjects); if nC_obj>1 warning(message('mbc:mbcwidgets:columnTable:InvalidData')); end nR = nR_obj+1; if obj.ShowColumnHeaders nR = nR+1; end nC = 1; if SHOW_VSCROLL nC = nC+1; end rowsizes = [repmat(obj.RowHeight, 1, nR-1) -1]; colsizes = -1; els = cell(nR, nC); if obj.ShowColumnHeaders rowsizes(1) = obj.TitleHeight; els{1,1} = obj.ColumnHeaderObjects; els = i_convert_to_cell(els, obj.MainObjects, 2, 1); else els = i_convert_to_cell(els, obj.MainObjects, 1, 1); end if SHOW_VSCROLL els{1,2} = obj.vSliderbar; colsizes = [-1 obj.ScrollbarWidth]; mergeargs = {'mergeblock', {[1 nR], [2 2]}}; else mergeargs = {}; end set(obj.gridObject, ... 'clearmerge', [], ... 'dimension', [nR, nC], ... 'rowsizes', rowsizes, ... 'colsizes', colsizes, ... 'elements', els, ... mergeargs{:}); i_setvisible(obj.vSliderbar, obj.Visible, SHOW_VSCROLL); else set(obj.gridObject, 'clearmerge', [], ... 'dimension', [0 0], ... 'rowsizes', [], ... 'colsizes', [], ... 'elements', {}); set(obj.vSliderbar, 'Visible', 'off'); end function hcell = i_convert_to_cell(hcell, h, Rstart, Cstart) [nR_h, nC_h] = size(h); Rstart_adj = Rstart-1; Cstart_adj = Cstart-1; for n = Rstart:(Rstart_adj+nR_h) n_hindex = n-Rstart_adj; for m = Cstart:(Cstart_adj+nC_h) hcell{n, m} = h(n_hindex, m-Cstart_adj); end end function i_setvisible(hObject, onstate, boolvalue) if boolvalue set(hObject, 'Visible', onstate); else set(hObject, 'Visible', 'off'); end