Daniel@0: function vis_show_gui_comp(h, indx, action,varargin) Daniel@0: Daniel@0: %VIS_SHOW_GUI_COMP is a subfunction of SOM_SHOW_GUI. Daniel@0: % Daniel@0: % vis_show_gui_comp(handle, indx, action, varargin) Daniel@0: % Daniel@0: % Input arguments: Daniel@0: % handle (struct) Daniel@0: % indx (scalar) Daniel@0: % action (string) Daniel@0: % varargin (varies) Daniel@0: % Daniel@0: % See also SOM_SHOW_GUI. Daniel@0: Daniel@0: % Copyright (c) 2000 by Roman Feldman and Juha Vesanto Daniel@0: % Contributed to SOM Toolbox on August 22nd, 2000 Daniel@0: % http://www.cis.hut.fi/projects/somtoolbox/ Daniel@0: Daniel@0: % Version 2.0beta roman 160800 juuso 220800 Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % MAIN % Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: udata = get(h,'UserData'); Daniel@0: plot_array = udata.plot_array; Daniel@0: l = length(plot_array); Daniel@0: Daniel@0: %%%%%% Daniel@0: % init %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%% Daniel@0: Daniel@0: if (strcmp(action,'init')) Daniel@0: Daniel@0: %--- color vars --- Daniel@0: fig_color = [0.8 0.8 0.8]; Daniel@0: bg_color1 = [0.701960784313725 0.701960784313725 0.701960784313725]; Daniel@0: bg_color2 = [0.9 0.9 0.9]; Daniel@0: %--- object position vars (in pixels) --- Daniel@0: % calculations based on case 'comp' Daniel@0: %% hint text Daniel@0: hint_dist1 = 98.17-(61.27+36.9); % hint text lower edge and next lower frame upper edge Daniel@0: hint_dist2 = 123-(98.17+18.45); % figure upper edge and hint text upper edge Daniel@0: %% general Daniel@0: dist1 = 67.42-61.27; % general distance between frame edge and object in frame Daniel@0: %% frame + ok / cancel Daniel@0: frames_dist = 61.27-(8.38+36.9); Daniel@0: frames_dist2 = 8.38; Daniel@0: f_fr = [7.9 8.38 216.2 36.9]; % final frame Daniel@0: ok_pb = [17.1 15.76 75.9 22.14]; Daniel@0: cancel_pb = [139 15.76 75.9 22.14]; Daniel@0: %% objects Daniel@0: hint_txt = [230 18.45]; % hint text width and height Daniel@0: interp_cb = [98.9 24.6]; Daniel@0: title_txt = [35 hint_txt(2)]; Daniel@0: title_edit_h = 23.083; Daniel@0: var_pop = interp_cb; Daniel@0: list_lt = [130 130]; Daniel@0: calc_txt = [list_lt(1) hint_txt(2)]; Daniel@0: useall_pb = [50 interp_cb(2)]; Daniel@0: Daniel@0: if (length(indx) > 1) Daniel@0: errordlg({'Same options for multiple subplots', ... Daniel@0: 'not yet available'},'Error in SOM_VIS: options'); Daniel@0: return; Daniel@0: Daniel@0: elseif (isempty(plot_array(1).args)) Daniel@0: errordlg({'Try to select subplot first'}, ... Daniel@0: 'Error in SOM_VIS: options'); Daniel@0: return; Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % 'comp' Daniel@0: % Daniel@0: elseif (strncmp('comp',plot_array(indx).args{1},4)) Daniel@0: old_fig_n = watchon; Daniel@0: W = 230; H = 123; Daniel@0: units = get(h,'units'); Daniel@0: set(h,'units','pixels'); Daniel@0: fp = get(h,'Position'); Daniel@0: fig_pos = [(fp(1)+fp(3)) ... Daniel@0: (fp(2)+fp(2)+fp(4)/2-H/2) ... Daniel@0: W ... Daniel@0: H]; Daniel@0: o1 = sum(f_fr([2 4]))+frames_dist; Daniel@0: o2 = o1+dist1; Daniel@0: o3 = 2*dist1+interp_cb(2); Daniel@0: o4 = o1+o3+hint_dist1; Daniel@0: hint_text_pos = [1 o4 hint_txt]; Daniel@0: frame1_pos = [f_fr(1) o1 f_fr(3) o3]; Daniel@0: interp_pos = [ok_pb(1) o2 interp_cb]; Daniel@0: frame2_pos = f_fr; Daniel@0: ok_pos = ok_pb; Daniel@0: cancel_pos = cancel_pb; Daniel@0: Daniel@0: fig_h = figure( ... Daniel@0: 'Units','pixels', ... Daniel@0: 'Position', fig_pos, ... Daniel@0: 'Color',fig_color, ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'Name','component', ... Daniel@0: 'MenuBar','none', ... Daniel@0: 'Visible','off'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% hint Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',fig_color, ... Daniel@0: 'HorizontalAlignment','center', ... Daniel@0: 'Position',hint_text_pos, ... Daniel@0: 'String','Options for component plane', ... Daniel@0: 'Style','text'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame1_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: pr = udata.property{indx}; Daniel@0: chkb_h = uicontrol( ... %% interpolated Daniel@0: 'Units','pixels', ... Daniel@0: 'HorizontalAlignment','center', ... Daniel@0: 'Position',interp_pos, ... Daniel@0: 'Style','checkbox', ... Daniel@0: 'String','interpolated', ... Daniel@0: 'Value',pr{1}); Daniel@0: set(chkb_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame2_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: s = ['vis_show_gui_comp(', ... Daniel@0: mat2str(h), ',', mat2str(indx), ... Daniel@0: ',''comp'',' mat2str(fig_h) ')']; Daniel@0: set( ... Daniel@0: uicontrol( ... %% OK Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',ok_pos, ... Daniel@0: 'String','OK', ... Daniel@0: 'Callback',s),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% Cancel Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',cancel_pos, ... Daniel@0: 'String','Cancel', ... Daniel@0: 'Callback',['close(' mat2str(fig_h) ')']),'units','normalized'); Daniel@0: Daniel@0: watchoff(old_fig_n); Daniel@0: tmp_udata = [chkb_h]; Daniel@0: set(fig_h,'units','normalized', ... Daniel@0: 'Visible','on', ... Daniel@0: 'UserData',tmp_udata, ... Daniel@0: 'handlevisibility','off'); Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % 'umat' Daniel@0: % Daniel@0: elseif (strncmp('umat',plot_array(indx).args{1},4)) Daniel@0: old_fig_n = watchon; Daniel@0: W = 230; H = 335.893; Daniel@0: units = get(h,'units'); Daniel@0: set(h,'units','pixels'); Daniel@0: fp = get(h,'Position'); Daniel@0: fig_pos = [(fp(1)+fp(3)) ... Daniel@0: (fp(2)+fp(2)+fp(4)/2-H/2) ... Daniel@0: W ... Daniel@0: H]; Daniel@0: o1 = sum(f_fr([2 4]))+frames_dist; Daniel@0: o2 = o1+dist1; Daniel@0: o3 = 2*dist1+list_lt(2)+calc_txt(2); Daniel@0: o4 = o2+list_lt(2); Daniel@0: o5 = sum(cancel_pb([1 3]))-useall_pb(1); Daniel@0: o6 = o2+o3/2-useall_pb(2)/2; Daniel@0: o7 = o1+o3+frames_dist2; Daniel@0: o8 = 2*dist1+interp_cb(2); Daniel@0: o9 = o7+dist1; Daniel@0: o10 = o7+o8+frames_dist2;; Daniel@0: o11 = 2*dist1+max(title_edit_h,title_txt(2)); Daniel@0: o12 = W-(title_txt(1)+2*ok_pb(1)); Daniel@0: o13 = o10+dist1+(title_edit_h-title_txt(2))/2; Daniel@0: o14 = o10+dist1; Daniel@0: if title_txt(2)>title_edit_h, Daniel@0: o13 = o10+dist1; Daniel@0: o14 = o13+(title_edit_h-title_txt(2))/2; Daniel@0: end Daniel@0: o15 = ok_pb(1)+title_txt(1); Daniel@0: o16 = o10+o11+hint_dist1; Daniel@0: hint_text_pos = [1 o16 hint_txt]; Daniel@0: frame1_pos = [f_fr(1) o10 f_fr(3) o11]; Daniel@0: title_text_pos = [ok_pb(1) o13 title_txt]; Daniel@0: title_pos = [o15 o14 o12 title_edit_h]; Daniel@0: frame2_pos = [f_fr(1) o7 f_fr(3) o8]; Daniel@0: interp_pos = [ok_pb(1) o9 interp_cb]; Daniel@0: frame3_pos = [f_fr(1) o1 f_fr(3) o3]; Daniel@0: list_text_pos = [ok_pb(1) o4 calc_txt]; Daniel@0: list_pos = [ok_pb(1) o2 list_lt]; Daniel@0: use_all_pos = [o5 o6 useall_pb]; Daniel@0: frame4_pos = f_fr; Daniel@0: ok_pos = ok_pb; Daniel@0: cancel_pos = cancel_pb; Daniel@0: Daniel@0: fig_h = figure( ... Daniel@0: 'Units','pixels', ... Daniel@0: 'Position', fig_pos, ... Daniel@0: 'Color',fig_color, ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'Name','U-matrix', ... Daniel@0: 'MenuBar','none', ... Daniel@0: 'Visible','off'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% hint Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',fig_color, ... Daniel@0: 'HorizontalAlignment','center', ... Daniel@0: 'Position',hint_text_pos, ... Daniel@0: 'String','Options for U-matrix', ... Daniel@0: 'Style','text'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame1_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% title Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_text_pos, ... Daniel@0: 'BackgroundColor',bg_color1, ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Style','text', ... Daniel@0: 'String','Title'),'units','normalized'); Daniel@0: Daniel@0: pr = udata.property{indx}; Daniel@0: ed_h = uicontrol( ... %% [edit] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_pos, ... Daniel@0: 'FontSize',12, ... Daniel@0: 'Style','edit', ... Daniel@0: 'String',pr{2}, ... Daniel@0: 'BackgroundColor',bg_color2); Daniel@0: set(ed_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame2_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: chkb_h = uicontrol( ... %% interpolated Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',interp_pos, ... Daniel@0: 'Style','checkbox', ... Daniel@0: 'String','interpolated', ... Daniel@0: 'Value',pr{1}); Daniel@0: set(chkb_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame3_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% calculated from Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',bg_color1, ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Position',list_text_pos, ... Daniel@0: 'String','calculated from', ... Daniel@0: 'Style','text'),'units','normalized'); Daniel@0: Daniel@0: list1_h = uicontrol( ... %% [listbox] Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',bg_color2, ... Daniel@0: 'Position',list_pos, ... Daniel@0: 'String',udata.sM.comp_names, ... Daniel@0: 'Style','listbox', ... Daniel@0: 'Max',2, ... Daniel@0: 'Value',pr{3}); Daniel@0: set(list1_h,'units','normalized'); Daniel@0: Daniel@0: s = ['tmp=get(' mat2str(fig_h) ',''userdata'');set(tmp(3),''value'',' ... Daniel@0: mat2str(1:length(udata.sM.comp_names)) ');']; Daniel@0: set( ... Daniel@0: uicontrol( ... %% Use all Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',use_all_pos, ... Daniel@0: 'String','Use all', ... Daniel@0: 'Callback',s),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame4_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: s = ['vis_show_gui_comp(' ... Daniel@0: mat2str(h) ',' mat2str(indx) ... Daniel@0: ',''umat'',' mat2str(fig_h) ')']; Daniel@0: set( ... Daniel@0: uicontrol( ... %% OK Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',ok_pos, ... Daniel@0: 'String','OK', ... Daniel@0: 'Callback',s),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% Cancel Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',cancel_pos, ... Daniel@0: 'String','Cancel', ... Daniel@0: 'Callback',['close(' mat2str(fig_h) ')']),'units','normalized'); Daniel@0: Daniel@0: watchoff(old_fig_n); Daniel@0: tmp_udata = [chkb_h ed_h list1_h]; Daniel@0: set(fig_h,'units','normalized', ... Daniel@0: 'Visible','on', ... Daniel@0: 'UserData', tmp_udata, ... Daniel@0: 'handlevisibility','off'); Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % 'color' Daniel@0: % Daniel@0: elseif (strncmp('color',plot_array(indx).args{1},5)) Daniel@0: old_fig_n = watchon; Daniel@0: W = 230; H = 212.043; Daniel@0: units = get(h,'units'); Daniel@0: set(h,'units','pixels'); Daniel@0: fp = get(h,'Position'); Daniel@0: fig_pos = [(fp(1)+fp(3)) ... Daniel@0: (fp(2)+fp(2)+fp(4)/2-H/2) ... Daniel@0: W ... Daniel@0: H]; Daniel@0: o1 = sum(f_fr([2 4]))+frames_dist; Daniel@0: o2 = o1+dist1; Daniel@0: o3 = 2*dist1+var_pop(2); Daniel@0: o4 = o1+o3+frames_dist2; Daniel@0: o5 = o4+dist1; Daniel@0: o6 = 2*dist1+interp_cb(2); Daniel@0: o7 = o4+o6+frames_dist2; Daniel@0: o8 = 2*dist1+max(title_edit_h,title_txt(2)); Daniel@0: o9 = W-(title_txt(1)+2*ok_pb(1)); Daniel@0: o10 = o7+dist1+(title_edit_h-title_txt(2))/2; Daniel@0: o11 = o7+dist1; Daniel@0: if title_txt(2)>title_edit_h, Daniel@0: o10 = o7+dist1; Daniel@0: o11 = o10+(title_edit_h-title_txt(2))/2; Daniel@0: end Daniel@0: o12 = ok_pb(1)+title_txt(1); Daniel@0: o13 = o7+o8+hint_dist1; Daniel@0: hint_text_pos = [1 o13 hint_txt]; Daniel@0: frame1_pos = [f_fr(1) o7 f_fr(3) o8]; Daniel@0: title_text_pos = [ok_pb(1) o10 title_txt]; Daniel@0: title_pos = [o12 o11 o9 title_edit_h]; Daniel@0: frame2_pos = [f_fr(1) o4 f_fr(3) o6]; Daniel@0: interp_pos = [ok_pb(1) o5 interp_cb]; Daniel@0: frame3_pos = [f_fr(1) o1 f_fr(3) o3]; Daniel@0: popup_pos = [ok_pb(1) o2 var_pop]; Daniel@0: frame4_pos = f_fr; Daniel@0: ok_pos = ok_pb; Daniel@0: cancel_pos = cancel_pb; Daniel@0: Daniel@0: fig_h = figure( ... Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',fig_pos, ... Daniel@0: 'Color',fig_color, ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'Name','color plane', ... Daniel@0: 'MenuBar','none', ... Daniel@0: 'Visible','off'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% hint Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',fig_color, ... Daniel@0: 'HorizontalAlignment','center', ... Daniel@0: 'Position',hint_text_pos, ... Daniel@0: 'String','Options for colorplane', ... Daniel@0: 'Style','text'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame1_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% title Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_text_pos, ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Style','text', ... Daniel@0: 'String','Title'),'units','normalized'); Daniel@0: Daniel@0: pr = udata.property{indx}; Daniel@0: ed_h = uicontrol( ... %% [edit] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_pos, ... Daniel@0: 'FontSize',12, ... Daniel@0: 'Style','edit', ... Daniel@0: 'String',pr{2}, ... Daniel@0: 'BackgroundColor',bg_color2); Daniel@0: set(ed_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame2_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: chkb_h = uicontrol( ... %% interpolated Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',interp_pos, ... Daniel@0: 'Style','checkbox', ... Daniel@0: 'String','interpolated', ... Daniel@0: 'Value',pr{1}); Daniel@0: set(chkb_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame3_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: popup1_h = uicontrol( ... %% [popup] Daniel@0: 'Units','pixels', ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',popup_pos, ... Daniel@0: 'String',pr{3}, ... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Value',pr{4}); Daniel@0: s = ['tmp=get(' mat2str(fig_h) ',''userdata'');' ... Daniel@0: 'vis_show_gui_tool([tmp(3) 6],''popup_select'');' ... Daniel@0: 'u=get(' mat2str(h) ',''UserData'');' ... Daniel@0: 'v=' mat2str(indx) ';' ... Daniel@0: 'pr=u.property{v};' ... Daniel@0: 'pr{3}=get(tmp(3),''string'');' ... Daniel@0: 'pr{4}=get(tmp(3),''value'');' ... Daniel@0: 'u.property{v}=pr;' ... Daniel@0: 'set(' mat2str(h) ',''userdata'',u)']; Daniel@0: set(popup1_h,'units','normalized', ... Daniel@0: 'Callback',s); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame4_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: s = ['vis_show_gui_comp(', ... Daniel@0: mat2str(h), ',', mat2str(indx), ... Daniel@0: ',''color'',' mat2str(fig_h) ')']; Daniel@0: set( ... Daniel@0: uicontrol( ... %% OK Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',ok_pos, ... Daniel@0: 'String','OK', ... Daniel@0: 'Callback',s),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% Cancel Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',cancel_pos, ... Daniel@0: 'String','Cancel', ... Daniel@0: 'Callback',['close(' mat2str(fig_h) ')']),'units','normalized'); Daniel@0: Daniel@0: watchoff(old_fig_n); Daniel@0: tmp_udata = [chkb_h ed_h popup1_h]; Daniel@0: set(fig_h,'units','normalized', ... Daniel@0: 'Visible','on', ... Daniel@0: 'UserData', tmp_udata, ... Daniel@0: 'handlevisibility','off'); Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % 'empty' Daniel@0: % Daniel@0: elseif (strncmp('empty',plot_array(indx).args{1},5)) Daniel@0: old_fig_n = watchon; Daniel@0: W = 230; H = 121.483; Daniel@0: units = get(h,'units'); Daniel@0: set(h,'units','pixels'); Daniel@0: fp = get(h,'Position'); Daniel@0: fig_pos = [(fp(1)+fp(3)) ... Daniel@0: (fp(2)+fp(2)+fp(4)/2-H/2) ... Daniel@0: W ... Daniel@0: H]; Daniel@0: o1 = sum(f_fr([2 4]))+frames_dist; Daniel@0: o2 = 2*dist1+max(title_edit_h,title_txt(2)); Daniel@0: o3 = 2*dist1+interp_cb(2); Daniel@0: o4 = W-(title_txt(1)+2*ok_pb(1)); Daniel@0: o5 = o1+dist1+(title_edit_h-title_txt(2))/2; Daniel@0: o6 = o1+dist1; Daniel@0: if title_txt(2)>title_edit_h, Daniel@0: o5 = o1+dist1; Daniel@0: o6 = o5+(title_edit_h-title_txt(2))/2; Daniel@0: end Daniel@0: o7 = ok_pb(1)+title_txt(1); Daniel@0: o8 = o1+o2+hint_dist1; Daniel@0: hint_text_pos = [1 o8 hint_txt]; Daniel@0: frame1_pos = [f_fr(1) o1 f_fr(3) o3]; Daniel@0: title_text_pos = [ok_pb(1) o5 title_txt]; Daniel@0: title_pos = [o7 o6 o4 title_edit_h]; Daniel@0: frame2_pos = f_fr; Daniel@0: ok_pos = ok_pb; Daniel@0: cancel_pos = cancel_pb; Daniel@0: Daniel@0: fig_h = figure( ... Daniel@0: 'Units','pixels', ... Daniel@0: 'Position', fig_pos, ... Daniel@0: 'Color',fig_color, ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'Name','empty plane', ... Daniel@0: 'MenuBar','none', ... Daniel@0: 'Visible','off'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% hint Daniel@0: 'Units','pixels', ... Daniel@0: 'BackgroundColor',fig_color, ... Daniel@0: 'HorizontalAlignment','center', ... Daniel@0: 'Position',hint_text_pos, ... Daniel@0: 'String','Options for empty plane', ... Daniel@0: 'Style','text'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame1_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% title Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_text_pos, ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Style','text', ... Daniel@0: 'String','Title'),'units','normalized'); Daniel@0: Daniel@0: pr = udata.property{indx}; Daniel@0: ed_h = uicontrol( ... %% [edit] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',title_pos, ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontSize',12, ... Daniel@0: 'String',pr{1}, ... Daniel@0: 'BackgroundColor',bg_color2); Daniel@0: set(ed_h,'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% [frame] Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',frame2_pos, ... Daniel@0: 'Style','frame'),'units','normalized'); Daniel@0: Daniel@0: s = ['vis_show_gui_comp(', ... Daniel@0: mat2str(h) ',' mat2str(indx), ... Daniel@0: ',''empty'',' mat2str(fig_h) ')']; Daniel@0: set( ... Daniel@0: uicontrol( ... %% OK Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',ok_pos, ... Daniel@0: 'String','OK', ... Daniel@0: 'Callback',s),'units','normalized'); Daniel@0: Daniel@0: set( ... Daniel@0: uicontrol( ... %% Cancel Daniel@0: 'Units','pixels', ... Daniel@0: 'Position',cancel_pos, ... Daniel@0: 'String','Cancel', ... Daniel@0: 'Callback',['close(' mat2str(fig_h) ')']),'units','normalized'); Daniel@0: Daniel@0: watchoff(old_fig_n); Daniel@0: tmp_udata = [ed_h]; Daniel@0: set(fig_h,'units','normalized', ... Daniel@0: 'Visible','on', ... Daniel@0: 'UserData', tmp_udata, ... Daniel@0: 'handlevisibility','off'); Daniel@0: Daniel@0: end Daniel@0: Daniel@0: %%%%%% Daniel@0: % comp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%% Daniel@0: elseif (strcmp(action,'comp')) Daniel@0: tmp_h = get(varargin{1},'UserData'); Daniel@0: v = get(tmp_h,'Value'); Daniel@0: pr = udata.property{indx}; Daniel@0: if (v) Daniel@0: v = 'compi'; Daniel@0: pr{1} = 1; Daniel@0: else Daniel@0: v = 'comp'; Daniel@0: pr{1} = 0; Daniel@0: end Daniel@0: plot_array(indx).args{1} = v; Daniel@0: udata.plot_array = plot_array; Daniel@0: udata.property{indx} = pr; Daniel@0: set(h,'UserData',udata); Daniel@0: close(varargin{1}); Daniel@0: Daniel@0: %%%%%% Daniel@0: % umat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%% Daniel@0: elseif (strcmp(action,'umat')) Daniel@0: tmp_h = get(varargin{1},'UserData'); Daniel@0: v = get(tmp_h(1),'Value'); Daniel@0: pr = udata.property{indx}; Daniel@0: if (v) Daniel@0: v = 'umati'; Daniel@0: pr{1} = 1; Daniel@0: else Daniel@0: v = 'umat'; Daniel@0: pr{1} = 0; Daniel@0: end Daniel@0: plot_array(indx).args{1} = v; Daniel@0: Daniel@0: s = get(tmp_h(2),'String'); Daniel@0: v = get(tmp_h(3),'Value'); % userdata Daniel@0: plot_array(indx).string = s; Daniel@0: if strcmp(s,'U-matrix') Daniel@0: plot_array(indx).args{2} = v; Daniel@0: else Daniel@0: plot_array(indx).args{2} = {v s}; Daniel@0: end Daniel@0: pr{2} = s; Daniel@0: pr{3} = v; Daniel@0: udata.plot_array = plot_array; Daniel@0: udata.property{indx} = pr; Daniel@0: set(h,'UserData',udata); Daniel@0: set(udata.h(1),'String',{plot_array(:).string}); Daniel@0: close(varargin{1}); Daniel@0: Daniel@0: %%%%%%% Daniel@0: % color %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%% Daniel@0: elseif (strcmp(action,'color')) Daniel@0: tmp_h = get(varargin{1},'UserData'); % tmp_h = [chkb_h ed_h popup1_h]; Daniel@0: Daniel@0: v = get(tmp_h(1),'Value'); Daniel@0: pr = udata.property{indx}; Daniel@0: if (v) Daniel@0: v = 'colori'; Daniel@0: pr{1} = 1; Daniel@0: else Daniel@0: v = 'color'; Daniel@0: pr{1} = 0; Daniel@0: end Daniel@0: plot_array(indx).args{1} = v; Daniel@0: Daniel@0: v = get(tmp_h(3),'Value'); Daniel@0: s = get(tmp_h(3),'string'); Daniel@0: if v>5 & ~strcmp(s{v},'-variable-'), Daniel@0: m = evalin('base',s{v}); Daniel@0: elseif ~strcmp(s{v},'-variable-'), Daniel@0: m = som_colorcode(udata.sM,s{v}); Daniel@0: end Daniel@0: plot_array(indx).args{2} = m; Daniel@0: pr{3} = s; Daniel@0: s = get(tmp_h(2),'String'); Daniel@0: plot_array(indx).string = s; Daniel@0: if ~strcmp(s,'Color code') Daniel@0: plot_array(indx).args{2} = ... Daniel@0: {plot_array(indx).args{2} s}; Daniel@0: end Daniel@0: pr{2} = s; Daniel@0: pr{4} = v; Daniel@0: udata.plot_array = plot_array; Daniel@0: udata.property{indx} = pr; Daniel@0: set(h,'UserData',udata); Daniel@0: set(udata.h(1),'String',{plot_array(:).string}); Daniel@0: close(varargin{1}); Daniel@0: Daniel@0: %%%%%%% Daniel@0: % empty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%% Daniel@0: elseif (strcmp(action,'empty')) Daniel@0: pr = udata.property{indx}; Daniel@0: tmp_h = get(varargin{1},'UserData'); Daniel@0: s = get(tmp_h,'String'); Daniel@0: pr{1} = s; Daniel@0: plot_array(indx).string = s; Daniel@0: plot_array(indx).args{2} = s; Daniel@0: udata.plot_array = plot_array; Daniel@0: udata.property{indx} = pr; Daniel@0: set(h,'UserData',udata); Daniel@0: set(udata.h(1),'String',{plot_array(:).string}); Daniel@0: close(varargin{1}); Daniel@0: Daniel@0: else Daniel@0: Daniel@0: end Daniel@0: Daniel@0: Daniel@0: