www.gusucode.com > datamanager 工具箱matlab源码程序 > datamanager/@datamanager/vardisambiguate.m

    function vardisambiguate(fig,varNames,varValues,mfile,fcnname,okAction)

% Utility method for brushing/linked plots. May change in a future release.

% Copyright 2007-2011 The MathWorks, Inc.

import com.mathworks.page.datamgr.brushing.*;
import com.mathworks.page.datamgr.linkedplots.*;
import com.mathworks.page.datamgr.utils.*;
import com.mathworks.page.plottool.plotbrowser.*;

% Find linked variable names
% Build table entries
tableData = javaArray('java.lang.Object',length(varNames),3);
brushMgr = datamanager.brushmanager;
for k=1:length(varNames)
    tableData(k,1) = java.lang.String(varNames{k});
    I = brushMgr.getBrushingProp(varNames{k},mfile,fcnname,'I');
%     tableData(k,2) = java.lang.String(sprintf(getString(message('MATLAB:datamanager:vardisambiguate:NumberInteger',sum(I(:)))),numel(I)));
    tableData(k,2) = java.lang.String(getString(message('MATLAB:datamanager:vardisambiguate:NumberInteger',sum(I(:)),numel(I))));
    varDescriptions = workspacefunc('getabstractvaluesummariesj',{varValues{k}});     %#ok<CCAT1>
    tableData(k,3) = varDescriptions(1);
end

% Build and show Disambiguation dialog
dlg = javaObjectEDT('com.mathworks.page.datamgr.brushing.VariableDisambiguationDialog',...
    datamanager.getJavaFrame(fig),tableData,...
    {getString(message('MATLAB:datamanager:vardisambiguate:Name')),getString(message('MATLAB:datamanager:vardisambiguate:NumberOfBrushedPoints')),getString(message('MATLAB:datamanager:vardisambiguate:Size'))});


% Specify callbacks
set(handle(dlg.getOKButton,'callbackproperties'),...
        'ActionPerformedCallback',{@localOK dlg okAction});

javaMethodEDT('show',dlg);
% Make sure the dialog is fully ready before interacting with it. We don't
% want callbacks executing before all java classes are fully initialized.
drawnow 


function localOK(~,~,dlg,okAction)

pos = dlg.getSelectionIndex+1;
javaMethodEDT('hide',dlg);
if pos>=1
    feval(okAction{1},pos,okAction{2:end});
end
javaMethodEDT('dispose',dlg);