function ormlc_menu_action(handles)
% ORMLC_MENU_ACTION - controller parameter name/value display in ctrlGUI.
% Cannot be called from outside of ctrlGUI.
%
% Last modified: 09/09/2006.
%
% Alex Kurzhanskiy <akurzhan@eecs.berkeley.edu>
%
global g_ctrlGUI;
set(handles.prevMLCP, 'Enable', 'on');
set(handles.nextMLCP, 'Enable', 'on');
set(handles.mlcpValue, 'Enable', 'on');
if isempty(g_ctrlGUI.mlController)
set(handles.prevMLCP, 'Enable', 'off');
set(handles.nextMLCP, 'Enable', 'off');
set(handles.mlcpName, 'String', '');
set(handles.mlcpValue, 'String', {''});
set(handles.mlcpValue, 'Enable', 'off');
return;
end
sfns = fieldnames(g_ctrlGUI.mlController);
N = size(sfns, 1); % number of fields in controller structure
if N < 3
set(handles.prevMLCP, 'Enable', 'off');
set(handles.nextMLCP, 'Enable', 'off');
set(handles.mlcpName, 'String', '');
set(handles.mlcpValue, 'String', {''});
set(handles.mlcpValue, 'Enable', 'off');
return;
end
if g_ctrlGUI.mlcpIndex <= 3
set(handles.prevMLCP, 'Enable', 'off');
end
if g_ctrlGUI.mlcpIndex >= N
set(handles.nextMLCP, 'Enable', 'off');
end
pname = sprintf('%s = ', sfns{g_ctrlGUI.mlcpIndex, 1});
set(handles.mlcpName, 'String', pname);
pvalue = getfield(g_ctrlGUI.mlController, sfns{g_ctrlGUI.mlcpIndex, 1});
if ~isa(pvalue, 'double')
set(handles.mlcpValue, 'String', {'<Unknown Object>'});
set(handles.mlcpValue, 'Enable', 'off');
return;
end
pvstr = num2str(pvalue);
M = size(pvstr, 1);
res = [];
for i = 1:M
s = deblank(pvstr(i, :));
if i == 1
s = sprintf('[%s', s);
end
if i < M
s = sprintf('%s;', s);
end
if i == M
s = sprintf('%s]', s);
end
res = [res; {s}];
end
set(handles.mlcpValue, 'String', res);
return;