Home > Codi > menu.m

menu

PURPOSE ^

Funció per incrustar el menu a la finestra de la qual ens passen el

SYNOPSIS ^

function handles=menu(handles)

DESCRIPTION ^

Funció per incrustar el menu a la finestra de la qual ens passen el
handles. o bé si ja hi ha el menú actualitzar-lo segons els objectes que
tinguem presents al workspace.

handles - Es l'estructura on matlab guarda totes les dades relatives a una
interfice previament creada. un cop incrustat el menu retornarem el
handles perque pugui ser actualitzat.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function handles=menu(handles)
0002 %Funció per incrustar el menu a la finestra de la qual ens passen el
0003 %handles. o bé si ja hi ha el menú actualitzar-lo segons els objectes que
0004 %tinguem presents al workspace.
0005 %
0006 %handles - Es l'estructura on matlab guarda totes les dades relatives a una
0007 %interfice previament creada. un cop incrustat el menu retornarem el
0008 %handles perque pugui ser actualitzat.
0009 %
0010 
0011 if not(isfield(handles,'hemexecutat')) %comprobem si ja ha estat creat
0012     handles.hemexecutat=1;
0013     
0014     %%Pestanya d'accions basiques
0015     f0 = uimenu(gcf,'Label','Main');
0016     uimenu(f0,'Label','Main Window','Callback','Pantalla_Principal');
0017     uimenu(f0,'Label','Close','Callback','close all');
0018     handles.menu.f0=f0;
0019     
0020     
0021     %%Pestanya principal DATA
0022     f1 = uimenu(gcf,'Label','DATA');
0023     handles.menu.f1=f1;
0024     %subpestanya Crear DATA
0025     f11 = uimenu(f1,'Label','Create');
0026     uimenu(f11,'Label','Load DATA from file','Callback','uiwait(Menu_Load_Dades);');
0027     uimenu(f11,'Label','Load DATA from workspace','Callback','uiwait(Menu_Crear_Dades);');
0028     
0029     handles.menu.f11=f11;
0030     %subpestanya Guardar DATA
0031     f111 = uimenu(f1,'Label','Save');
0032     uimenu(f111,'Label','Save DATA','Callback','Menu_Save_Dades');
0033    
0034     handles.menu.f111=f111;
0035     %subpestanya modificar DATA
0036     f12 = uimenu(f1,'Label','Edit');
0037     uimenu(f12,'Label','Edit an object','Callback','Menu_Editar_Dades2');
0038     uimenu(f12,'Label','Move Batch between objects','Callback','Menu_Canvia_Lots');
0039     handles.menu.f12=f12;
0040     %subpestanya Visualitzar DATA
0041    % Ja no el menu Canvia lots fa el mateix
0042    % f13 = uimenu(f1,'Label','Visualitzar');
0043    % uimenu(f13,'Label','Plots','Callback','Plots_Dades');
0044    % handles.menu.f13=f13;
0045     
0046     
0047     %%Pestanya principal PCA
0048     f2 = uimenu(gcf,'Label','PCA');
0049     handles.menu.f2=f2;
0050     %subpestanya Crear
0051     f21 = uimenu(f2,'Label','Create');   
0052     uimenu(f21,'Label','New Model PCA','Callback','uiwait(Menu_Crea_Model_PCA);');
0053     uimenu(f21,'Label','New Projection','Callback','uiwait(Menu_Projecta_Dades_PCA);');
0054     handles.menu.f21=f21;
0055     
0056     f24 = uimenu(f2,'Label','Save'); 
0057     uimenu(f24,'Label','Save PCA','Callback','Menu_Save_PCA');
0058     
0059     handles.menu.f24=f24;
0060     %Canviem ara nomes tenim la finestra PCA
0061     %subpestanya modificar
0062     %f22 = uimenu(f2,'Label','Edit');
0063     %uimenu(f22,'Label','Configure','Callback','Menu_Configura_PCA');
0064     %handles.menu.f22=f22;
0065     %subpestanya Visualitzar
0066     %f23 = uimenu(f2,'Label','Plots');
0067     %uimenu(f23,'Label','Plots','Callback','Plots_PCA');
0068     
0069     f23 = uimenu(f2,'Label','PCA','Callback','Menu_PCA');
0070     handles.menu.f23=f23;
0071     
0072     %%Pestanya principal CBR
0073     f3 = uimenu(gcf,'Label','CBR');
0074     handles.menu.f3=f3;
0075     %subpestanyes de CBR
0076     f31=uimenu(f3,'Label','Create new CBR','Callback','uiwait(Menu_Crea_CBR);');    
0077     f33 = uimenu(f3,'Label','Save'); 
0078     f32=uimenu(f3,'Label','CBR','Callback','Menu_CBR');
0079     
0080     uimenu(f33,'Label','Save CBR','Callback','Menu_Save_CBR');
0081     
0082     handles.menu.f31=f31;
0083     handles.menu.f32=f32;
0084     handles.menu.f33=f33;
0085     
0086     f7 = uimenu(gcf,'Label','Segment');
0087     f71=uimenu(f7,'Label','Segment','Callback','Menu_Talla');
0088     handles.menu.f71=f71;
0089     %%Pestanya principal Cross
0090     f4 = uimenu(gcf,'Label','Cross - Validation');
0091     uimenu(f4,'Label','Cross - Validation','Callback','Menu_Cross');
0092     handles.menu.f4=f4;
0093     
0094     f5 = uimenu(gcf,'Label','Commands');
0095     uimenu(f5,'Label','Command Window','Callback','Command_window');
0096     uimenu(f5,'Label','Command Examples','Callback','Menu_Exemples');
0097     
0098     ruta = mfilename('fullpath');
0099     ruta = ruta(1:end-4);%treiem el nom de la funció 'Pantalla_Principal'
0100 
0101     uimenu(f5,'Label','Command User Manual','Callback',['open(''' ruta 'Ajuda' filesep 'help.pdf' ''')']); %ajuda per les comandes
0102     handles.menu.f5=f5;
0103     %% Ajuda sobre l'aplicació
0104     f6=uimenu(gcf,'Label','Help');
0105     uimenu(f6,'Label','User Interface Manual','Callback',['open(''' ruta 'Ajuda' filesep 'help2.pdf' ''')']);
0106     uimenu(f6,'Label','eXiT','Callback','web(''http://exit.udg.edu/'', ''-browser'')');
0107     handles.menu.f6=f6;
0108 
0109 end
0110 
0111 %habilitem i deshabilitem les pestanyes que no calen actualment
0112 
0113 %mirem si hi ha algun DATA al workspace
0114 x=evalin('base','whos();');
0115 trobatDATA = false;
0116 trobatPCA = false;
0117 trobatCBR = false;
0118 final = isempty(x);
0119 i=1;
0120 lx = length(x)+1;
0121 
0122 while(~trobatDATA || ~trobatPCA || ~trobatCBR) && ~ final
0123     if strcmp(x(i).class,'DATA')
0124         trobatDATA = true;
0125     end
0126     
0127     if strcmp(x(i).class,'PCA')
0128         trobatPCA = true;
0129     end
0130     
0131     if strcmp(x(i).class,'CBR')
0132         trobatCBR = true;
0133     end
0134     i=i+1;
0135     final =  i == lx;
0136 end
0137 
0138 
0139 % si no tenim cap objecte DATA no te sentit ni modificar ni visualitzar
0140 % ...
0141 
0142 set(handles.menu.f71,'enable','off');
0143 
0144 if ~trobatDATA
0145     set(handles.menu.f111,'enable','off');
0146     set(handles.menu.f12,'enable','off');
0147 %    set(handles.menu.f13,'enable','off');
0148 else
0149     set( handles.menu.f111,'enable','on');
0150     set(handles.menu.f12,'enable','on');
0151   %  set(handles.menu.f13,'enable','on');
0152   set(handles.menu.f71,'enable','on');
0153 end
0154 
0155 
0156 % si no tenim cap objecte PCA no te sentit ni modificar ni visualitzar
0157 if ~trobatPCA
0158     % set(handles.menu.f22,'enable','off');
0159     set(handles.menu.f23,'enable','off');
0160     set(handles.menu.f24,'enable','off');
0161 else
0162     % set(handles.menu.f22,'enable','on');
0163     set(handles.menu.f23,'enable','on');
0164     set(handles.menu.f24,'enable','on');
0165     
0166     set(handles.menu.f71,'enable','on');
0167 end
0168 
0169 
0170 % si no tenim cap objecte CBR no te sentit ni modificar ni visualitzar
0171 if ~trobatCBR
0172     set(handles.menu.f32,'enable','off');
0173     set(handles.menu.f33,'enable','off');
0174 else
0175     set(handles.menu.f32,'enable','on');
0176     set(handles.menu.f33,'enable','on');
0177     set(handles.menu.f71,'enable','on');
0178 end
0179 
0180 
0181 % %La funcio que criden els menus es la
0182 % function Update(hObject, eventdata, handles)
0183 % handles.output = hObject;
0184 % handles=menu(handles);%per actualitzar el menu
0185 % guidata(hObject, handles);
0186 
0187 
0188 
0189 %     %uimenu(f11,'Label','Load DATA','Callback','Menu_Load_Dades');
0190 %
0191 %     %quan es tenqui la finestra load dades invocarem el metode update de
0192 %     %totes les finestres obertes el codi que ho fa es:
0193 %     %uiwait(Menu_Load_Dades); %espera a que hagi acavat la finestra
0194 %     %figHandles =findall(0,''Type'',''figure''); %busquem totes les finestres
0195 %     %for i=1:length(figHandles)
0196 %     %   eval([handle(figHandles(i)).name'(''Update'',gcf,[],guidata(gcf))'] );  %invoquem el metode update de cada una de les finestres!
0197 %     %end
0198 %
0199 %     %uimenu(f11,'Label','Load DATA','Callback','uiwait(Menu_Load_Dades);figHandles = findall(0,''Type'',''figure'');for i=1:length(figHandles); eval([handle(figHandles(i)).name ''(''''Update'''',gcf,[],guidata(gcf))'' ]);end');
0200 
0201 %     %uimenu(f21,'Label','Crear Model PCA','Callback','Menu_Crea_Model_PCA');
0202 %     %uimenu(f21,'Label','Projecta','Callback','Menu_Projecta_Dades_PCA');
0203 %
0204 %     uimenu(f21,'Label','Crear Model PCA','Callback','uiwait(Menu_Crea_Model_PCA);figHandles = findall(0,''Type'',''figure'');for i=1:length(figHandles); eval([handle(figHandles(i)).name ''(''''Update'''',gcf,[],guidata(gcf))'' ]);end');
0205 %     uimenu(f21,'Label','Projecta','Callback','uiwait(Menu_Projecta_Dades_PCA);figHandles = findall(0,''Type'',''figure'');for i=1:length(figHandles); eval([handle(figHandles(i)).name ''(''''Update'''',gcf,[],guidata(gcf))'' ]);end');
0206 %
0207 
0208 %     %f31=uimenu(f3,'Label','Crear CBR','Callback','Menu_Crea_CBR');
0209 %     f31=uimenu(f3,'Label','Crear CBR','Callback','uiwait(Menu_Crea_CBR);figHandles = findall(0,''Type'',''figure'');for i=1:length(figHandles); eval([handle(figHandles(i)).name ''(''''Update'''',gcf,[],guidata(gcf))'' ]);end');

Generated on Wed 12-Sep-2012 13:03:54 by m2html © 2005