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