iluke

PURPOSE ^

GUI FOR LUKE/C3PO/R5X2

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

 GUI FOR LUKE/C3PO/R5X2

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %
0002 % GUI FOR LUKE/C3PO/R5X2
0003 %
0004 clear all
0005 close all
0006 %
0007 [dkepath,dkedisplay,hxr.param] = load_structures_yp('dkepath','','','dkedisplay','NO_DISPLAY','','hxrparam','STANDARD','');
0008 %
0009 hxr.cam = {};
0010 hxr.exp = '';
0011 %
0012 workdir = pwd;
0013 %
0014 lukeobj = struct;
0015 %
0016 % -------------------------------------------------------------------------
0017 %
0018 % ILUKE DIMENSIONS and INITIALIZATION
0019 %
0020 style.panelsep = 5;
0021 %
0022 style.figbaseheight = 900;
0023 style.figbasewidth = 1200;
0024 %
0025 style.plotwidth = 340;
0026 style.plotheight = 300;
0027 %
0028 style.graphwidth = 272;
0029 style.graphheight = 204;
0030 %
0031 style.titlestrwidth = 150;
0032 %
0033 style.simulfiletitlewidth = 120;
0034 style.shotnumtitlewidth = 120; 
0035 style.shotnumwidth = 90; 
0036 style.titlestrheight = 50;
0037 style.workdirtitlecorr = 4;
0038 %
0039 style.titlewidth = 105;
0040 style.butheight = 25;%40;% height of button
0041 style.butwidth = 60;%80;% width of button
0042 style.longbutwidth = 90;%80;% width of button
0043 style.shortbutwidth = 2*style.butwidth - style.longbutwidth;%80;% width of button
0044 style.buthsep = 10;% horizontal separation between buttons
0045 style.butvsep = 10;% vertical separation between buttons
0046 %
0047 style.fontname = 'Liberation Mono';%get(0,'FixedWidthFontName');%'fixedwidth';% font type
0048 style.fontsize = 14;% font size
0049 style.titlefontsize = 2*style.fontsize;
0050 %
0051 style.disttitlewidth = 250;
0052 %
0053 % -------------------------------------------------------------------------
0054 %
0055 % FIGURE DIMENSIONS
0056 %
0057 style.figwidth = style.figbasewidth + 3*style.panelsep;
0058 style.figheight = style.figbaseheight + 4*style.panelsep;
0059 %
0060 style.screensize = get(0,'ScreenSize');%get(0,'MonitorPositions');
0061 %
0062 style.figleft = fix((style.screensize(3) - style.figwidth)/2);
0063 style.figbottom = fix((style.screensize(4) - style.figheight)/2);
0064 %
0065 if style.figleft < 0 || style.figbottom < 0,
0066     error(['The screen resolution must be at least ',num2str(style.figwidth),' x ',num2str(style.figheight)])
0067 end
0068 %
0069 lukeobj.mainfig.position = [style.figleft,style.figbottom,style.figwidth,style.figheight];
0070 %
0071 % PANELS DIMENSIONS
0072 %
0073 style.panelwidth = style.figbasewidth - style.plotwidth;
0074 %
0075 style.titleheight = 3*style.butheight + 5*style.butvsep + style.titlestrheight;
0076 %
0077 style.controlpaneltop = style.figbaseheight - style.titleheight + 2*style.panelsep;% top position of button group
0078 style.controlheight = 8*style.butheight + 12*style.butvsep + style.titlestrheight;
0079 style.controlpanelbottom = style.controlpaneltop - style.controlheight;% top position of button group
0080 %
0081 style.infopanelheight = style.controlpanelbottom - 2*style.panelsep;
0082 %
0083 lukeobj.titlepanel.position = [style.panelsep,style.figbaseheight - style.titleheight + 3*style.panelsep,style.panelwidth,style.titleheight];
0084 lukeobj.controlpanel.position = [style.panelsep,style.controlpanelbottom,style.panelwidth,style.controlheight];
0085 lukeobj.infopanel.position = [style.panelsep,style.panelsep,style.panelwidth,style.infopanelheight];
0086 %
0087 style.controlheightadapt = style.butheight - style.butvsep;% to accomodate space for fluct...
0088 %
0089 style.panelstrcorr = style.titlestrheight + style.butvsep;
0090 %
0091 style.controlheightcorr = style.controlheight - style.panelstrcorr;
0092 style.infoheightcorr = style.infopanelheight - style.panelstrcorr;
0093 %
0094 lukeobj.infotext.position = [style.panelsep + style.buthsep,style.panelsep + style.butvsep,style.panelwidth - 2*style.buthsep,style.infopanelheight - 3*style.butvsep - style.titlestrheight];
0095 lukeobj.infostr.position = [style.buthsep,style.infoheightcorr,style.panelwidth - 2*style.buthsep,style.titlestrheight];
0096 %
0097 lukeobj.plot1.position = [style.panelwidth + 2*style.panelsep,2*style.plotheight + 3*style.panelsep,style.plotwidth,style.plotheight];
0098 lukeobj.plot2.position = [style.panelwidth + 2*style.panelsep,style.plotheight + 2*style.panelsep,style.plotwidth,style.plotheight];
0099 lukeobj.plot3.position = [style.panelwidth + 2*style.panelsep,style.panelsep,style.plotwidth,style.plotheight];
0100 %
0101 % GRAPHS DIMENSIONS
0102 %
0103 style.graph_position = [style.plotwidth - style.buthsep - style.graphwidth,style.plotheight - 2*style.butvsep - style.fontsize - style.butheight - style.graphheight,style.graphwidth,style.graphheight];  
0104 style.gsel_position = [style.buthsep,style.plotheight - style.butvsep - style.butheight,style.plotwidth - 4*style.buthsep - 2*style.butwidth,style.butheight];
0105 style.gsave_position = [style.plotwidth - 2*style.buthsep - 2*style.butwidth,style.plotheight - style.butvsep - style.butheight,style.butwidth,style.butheight];
0106 style.gprint_position = [style.plotwidth - style.buthsep - style.butwidth,style.plotheight - style.butvsep - style.butheight,style.butwidth,style.butheight];
0107 %
0108 lukeobj.graph1sel.position = style.gsel_position;
0109 lukeobj.graph2sel.position = style.gsel_position;
0110 lukeobj.graph3sel.position = style.gsel_position;
0111 %
0112 lukeobj.graph1save.position = style.gsave_position;
0113 lukeobj.graph2save.position = style.gsave_position;
0114 lukeobj.graph3save.position = style.gsave_position;
0115 %
0116 lukeobj.graph1print.position = style.gprint_position;
0117 lukeobj.graph2print.position = style.gprint_position;
0118 lukeobj.graph3print.position = style.gprint_position;
0119 %
0120 % CONTROLS DIMENSIONS
0121 %
0122 style.textheightcorr = (style.butheight - 3*style.fontsize)/2;% correction to center text within button
0123 style.butheightcorr = style.butheight + style.butvsep;
0124 %
0125 style.textheight = 2*style.fontsize;
0126 %
0127 lukeobj.controlstr.position = [2*style.buthsep + style.longbutwidth,style.controlheightcorr,style.panelwidth - 4*style.buthsep - 2*style.longbutwidth,style.titlestrheight];
0128 lukeobj.busy.position = [style.buthsep,style.controlheightcorr,style.longbutwidth,style.titlestrheight];
0129 lukeobj.cleargraphs.position = [style.panelwidth - style.buthsep - 2*style.butwidth,style.controlheight - style.butheight - style.butvsep,2*style.butwidth,style.butheight];
0130 %
0131 % SIMULATION INFO DIMENSIONS
0132 %
0133 lukeobj.lukevertitle.position = [style.buthsep,style.titleheight - style.butheight - style.butvsep + style.textheightcorr,style.simulfiletitlewidth,style.textheight];
0134 lukeobj.lukever.position = [2*style.buthsep + style.shotnumtitlewidth,style.titleheight - style.butheight - style.butvsep + style.textheightcorr,style.shotnumwidth + style.buthsep + style.butwidth,style.textheight];
0135 %
0136 lukeobj.tokamaktitle.position = [style.buthsep,2*style.butheight + 3*style.butvsep + style.textheightcorr,style.shotnumtitlewidth,style.textheight];
0137 lukeobj.shotnumtitle.position = [style.buthsep,style.butheight + 2*style.butvsep + style.textheightcorr,style.shotnumtitlewidth,style.textheight];
0138 lukeobj.shotimetitle.position = [style.buthsep,style.butvsep + style.textheightcorr,style.shotnumtitlewidth,style.textheight];
0139 %
0140 lukeobj.tokamak.position = [2*style.buthsep + style.shotnumtitlewidth,2*style.butheight + 3*style.butvsep + style.textheightcorr,style.shotnumwidth,style.textheight];
0141 lukeobj.shotnum.position = [2*style.buthsep + style.shotnumtitlewidth,style.butheight + 2*style.butvsep + style.textheightcorr,style.shotnumwidth,style.textheight];
0142 lukeobj.shotimes.position = [2*style.buthsep + style.shotnumtitlewidth,style.butvsep,style.shotnumwidth,style.butheight];
0143 %
0144 lukeobj.import.position = [style.shotnumtitlewidth + style.shotnumwidth + 3*style.buthsep,3*style.butheight + 4*style.butvsep,style.buthsep + 2*style.butwidth,style.butheight];
0145 lukeobj.exitluke.position = [style.shotnumtitlewidth + style.shotnumwidth + 3*style.buthsep,2*style.butheight + 3*style.butvsep,style.butwidth,style.butheight];
0146 lukeobj.newshot.position = [style.shotnumtitlewidth + style.shotnumwidth + 3*style.buthsep,style.butheight + 2*style.butvsep,style.butwidth,style.butheight];
0147 lukeobj.loadshot.position = [style.shotnumtitlewidth + style.shotnumwidth + style.butwidth + 4*style.buthsep,2*style.butheight + 3*style.butvsep,style.butwidth,style.butheight];
0148 lukeobj.saveshot.position = [style.shotnumtitlewidth + style.shotnumwidth + style.butwidth + 4*style.buthsep,style.butheight + 2*style.butvsep,style.butwidth,style.butheight];
0149 %
0150 style.simulfilewidth = style.panelwidth - style.shotnumtitlewidth - style.shotnumwidth - 8*style.buthsep - 2*style.butwidth;
0151 %
0152 lukeobj.lukeroottitle.position = [style.panelwidth - style.simulfilewidth - 2*style.buthsep,2*style.butheight + 3*style.butvsep + style.textheightcorr,style.simulfiletitlewidth,style.textheight];
0153 %lukeobj.workdirtitlestr.position = [style.panelwidth - style.simulfilewidth - 2*style.buthsep,style.butheight + 2*style.butvsep + style.textheightcorr,style.simulfiletitlewidth,style.textheight];
0154 lukeobj.workdirtitle.position = [style.panelwidth - style.simulfilewidth - 2*style.buthsep - style.workdirtitlecorr,style.butheight + 2*style.butvsep,style.simulfiletitlewidth + style.workdirtitlecorr,style.butheight];
0155 lukeobj.simulfiletitle.position = [style.shotnumtitlewidth + style.shotnumwidth + 3*style.buthsep,style.butvsep + style.textheightcorr,2*style.buthsep + 2*style.butwidth,style.textheight];
0156 %
0157 lukeobj.lukeroot.position = [style.panelwidth - style.simulfilewidth + style.simulfiletitlewidth - style.buthsep,2*style.butheight + 3*style.butvsep + style.textheightcorr,style.simulfilewidth - style.simulfiletitlewidth,style.textheight];
0158 lukeobj.workdir.position = [style.panelwidth - style.simulfilewidth + style.simulfiletitlewidth - style.buthsep,style.butheight + 2*style.butvsep + style.textheightcorr,style.simulfilewidth - style.simulfiletitlewidth,style.textheight];
0159 lukeobj.simulfile.position = [style.panelwidth - style.simulfilewidth - 2*style.buthsep,style.butvsep + style.textheightcorr,style.simulfilewidth + style.buthsep,style.textheight];
0160 %
0161 lukeobj.titlestr.position = [(style.panelwidth - style.titlestrwidth)/2,3*style.butheight + 4*style.butvsep,style.titlestrwidth,style.titlestrheight];
0162 lukeobj.redmine.position = [style.panelwidth - style.buthsep - 2*style.butwidth,style.titleheight - style.butheight - style.butvsep,2*style.butwidth,style.butheight];
0163 lukeobj.help.position = [style.panelwidth - style.buthsep - style.longbutwidth,style.titleheight - 2*style.butheight - 2*style.butvsep,style.longbutwidth,style.butheight];
0164 %
0165 % LUKE RUN PANEL DIMENSIONS
0166 %
0167 lukeobj.runluke.position = [style.buthsep,style.infoheightcorr - 6*style.butheightcorr,2*style.titlewidth,2*style.butheight];
0168 lukeobj.lukeidtitle.position = [2*style.titlewidth + 2*style.buthsep,style.infoheightcorr - 6*style.butheightcorr + style.butvsep + style.textheightcorr,style.titlewidth,style.butheight];
0169 lukeobj.lukeid.position = [3*style.titlewidth + 3*style.buthsep,style.infoheightcorr - 6*style.butheightcorr + style.butvsep,style.panelwidth - 3*style.titlewidth - 4*style.buthsep,style.butheight];
0170 lukeobj.runcheck.position = [style.buthsep,style.infoheightcorr - 8*style.butheightcorr,2*style.titlewidth,2*style.butheight];
0171 lukeobj.lukechecktext.position = [2*style.titlewidth + 2*style.buthsep,style.infoheightcorr - 8*style.butheightcorr + style.butvsep + style.textheightcorr,style.panelwidth - 2*style.titlewidth - 3*style.buthsep,style.butheight];
0172 
0173 %
0174 % title column
0175 %
0176 
0177 lukeobj.graph1sel.string = {''};
0178 lukeobj.graph2sel.string = {''};
0179 lukeobj.graph3sel.string = {''};
0180 
0181 lukeobj.graph1save.string = 'Save';
0182 lukeobj.graph2save.string = 'Save';
0183 lukeobj.graph3save.string = 'Save';
0184 
0185 lukeobj.graph1print.string = 'Print';
0186 lukeobj.graph2print.string = 'Print';
0187 lukeobj.graph3print.string = 'Print';
0188 
0189 lukeobj.lukevertitle.string = 'LUKE VERSION : ';
0190 lukeobj.tokamaktitle.string = 'TOKAMAK      : ';
0191 lukeobj.shotnumtitle.string = 'SHOT NUMBER  : ';
0192 lukeobj.shotimetitle.string = 'SHOT TIME(S) : ';
0193 
0194 lukeobj.lukever.string = LUKEversion_jd;
0195 lukeobj.shotimes.string = {'< all >'};
0196 
0197 lukeobj.lukeroottitle.string =   'LUKE SOURCE : ';
0198 %lukeobj.workdirtitlestr.string = '            : ';
0199 lukeobj.workdirtitle.string =    'WORKING DIR : ';
0200 
0201 lukeobj.simulfiletitle.string = 'SIMULATION FILE : ';
0202 
0203 lukeobj.lukeroot.string = dkepath.luke_root;
0204 
0205 lukeobj.titlestr.string = {'SUMMARY'};
0206 lukeobj.help.string = 'LUKE HELP';
0207 lukeobj.redmine.string = 'BUG TRACKING';
0208 
0209 lukeobj.import.string = 'METIS/CRONOS';
0210 lukeobj.exitluke.string = 'Exit';
0211 lukeobj.newshot.string = 'New';
0212 lukeobj.loadshot.string = 'Load';
0213 lukeobj.saveshot.string = 'Save';
0214 
0215 lukeobj.controlstr.string = {'CONTROLS'};
0216 lukeobj.busy.string = {'BUSY'};
0217 lukeobj.cleargraphs.string = {'CLEAR GRAPHS'};
0218 
0219 lukeobj.runluke.string = 'LUKE START';
0220 lukeobj.lukeidtitle.string = 'Run ID';
0221 lukeobj.lukeid.string = '';
0222 lukeobj.runcheck.string = 'CHECK RUN';
0223 
0224 lukeobj.runc3po.string = 'START CURRENT';
0225 lukeobj.runc3poall.string = 'START ALL';
0226 lukeobj.runc3pooptim.string = 'OPTIMIZE';
0227 lukeobj.wsparamtitle.string = 'Distributed computing mode for C3PO';
0228 lukeobj.wsparam.string = '0';
0229 
0230 % lukeobj.shotdist.title.string = 'Distributed computing mode for shot times';
0231 % lukeobj.wavedist.title.string = 'Distributed computing mode for beams';
0232 % lukeobj.raydist.title.string = 'Distributed computing mode for rays';
0233 
0234 lukeobj.graph1save.state = 'on';
0235 lukeobj.graph2save.state = 'on';
0236 lukeobj.graph3save.state = 'on';
0237 
0238 lukeobj.graph1print.state = 'on';
0239 lukeobj.graph2print.state = 'on';
0240 lukeobj.graph3print.state = 'on';
0241 
0242 lukeobj.exitluke.state = 'on';
0243 lukeobj.newshot.state = 'on';
0244 lukeobj.loadshot.state = 'on';
0245 lukeobj.saveshot.state = 'on';
0246 
0247 %lukeobj.shotimes.callback = 'curtime = get(lukeobj.shotimes.handle,''Value'') - 2;lukeobj = iluke_info(lukeobj,''text'');iluke_update;';
0248 lukeobj.shotimes.callback = 'curtime = get(lukeobj.shotimes.handle,''Value'') - 2;iluke_update;';
0249 lukeobj.import.callback = 'action = ''import'';iluke_callbacks;';
0250 lukeobj.exitluke.callback = 'close(lukeobj.mainfig.handle)';
0251 lukeobj.newshot.callback = 'status.external = 0;status.equil(:) = -1;action = ''cleargraphs'';iluke_callbacks;';
0252 lukeobj.loadshot.callback = 'action = ''loadshot'';iluke_callbacks;';
0253 lukeobj.saveshot.callback = 'action = ''saveshot'';iluke_callbacks;';
0254 lukeobj.workdirtitle.callback = 'action = ''workdir'';iluke_callbacks;';
0255 lukeobj.help.callback = 'action = ''help'';iluke_callbacks;';
0256 lukeobj.redmine.callback = 'action = ''redmine'';iluke_callbacks;';
0257 
0258 lukeobj.cleargraphs.callback = 'action = ''cleargraphs'';iluke_callbacks;';
0259 
0260 lukeobj.graph1sel.callback = 'lukeobj.plot1.gindex(2+curtime) = get(lukeobj.graph1sel.handle,''Value'') - 1;iluke_update;';
0261 lukeobj.graph2sel.callback = 'lukeobj.plot2.gindex(2+curtime) = get(lukeobj.graph2sel.handle,''Value'') - 1;iluke_update;';
0262 lukeobj.graph3sel.callback = 'lukeobj.plot3.gindex(2+curtime) = get(lukeobj.graph3sel.handle,''Value'') - 1;iluke_update;';
0263 
0264 lukeobj.graph1save.callback = 'igraph = ''1'';action = ''savegraphs'';iluke_callbacks;';
0265 lukeobj.graph2save.callback = 'igraph = ''2'';action = ''savegraphs'';iluke_callbacks;';
0266 lukeobj.graph3save.callback = 'igraph = ''3'';action = ''savegraphs'';iluke_callbacks;';
0267 
0268 lukeobj.graph1print.callback = 'iluke_print(0,'','',graphs(lukeobj.plot1.gindex).handles);';
0269 lukeobj.graph2print.callback = 'iluke_print(0,'','',graphs(lukeobj.plot2.gindex).handles);';
0270 lukeobj.graph3print.callback = 'iluke_print(0,'','',graphs(lukeobj.plot3.gindex).handles);';
0271 
0272 lukeobj.runluke.callback = 'action = ''lukestart'';iluke_callbacks;';
0273 lukeobj.lukeid.callback = 'lukeobj.lukeid.string = get(lukeobj.lukeid.handle,''String'');iluke_update;';
0274 lukeobj.runcheck.callback = 'action = ''runcheck'';iluke_callbacks;';
0275 
0276 lukeobj.runc3po.callback = 'iw = lukeobj.wavestruct.select.value;action = ''c3postart'';iluke_callbacks;clear iw;';
0277 lukeobj.runc3poall.callback = 'iw = 1:length(lukeobj.wavestruct.select.string);action = ''c3postart'';iluke_callbacks;clear iw;';
0278 lukeobj.runc3pooptim.callback = 'action = ''c3pooptim'';iluke_callbacks;';
0279 lukeobj.wsparam.callback = 'lukeobj.wsparam.string = get(lukeobj.wsparam.handle,''String'');iluke_update;';
0280 
0281 %
0282 % CREATE GUI
0283 %
0284 
0285 lukeobj.mainfig.handle = figure('name','iLUKE','visible','on','menubar','none','numbertitle','off','resize','off','position',lukeobj.mainfig.position,'toolbar','none','units','pixels');
0286 
0287 %  Initialization tasks
0288 
0289 lukeobj.titlepanel.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.titlepanel.position);
0290 lukeobj.controlpanel.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.controlpanel.position);
0291 lukeobj.infopanel.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.infopanel.position);
0292 
0293 lukeobj.plot1.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.plot1.position);
0294 lukeobj.plot2.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.plot2.position);
0295 lukeobj.plot3.handle = uipanel('Parent',lukeobj.mainfig.handle,'Title','','units','pixels','Position',lukeobj.plot3.position);
0296 
0297 lukeobj.graph1sel.handle = uicontrol(lukeobj.plot1.handle,'Style','popupmenu','String',lukeobj.graph1sel.string,'Position',lukeobj.graph1sel.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph1sel.callback);
0298 lukeobj.graph2sel.handle = uicontrol(lukeobj.plot2.handle,'Style','popupmenu','String',lukeobj.graph2sel.string,'Position',lukeobj.graph2sel.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph2sel.callback);
0299 lukeobj.graph3sel.handle = uicontrol(lukeobj.plot3.handle,'Style','popupmenu','String',lukeobj.graph3sel.string,'Position',lukeobj.graph3sel.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph3sel.callback);
0300 
0301 lukeobj.graph1save.handle = uicontrol(lukeobj.plot1.handle,'Style','pushbutton','String',lukeobj.graph1save.string,'Position',lukeobj.graph1save.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph1save.callback);
0302 lukeobj.graph2save.handle = uicontrol(lukeobj.plot2.handle,'Style','pushbutton','String',lukeobj.graph2save.string,'Position',lukeobj.graph2save.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph2save.callback);
0303 lukeobj.graph3save.handle = uicontrol(lukeobj.plot3.handle,'Style','pushbutton','String',lukeobj.graph3save.string,'Position',lukeobj.graph3save.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph3save.callback);
0304 
0305 lukeobj.graph1print.handle = uicontrol(lukeobj.plot1.handle,'Style','pushbutton','String',lukeobj.graph1print.string,'Position',lukeobj.graph1print.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph1print.callback);
0306 lukeobj.graph2print.handle = uicontrol(lukeobj.plot2.handle,'Style','pushbutton','String',lukeobj.graph2print.string,'Position',lukeobj.graph2print.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph2print.callback);
0307 lukeobj.graph3print.handle = uicontrol(lukeobj.plot3.handle,'Style','pushbutton','String',lukeobj.graph3print.string,'Position',lukeobj.graph3print.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.graph3print.callback);
0308 
0309 lukeobj.tokamaktitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.tokamaktitle.string,'Position',lukeobj.tokamaktitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0310 lukeobj.shotnumtitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.shotnumtitle.string,'Position',lukeobj.shotnumtitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0311 lukeobj.shotimetitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.shotimetitle.string,'Position',lukeobj.shotimetitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0312 
0313 lukeobj.tokamak.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','Position',lukeobj.tokamak.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0314 lukeobj.shotnum.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','Position',lukeobj.shotnum.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0315 lukeobj.shotimes.handle = uicontrol(lukeobj.titlepanel.handle,'Style','popupmenu','String',lukeobj.shotimes.string,'Position',lukeobj.shotimes.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left','Callback',lukeobj.shotimes.callback);
0316 
0317 lukeobj.lukeroot.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.lukeroot.string,'Position',lukeobj.lukeroot.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0318 lukeobj.lukever.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.lukever.string,'Position',lukeobj.lukever.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0319 lukeobj.workdir.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','Position',lukeobj.workdir.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0320 lukeobj.simulfile.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','Position',lukeobj.simulfile.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0321 
0322 lukeobj.lukeroottitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.lukeroottitle.string,'Position',lukeobj.lukeroottitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0323 %lukeobj.workdirtitlestr.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.workdirtitlestr.string,'Position',lukeobj.workdirtitlestr.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0324 lukeobj.lukevertitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.lukevertitle.string,'Position',lukeobj.lukevertitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0325 lukeobj.simulfiletitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.simulfiletitle.string,'Position',lukeobj.simulfiletitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0326 
0327 lukeobj.titlestr.handle = uicontrol(lukeobj.titlepanel.handle,'Style','text','String',lukeobj.titlestr.string,'Position',lukeobj.titlestr.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'HorizontalAlignment','center');
0328 lukeobj.help.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.help.string,'Position',lukeobj.help.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.help.callback);
0329 lukeobj.redmine.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.redmine.string,'Position',lukeobj.redmine.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.redmine.callback);
0330 
0331 lukeobj.import.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.import.string,'Position',lukeobj.import.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.import.callback);
0332 lukeobj.exitluke.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.exitluke.string,'Position',lukeobj.exitluke.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.exitluke.callback);
0333 lukeobj.newshot.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.newshot.string,'Position',lukeobj.newshot.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.newshot.callback);
0334 lukeobj.loadshot.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.loadshot.string,'Position',lukeobj.loadshot.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.loadshot.callback);
0335 lukeobj.saveshot.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.saveshot.string,'Position',lukeobj.saveshot.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.saveshot.callback);
0336 lukeobj.workdirtitle.handle = uicontrol(lukeobj.titlepanel.handle,'Style','pushbutton','String',lukeobj.workdirtitle.string,'Position',lukeobj.workdirtitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left','Callback',lukeobj.workdirtitle.callback);
0337 
0338 %
0339 lukeobj.controlstr.handle = uicontrol(lukeobj.controlpanel.handle,'Style','text','String',lukeobj.controlstr.string,'Position',lukeobj.controlstr.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'HorizontalAlignment','center');
0340 lukeobj.busy.handle = uicontrol(lukeobj.controlpanel.handle,'Style','text','String',lukeobj.busy.string,'Position',lukeobj.busy.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'FontWeight','bold','ForegroundColor',[1 0 0],'HorizontalAlignment','center','Visible','off');
0341 lukeobj.cleargraphs.handle = uicontrol(lukeobj.controlpanel.handle,'Style','pushbutton','String',lukeobj.cleargraphs.string,'Position',lukeobj.cleargraphs.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.cleargraphs.callback);
0342 
0343 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'data',{'title','import','load','save','clear','disp','text'},'Exp. Data',style.controlheightcorr - style.butheightcorr + style.controlheightadapt,style);
0344 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'equil',{'title','make','load','save','clear','disp','text'},'Equilibrium',style.controlheightcorr - 2*style.butheightcorr + style.controlheightadapt,style);
0345 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'ohm',{'title','make','load','save','clear','disp','text'},'Ohmic Field',style.controlheightcorr - 3*style.butheightcorr + style.controlheightadapt,style);
0346 % lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'transp',{'title','make','load','save','clear','disp','text'},'Transport',style.controlheightcorr - 4*style.butheightcorr + style.controlheightadapt,style);
0347 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'transp',{'title','modify','load','save','reset','disp','text'},'Transport',style.controlheightcorr - 4*style.butheightcorr + style.controlheightadapt,style);
0348 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'ripple',{'title','make','load','save','clear','disp','text'},'Mag. Ripple',style.controlheightcorr - 5*style.butheightcorr + style.controlheightadapt,style);
0349 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'wave',{'title','make','load','save','clear','disp','text'},'RF Waves',style.controlheightcorr - 6*style.butheightcorr + style.controlheightadapt,style);
0350 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'fluct',{'title','modify','load','save','reset','clear','text'},'Fluctuations',style.controlheightcorr - 7*style.butheightcorr + style.controlheightadapt,style);
0351 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'luke',{'title','','run','export','clear','disp','text'},'Kinetic Solver',style.controlheightcorr - 8*style.butheightcorr + style.controlheightadapt,style);
0352 lukeobj = iluke_controls(lukeobj.controlpanel.handle,lukeobj,'sdiag',{'title','','','FEB','ECE'},'Synthetic Diagnostics',style.controlheightcorr - 9*style.butheightcorr + style.controlheightadapt,style);
0353 
0354 lukeobj.infotext.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','Position',lukeobj.infotext.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0355 lukeobj.infostr.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','Position',lukeobj.infostr.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'HorizontalAlignment','center');
0356 
0357 %
0358 % RUN LUKE PANEL
0359 %
0360 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'param',{'title','modify','load','save','reset','','text'},'Parameters',style.infoheightcorr - style.butheightcorr,style);
0361 % lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'display',{'title','modify','load','save','clear','','text'},'Display',style.infoheightcorr - 2*style.butheightcorr,style);
0362 % lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'remote',{'title','make','load','save','test','',''},'Server',style.infoheightcorr - 3*style.butheightcorr,style);
0363 % lukeobj.remote.select.position = [style.titlewidth + 6*style.buthsep + 4*style.butwidth,style.infoheightcorr - 3*style.butheightcorr,style.panelwidth - style.titlewidth - 7*style.buthsep - 4*style.butwidth,style.butheight];
0364 
0365 lukeobj.timedep.position = [style.buthsep,style.infoheightcorr - 2*style.butheightcorr,(style.panelwidth - 4*style.buthsep)/2,style.textheight];
0366 lukeobj.remote.title.position = [style.buthsep,style.infoheightcorr - 3*style.butheightcorr + style.textheightcorr,style.disttitlewidth,style.textheight];
0367 lukeobj.remote.select.position = [style.disttitlewidth + 2*style.buthsep,style.infoheightcorr - 3*style.butheightcorr,style.panelwidth - style.disttitlewidth - 3*style.buthsep,style.butheight];
0368 lukeobj.timeout.position = [style.buthsep + style.panelwidth/2,style.infoheightcorr - 2*style.butheightcorr,(style.panelwidth - 4*style.buthsep)/2,style.butheight];
0369 lukeobj.dist.title.position = lukeobj.remote.title.position - [0,style.butheightcorr,0,0];
0370 lukeobj.dist.select.position = lukeobj.remote.select.position - [0,style.butheightcorr,0,0];
0371 
0372 lukeobj.timedep.callback = 'lukeobj.timedep.value = get(lukeobj.timedep.handle,''Value'');iluke_update;';
0373 lukeobj.remote.select.callback = 'lukeobj.remote.select.value = get(lukeobj.remote.select.handle,''Value'');iluke_update;';
0374 lukeobj.timeout.callback = 'lukeobj.timeout.value = get(lukeobj.timeout.handle,''Value'');iluke_update;';
0375 lukeobj.dist.select.callback = 'lukeobj.dist.select.value = get(lukeobj.dist.select.handle,''Value'');iluke_update;';
0376 
0377 lukeobj.timedep.string = ' Independent LUKE times';
0378 lukeobj.remote.title.string = 'Server for LUKE calculation';
0379 lukeobj.remote.select.string = dkepath.remprofiles;% used for single time or time dependent calculations
0380 lukeobj.timeout.string = ' Submit job then return to iluke';
0381 lukeobj.dist.title.string = 'Distribution of LUKE calculations';
0382 lukeobj.dist.select.string = {'Sequential','Matlab jobs','Matlab parfor','Batch jobs'};% used for independent multi time calculations
0383 
0384 lukeobj.timedep.handle = uicontrol(lukeobj.infopanel.handle,'Style','checkbox','Position',lukeobj.timedep.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.timedep.callback);
0385 lukeobj.remote.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.remote.title.string,'Position',lukeobj.remote.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0386 lukeobj.remote.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','String',lukeobj.remote.select.string,'Position',lukeobj.remote.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.remote.select.callback);
0387 lukeobj.timeout.handle = uicontrol(lukeobj.infopanel.handle,'Style','checkbox','Position',lukeobj.timeout.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.timeout.callback);
0388 lukeobj.dist.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.dist.title.string,'Position',lukeobj.dist.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0389 lukeobj.dist.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','String',lukeobj.dist.select.string,'Position',lukeobj.dist.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.dist.select.callback);
0390 lukeobj.runluke.handle = uicontrol(lukeobj.infopanel.handle,'Style','pushbutton','String',lukeobj.runluke.string,'Position',lukeobj.runluke.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'Callback',lukeobj.runluke.callback);
0391 lukeobj.lukeidtitle.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.lukeidtitle.string,'Position',lukeobj.lukeidtitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0392 lukeobj.lukeid.handle = uicontrol(lukeobj.infopanel.handle,'Style','edit','Position',lukeobj.lukeid.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.lukeid.callback);
0393 lukeobj.runcheck.handle = uicontrol(lukeobj.infopanel.handle,'Style','pushbutton','String',lukeobj.runcheck.string,'Position',lukeobj.runcheck.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'Callback',lukeobj.runcheck.callback);
0394 lukeobj.lukechecktext.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','Position',lukeobj.lukechecktext.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0395 
0396 lukeobj.timedep.value = 1;
0397 lukeobj.remote.select.value = 1;
0398 lukeobj.dist.select.value = 1;
0399 lukeobj.timeout.value = 0;
0400 
0401 %
0402 % RUN C3PO PANEL
0403 %
0404 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'wavestruct',{'title','import','make','load','save','clear',''},'Structures',style.infoheightcorr - style.butheightcorr,style);
0405 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'angles',{'title','modify','load','save','reset','','text'},'EC Angles',style.infoheightcorr - 2*style.butheightcorr,style);
0406 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'spectrum',{'title','modify','load','save','reset','','text'},'LH Spectrum',style.infoheightcorr - 3*style.butheightcorr,style);
0407 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'launch',{'title','modify','load','save','reset','','text'},'Launch',style.infoheightcorr - 4*style.butheightcorr,style);
0408 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'c3poparam',{'title','modify','load','save','reset','','text'},'Parameters',style.infoheightcorr - 5*style.butheightcorr,style);
0409 
0410 set(lukeobj.angles.text.handle,'HorizontalAlignment','left');
0411 set(lukeobj.spectrum.text.handle,'HorizontalAlignment','left');
0412 set(lukeobj.launch.text.handle,'HorizontalAlignment','left');
0413 set(lukeobj.c3poparam.text.handle,'HorizontalAlignment','left');
0414 
0415 style.c3powidth = (style.panelwidth - 4*style.buthsep)/3;
0416 
0417 lukeobj.wavestruct.select.position = [style.titlewidth + 7*style.buthsep + 5*style.butwidth,style.infoheightcorr - style.butheightcorr,style.panelwidth - style.titlewidth - 8*style.buthsep - 5*style.butwidth,style.butheight];
0418 lukeobj.runc3po.position = [style.buthsep,style.infoheightcorr - 8*style.butheightcorr,style.c3powidth,2*style.butheight];
0419 lukeobj.runc3poall.position = [style.c3powidth + 2*style.buthsep,style.infoheightcorr - 8*style.butheightcorr,style.c3powidth,2*style.butheight];
0420 lukeobj.runc3pooptim.position = [2*style.c3powidth + 3*style.buthsep,style.infoheightcorr - 8*style.butheightcorr,style.c3powidth,2*style.butheight];
0421 lukeobj.wsparamtitle.position = [style.buthsep,style.infoheightcorr - 6*style.butheightcorr + style.textheightcorr,style.titlewidth + 4*(style.butwidth + style.buthsep),style.butheight];
0422 lukeobj.wsparam.position = [style.titlewidth + 4*style.butwidth + 6*style.buthsep,style.infoheightcorr - 6*style.butheightcorr,style.butwidth,style.butheight];
0423 
0424 % lukeobj.shotdist.title.position = [style.buthsep,style.infoheightcorr - 2*style.butheightcorr + style.textheightcorr,style.disttitlewidth,style.textheight];
0425 % lukeobj.shotdist.select.position = [style.disttitlewidth + 2*style.buthsep,style.infoheightcorr - 2*style.butheightcorr,style.panelwidth - style.disttitlewidth - 3*style.buthsep,style.butheight];
0426 % lukeobj.wavedist.title.position = [style.buthsep,style.infoheightcorr - 3*style.butheightcorr + style.textheightcorr,style.disttitlewidth,style.textheight];
0427 % lukeobj.wavedist.select.position = [style.disttitlewidth + 2*style.buthsep,style.infoheightcorr - 3*style.butheightcorr,style.panelwidth - style.disttitlewidth - 3*style.buthsep,style.butheight];
0428 % lukeobj.raydist.title.position = [style.buthsep,style.infoheightcorr - 4*style.butheightcorr + style.textheightcorr,style.disttitlewidth,style.textheight];
0429 % lukeobj.raydist.select.position = [style.disttitlewidth + 2*style.buthsep,style.infoheightcorr - 4*style.butheightcorr,style.panelwidth - style.disttitlewidth - 3*style.buthsep,style.butheight];
0430 
0431 % lukeobj.shotdist.title.position = [style.buthsep,style.infoheightcorr - 3*style.butheightcorr + style.textheightcorr,style.disttitlewidth,style.textheight];
0432 % lukeobj.shotdist.select.position = [style.disttitlewidth + 2*style.buthsep,style.infoheightcorr - 3*style.butheightcorr,style.panelwidth - style.disttitlewidth - 3*style.buthsep,style.butheight];
0433 
0434 lukeobj.wavestruct.select.value = 0;
0435 lukeobj.wavestruct.select.callback = 'lukeobj.wavestruct.select.value = get(lukeobj.wavestruct.select.handle,''Value'');iluke_update;';
0436 
0437 % lukeobj.shotdist.select.callback = 'lukeobj.shotdist.select.value = get(lukeobj.shotdist.select.handle,''Value'');iluke_update;';
0438 % lukeobj.wavedist.select.callback = 'lukeobj.wavedist.select.value = get(lukeobj.wavedist.select.handle,''Value'');iluke_update;';
0439 % lukeobj.raydist.select.callback = 'lukeobj.raydist.select.value = get(lukeobj.raydist.select.handle,''Value'');iluke_update;';
0440 
0441 % lukeobj.shotdist.select.string = dkepath.distprofiles;
0442 % lukeobj.wavedist.select.string = dkepath.distprofiles;
0443 % lukeobj.raydist.select.string = dkepath.distprofiles;
0444 
0445 lukeobj.wavestruct.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.wavestruct.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.wavestruct.select.callback);
0446 lukeobj.runc3po.handle = uicontrol(lukeobj.infopanel.handle,'Style','pushbutton','String',lukeobj.runc3po.string,'Position',lukeobj.runc3po.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'Callback',lukeobj.runc3po.callback);
0447 lukeobj.runc3poall.handle = uicontrol(lukeobj.infopanel.handle,'Style','pushbutton','String',lukeobj.runc3poall.string,'Position',lukeobj.runc3poall.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'Callback',lukeobj.runc3poall.callback);
0448 lukeobj.runc3pooptim.handle = uicontrol(lukeobj.infopanel.handle,'Style','pushbutton','String',lukeobj.runc3pooptim.string,'Position',lukeobj.runc3pooptim.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.titlefontsize,'Callback',lukeobj.runc3pooptim.callback);
0449 lukeobj.wsparamtitle.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.wsparamtitle.string,'Position',lukeobj.wsparamtitle.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0450 lukeobj.wsparam.handle = uicontrol(lukeobj.infopanel.handle,'Style','edit','String',lukeobj.wsparam.string,'Position',lukeobj.wsparam.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.wsparam.callback);
0451 
0452 % lukeobj.shotdist.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.shotdist.title.string,'Position',lukeobj.shotdist.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0453 % lukeobj.shotdist.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','String',lukeobj.shotdist.select.string,'Position',lukeobj.shotdist.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.shotdist.select.callback);
0454 % lukeobj.wavedist.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.wavedist.title.string,'Position',lukeobj.wavedist.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0455 % lukeobj.wavedist.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','String',lukeobj.wavedist.select.string,'Position',lukeobj.wavedist.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.wavedist.select.callback);
0456 % lukeobj.raydist.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.raydist.title.string,'Position',lukeobj.raydist.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0457 % lukeobj.raydist.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','String',lukeobj.raydist.select.string,'Position',lukeobj.raydist.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.raydist.select.callback);
0458 
0459 %
0460 % RUN R5X2 PANEL
0461 %
0462 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'hxrcam',{'title','import','load','save','clear','disp',''},'HXR cameras',style.infoheightcorr - style.butheightcorr,style);
0463 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'hxrexp',{'title','import','load','save','clear','disp','text'},'HXR exp. data',style.infoheightcorr - 2*style.butheightcorr,style);
0464 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'hxrparam',{'title','modify','load','save','clear',''},'FEB params',style.infoheightcorr - 5*style.butheightcorr,style);
0465 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'hxrbrem',{'title','','','run','clear','disp','text'},'FEB emissivity',style.infoheightcorr - 6*style.butheightcorr,style);
0466 lukeobj = iluke_controls(lukeobj.infopanel.handle,lukeobj,'hxrdiag',{'title','','','run','clear','disp','text'},'FEB diagnostic',style.infoheightcorr - 7*style.butheightcorr,style);
0467 
0468 
0469 lukeobj.hxrcam.select.position = [style.titlewidth + 7*style.buthsep + 5*style.butwidth,style.infoheightcorr - style.butheightcorr,style.panelwidth - style.titlewidth - 8*style.buthsep - 5*style.butwidth,style.butheight];
0470 lukeobj.hxrcam.select.string = {'all cameras'};
0471 lukeobj.hxrcam.select.value = 1;
0472 lukeobj.hxrcam.select.callback = 'lukeobj.hxrcam.select.value = get(lukeobj.hxrcam.select.handle,''Value'');iluke_update;';
0473 
0474 lukeobj.hxrcam.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrcam.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrcam.select.callback);
0475 
0476 
0477 lukeobj.hxrrange1.title.position = [style.buthsep,style.infoheightcorr - 4*style.butheightcorr + style.textheightcorr,style.shotnumtitlewidth,style.textheight];
0478 lukeobj.hxrrange1.title.string = 'Tph kmin (keV)';
0479 lukeobj.hxrrange1.edit.position = [2*style.buthsep + style.shotnumtitlewidth,style.infoheightcorr - 4*style.butheightcorr,style.butwidth,style.butheight];
0480 lukeobj.hxrrange1.edit.callback = 'hxr.param.kmin = str2double(get(lukeobj.hxrrange1.edit.handle,''String''));iluke_update;';
0481 
0482 lukeobj.hxrrange1.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrrange1.title.string,'Position',lukeobj.hxrrange1.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0483 lukeobj.hxrrange1.edit.handle = uicontrol(lukeobj.infopanel.handle,'Style','edit','Position',lukeobj.hxrrange1.edit.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrrange1.edit.callback);
0484 
0485 lukeobj.hxrrange2.title.position = [style.titlewidth + 5*style.buthsep + 4*style.butwidth - style.shotnumtitlewidth,style.infoheightcorr - 4*style.butheightcorr + style.textheightcorr,style.shotnumtitlewidth,style.textheight];
0486 lukeobj.hxrrange2.title.string = 'Tph kmax (keV)';
0487 lukeobj.hxrrange2.edit.position = [style.titlewidth + 6*style.buthsep + 4*style.butwidth,style.infoheightcorr - 4*style.butheightcorr,style.butwidth,style.butheight];
0488 lukeobj.hxrrange2.edit.callback = 'hxr.param.kmax = str2double(get(lukeobj.hxrrange2.edit.handle,''String''));iluke_update;';
0489 
0490 lukeobj.hxrrange2.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrrange2.title.string,'Position',lukeobj.hxrrange2.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0491 lukeobj.hxrrange2.edit.handle = uicontrol(lukeobj.infopanel.handle,'Style','edit','Position',lukeobj.hxrrange2.edit.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrrange2.edit.callback);
0492 
0493 
0494 lukeobj.hxrchord.title.position = [style.panelwidth - 2*style.buthsep - 3*style.butwidth - style.longbutwidth,style.infoheightcorr - 2*style.butheightcorr + style.textheightcorr,2*style.butwidth,style.textheight];
0495 lukeobj.hxrchord.title.string = 'Chord number';
0496 lukeobj.hxrchord.select.position = [style.panelwidth - style.buthsep - style.butwidth - style.longbutwidth,style.infoheightcorr - 2*style.butheightcorr,style.butwidth + style.longbutwidth,style.butheight];
0497 lukeobj.hxrchord.select.string = {'all chords'};
0498 lukeobj.hxrchord.select.value = 1;
0499 lukeobj.hxrchord.select.callback = 'hxr.cam{lukeobj.hxrcam.select.value - 1}.selectedchord = get(lukeobj.hxrchord.select.handle,''Value'') - 1;iluke_update;';
0500 
0501 lukeobj.hxrchord.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrchord.title.string,'Position',lukeobj.hxrchord.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0502 lukeobj.hxrchord.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrchord.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrchord.select.callback);
0503 
0504 
0505 lukeobj.hxrbin.title.position = [style.panelwidth - 2*style.buthsep - 3*style.butwidth - style.longbutwidth,style.infoheightcorr - 3*style.butheightcorr + style.textheightcorr,style.longbutwidth,style.textheight];
0506 lukeobj.hxrbin.title.string = 'Energy bin';
0507 lukeobj.hxrbin.select.position = [style.panelwidth - style.buthsep - 3*style.butwidth,style.infoheightcorr - 3*style.butheightcorr,3*style.butwidth,style.butheight];
0508 lukeobj.hxrbin.select.string = {'all energies'};
0509 lukeobj.hxrbin.select.value = 1;
0510 lukeobj.hxrbin.select.callback = 'lukeobj.hxrbin.select.value = get(lukeobj.hxrbin.select.handle,''Value'');iluke_update;';
0511 
0512 lukeobj.hxrbin.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrbin.title.string,'Position',lukeobj.hxrbin.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0513 lukeobj.hxrbin.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrbin.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrbin.select.callback);
0514 
0515 
0516 lukeobj.hxrrho.title.position = [style.panelwidth - 5*style.buthsep - 2*style.butwidth - style.longbutwidth - style.shortbutwidth,style.infoheightcorr - 4*style.butheightcorr + style.textheightcorr,style.shortbutwidth,style.textheight];
0517 lukeobj.hxrrho.title.string = 'r/a';
0518 lukeobj.hxrrho.select.position = [style.panelwidth - 4*style.buthsep - 2*style.butwidth - style.longbutwidth,style.infoheightcorr - 4*style.butheightcorr,style.butwidth,style.butheight];
0519 lukeobj.hxrrho.select.string = {'all'};
0520 lukeobj.hxrrho.select.value = 1;
0521 lukeobj.hxrrho.select.callback = 'lukeobj.hxrrho.select.value = get(lukeobj.hxrrho.select.handle,''Value'');iluke_update;';
0522 
0523 lukeobj.hxrrho.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrrho.title.string,'Position',lukeobj.hxrrho.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0524 lukeobj.hxrrho.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrrho.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrrho.select.callback);
0525 
0526 
0527 lukeobj.hxrtheta.title.position = [style.panelwidth - 2*style.buthsep - style.butwidth - style.longbutwidth,style.infoheightcorr - 4*style.butheightcorr + style.textheightcorr,style.butwidth,style.textheight];
0528 lukeobj.hxrtheta.title.string = 'theta';
0529 lukeobj.hxrtheta.select.position = [style.panelwidth - style.buthsep - style.longbutwidth,style.infoheightcorr - 4*style.butheightcorr,style.longbutwidth,style.butheight];
0530 lukeobj.hxrtheta.select.string = {'all'};
0531 lukeobj.hxrtheta.select.value = 1;
0532 lukeobj.hxrtheta.select.callback = 'lukeobj.hxrtheta.select.value = get(lukeobj.hxrtheta.select.handle,''Value'');iluke_update;';
0533 
0534 lukeobj.hxrtheta.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrtheta.title.string,'Position',lukeobj.hxrtheta.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0535 lukeobj.hxrtheta.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrtheta.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrtheta.select.callback);
0536 
0537 
0538 lukeobj.hxrdir.title.position = [style.panelwidth - 2*style.buthsep - 3*style.butwidth - style.longbutwidth,style.infoheightcorr - 5*style.butheightcorr + style.textheightcorr,style.longbutwidth,style.textheight];
0539 lukeobj.hxrdir.title.string = 'Direction';
0540 lukeobj.hxrdir.select.position = [style.panelwidth - style.buthsep - 3*style.butwidth,style.infoheightcorr - 5*style.butheightcorr,3*style.butwidth,style.butheight];
0541 lukeobj.hxrdir.select.string = {'compare directions','forward','backward','perpendicular','average'};
0542 lukeobj.hxrdir.select.value = 1;
0543 lukeobj.hxrdir.select.callback = 'lukeobj.hxrdir.select.value = get(lukeobj.hxrdir.select.handle,''Value'');iluke_update;';
0544 
0545 lukeobj.hxrdir.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrdir.title.string,'Position',lukeobj.hxrdir.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0546 lukeobj.hxrdir.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrdir.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrdir.select.callback);
0547 
0548 
0549 lukeobj.hxrkphot.title.position = [style.panelwidth - 2*style.buthsep - 3*style.butwidth - style.longbutwidth,style.infoheightcorr - 6*style.butheightcorr + style.textheightcorr,2*style.butwidth,style.textheight];
0550 lukeobj.hxrkphot.title.string = 'Photon energy';
0551 lukeobj.hxrkphot.select.position = [style.panelwidth - style.buthsep - style.butwidth - style.longbutwidth,style.infoheightcorr - 6*style.butheightcorr,style.butwidth + style.longbutwidth,style.butheight];
0552 lukeobj.hxrkphot.select.string = {'all energies'};
0553 lukeobj.hxrkphot.select.value = 1;
0554 lukeobj.hxrkphot.select.callback = 'lukeobj.hxrkphot.select.value = get(lukeobj.hxrkphot.select.handle,''Value'');iluke_update;';
0555 
0556 lukeobj.hxrkphot.title.handle = uicontrol(lukeobj.infopanel.handle,'Style','text','String',lukeobj.hxrkphot.title.string,'Position',lukeobj.hxrkphot.title.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'HorizontalAlignment','left');
0557 lukeobj.hxrkphot.select.handle = uicontrol(lukeobj.infopanel.handle,'Style','popupmenu','Position',lukeobj.hxrkphot.select.position,'FontName',style.fontname,'FontUnits','pixels','FontSize',style.fontsize,'Callback',lukeobj.hxrkphot.select.callback);
0558 
0559 %
0560 % INITIALIZE PARAMETERS
0561 %
0562 
0563 lukeobj.runcheck.highlight = true;
0564 
0565 lukeobj = iluke_info(lukeobj,'startup');% info display
0566 
0567 tokamak = '';
0568 shotnum = '';
0569 shotimes = zeros(1,0);
0570 
0571 %
0572 % graphs
0573 %
0574 iluke_initgraphs
0575 
0576 %
0577 % data structures
0578 %
0579 
0580 external = [];
0581 equils = cell(1,0);
0582 ohms = cell(1,0);
0583 transpfastes = cell(1,0);
0584 ripples = cell(1,0);
0585 wavess = cell(1,0);
0586 fluctparams = cell(1,0);
0587 wavestructss = cell(0,0);
0588 dkeparams = cell(1,0);
0589 
0590 wavestructids = cell(0,1);
0591 
0592 %
0593 jobs = cell(1,0);
0594 outputs = cell(1,0);
0595 sdiags = cell(2,0);% sdiags has the dimension of the number of synthetic diagnostics by time steps
0596 
0597 curtime = -1;% current time of work : (-1) new, (0) all, or index in shotimes
0598 
0599 status.external = 0;
0600 status.equil = zeros(1,0);
0601 status.ohm = zeros(1,0);
0602 status.transpfaste = zeros(1,0);
0603 status.ripple = zeros(1,0);
0604 status.waves = zeros(1,0);
0605 status.fluct = zeros(1,0);
0606 status.wavestructs = zeros(0,0);
0607 status.job = zeros(1,0);
0608 status.output = zeros(1,0);
0609 status.sdiag = zeros(2,0);
0610 
0611 
0612 style.distselectstyle = style;% for dist profile selection
0613 %
0614 style.distselectstyle.butwidth = 400;
0615 style.distselectstyle.textwidth = style.panelwidth - style.distselectstyle.butwidth - 3*style.distselectstyle.buthsep - 2*style.buthsep;%200;%
0616 
0617 style.editselectstyle = style;% for edition within GUI
0618 %
0619 style.editselectstyle.longbutwidth = 200;
0620 style.editselectstyle.textwidth = style.panelwidth - style.editselectstyle.butwidth - style.editselectstyle.longbutwidth - 4*style.editselectstyle.buthsep - 2*style.buthsep;
0621 
0622 style.buttonselectstyle = style;% for edition within GUI
0623 %
0624 style.buttonselectstyle.textwidth = style.panelwidth - style.editselectstyle.butwidth - 4*style.editselectstyle.buthsep;
0625 
0626 iluke_update;

Community support and wiki are available on Redmine. Last update: 18-Apr-2019.