Mercurial > hg > ltpda
view m-toolbox/m/gui/quicklook/ltpdaquicklook.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line source
function varargout = ltpdaquicklook(varargin) % LTPDAQUICKLOOK allows the user to quicklook LTPDA objects. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: LTPDAQUICKLOOK allows the user to quicklook LTPDA objects. % % CALL: ltpdaquicklook % % % VERSION: $Id: ltpdaquicklook.m,v 1.5 2009/01/15 16:09:28 ingo Exp $ % % HISTORY: 07-03-08 M Hewitson % Creation % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Check if I exist already hs = findall(0); found = -1; for j=1:length(hs) h = hs(j); if strcmp(get(h, 'Tag'), 'LTPDAquicklook') found = h; end end if found ~= -1 figure(found); return end % id = findobj('Tag', 'LTPDAquicklook'); % if ~isempty(id) % figure(id) % return % end %% Some initial setup Gproperties.Gcol = [240 240 240]/255; Gproperties.Gwidth = 600; Gproperties.Gheight = 400; Gproperties.Gborder = 10; fontsize = 12; Gproperties.Screen = get(0,'screensize'); Gproperties.Gposition = [150 ... 100 ... Gproperties.Gwidth... Gproperties.Gheight]; % Initialize and hide the GUI as it is being constructed. mainfig = figure('Name', 'LTPDA Quicklook',... 'NumberTitle', 'off',... 'Visible','off',... 'Position',Gproperties.Gposition,... 'Color', Gproperties.Gcol,... 'Toolbar', 'none',... 'MenuBar', 'none',... 'Resize', 'off',... 'HandleVisibility', 'callback', ... 'Tag', 'LTPDAquicklook'); % Set mainfig callbacks set(mainfig, 'CloseRequestFcn', {@ltpda_quicklook_close, mainfig}); % Set Application data setappdata(mainfig, 'Gproperties', Gproperties); %% GUI Parts % Objects list objs = getWorkspaceObjs(); setappdata(mainfig, 'objs', objs); lbh = uicontrol(mainfig,'Style','listbox',... 'String',{' '},... 'Value',1,... 'BackgroundColor', 'w',... 'Fontsize', fontsize,... 'Max', 1000,... 'Position',[10 90 150 300],... 'Tag', 'LTPDA_quicklook_objlist'); % Set callback set(lbh, 'Callback', {@objList, mainfig}); setWorkspaceObjsList(objs) % Refresh button pbh = uicontrol(mainfig,'Style','pushbutton',... 'String','Refresh',... 'Callback', {@refresh, mainfig}, ... 'Position',[10 70 60 25]); % Object display sth = uicontrol(mainfig,'Style','text',... 'String','',... 'BackgroundColor', 'w', ... 'ForegroundColor', 'b', ... 'HorizontalAlignment', 'left', ... 'Tag', 'LTPDA_quicklook_display', ... 'Position',[170 90 420 300]); % Plot button pbh = uicontrol(mainfig,'Style','pushbutton',... 'String','iplot',... 'Callback', {@call_iplot, mainfig}, ... 'Position',[10 10 60 25]); % history plot pbh = uicontrol(mainfig,'Style','pushbutton',... 'String','plot history',... 'Callback', {@call_histplot, mainfig}, ... 'Position',[80 10 80 25]); %% Start the GUI % Make the GUI visible. set(mainfig,'Visible','on') %% Callbacks %---------------- history plot function call_histplot(varargin) mainfig = varargin{end}; objs = getappdata(mainfig, 'objs'); % get selection olh = findobj(mainfig, 'Tag', 'LTPDA_quicklook_objlist'); idx = get(olh, 'Value'); cmd = sprintf('obj = evalin(''base'', ''%s'');', objs(idx).name); eval(cmd); plot(obj.hist); %---------------- iplot function call_iplot(varargin) mainfig = varargin{end}; objs = getappdata(mainfig, 'objs'); % get selection olh = findobj(mainfig, 'Tag', 'LTPDA_quicklook_objlist'); idx = get(olh, 'Value'); cmd = sprintf('obj = evalin(''base'', ''%s'');', objs(idx).name); eval(cmd); iplot(obj); %---------------- refresh function refresh(varargin) mainfig = varargin{end}; objs = getWorkspaceObjs(); setWorkspaceObjsList(objs) setappdata(mainfig, 'objs', objs); %---------------- Close function function ltpda_quicklook_close(varargin) % Callback executed when the GUI is closed disp('* Goodbye from the LTPDA Quicklook GUI *') delete(varargin{1}) %---------------- Get a list of LTPDA objects in the MATLAB workspace function objs = getWorkspaceObjs() % get base workspace variables ws_vars = evalin('base','whos'); objs = []; for j=1:length(ws_vars) cmd = sprintf('obj = evalin(''base'', ''%s'');', ws_vars(j).name); eval(cmd) if isa(obj, 'ltpda_uo') objs = [objs ws_vars(j)]; end end %---------------- Callback for list selection function objList(varargin) mainfig = varargin{end}; objs = getappdata(mainfig, 'objs'); % get selection olh = findobj(mainfig, 'Tag', 'LTPDA_quicklook_objlist'); idx = get(olh, 'Value'); cmd = sprintf('obj = evalin(''base'', ''%s'');', objs(idx).name); eval(cmd); txt = display(obj); dh = findobj(mainfig, 'Tag', 'LTPDA_quicklook_display'); set(dh, 'String', txt); %---------------- Fill the workspace object list function setWorkspaceObjsList(objs) id = findobj('Tag', 'LTPDA_quicklook_objlist'); objlist = []; for j=1:length(objs) obj = objs(j); str = sprintf('%s\t\t(%s)', obj.name, obj.class); objlist = [objlist cellstr(str)]; end set(id, 'Value', 1); set(id, 'String', objlist);