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

    function newvarFromVarEditor(varName)

% Disambiguate variables in linked plots when creating new variables from
% brushing annotations.

% Copyright 2008-2011 The MathWorks, Inc.

% Build and show Disambiguation dialog
dt = com.mathworks.mde.desk.MLDesktop.getInstance;
hostFrame = dt.getContainingFrame(dt.getClient(varName,'Variable Editor'));
[mfile,fcnname] = datamanager.getWorkspace(1);
dlg = javaObjectEDT('com.mathworks.page.datamgr.brushing.NewVarVariableDisambiguationDialog',...
        hostFrame);


% Specify callbacks
set(handle(dlg.getOKButton,'callbackproperties'),...
        'ActionPerformedCallback',{@localOK dlg varName mfile fcnname});
set(handle(dlg.getVariableComboBox.getEditor,'callbackproperties'),...
        'ActionPerformedCallback',{@localOK dlg  varName mfile fcnname});    

awtinvoke(dlg,'show()');


function localOK(es,ed,dlg,varName,mfile,fcnname) %#ok<INUSL>

newvarName = char(dlg.getVarName);
if isempty(newvarName) || ~isvarname(newvarName)
    javaMethodEDT('showMessageDialog','com.mathworks.mwswing.MJOptionPane',...
        dlg,getString(message('MATLAB:datamanager:newvarFromVarEditor:InvalidOrEmptyVariableName')), 'MATLAB',...
        javax.swing.JOptionPane.ERROR_MESSAGE);
    return
end

h = datamanager.brushmanager;
I = h.getBrushingProp(varName,mfile,fcnname,'I');
varValue = evalin('caller',varName);
if isvector(varValue)
    assignin('caller',newvarName,varValue(I));
else
    assignin('caller',newvarName,varValue(any(I,2),:));
end

awtinvoke(dlg,'hide()');