Home > Codi > Menu_Crea_CBR.m

Menu_Crea_CBR

PURPOSE ^

Pantalla per crear objectes CBR a partir de objectes tipus PCA i DATA

SYNOPSIS ^

function varargout = Menu_Crea_CBR(varargin)

DESCRIPTION ^

Pantalla per crear objectes CBR a partir de objectes tipus PCA i DATA
presents al workspace. Els nous objectes CBR seran creats al orkspace amb
el nom que indiqui l'usuari

Per invocar directament des de consola aquesta pantalla nomes cal
invocar-ne la funcio sense cap parametre extra:
Menu_Crea_CBR();

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = Menu_Crea_CBR(varargin)
0002 %Pantalla per crear objectes CBR a partir de objectes tipus PCA i DATA
0003 %presents al workspace. Els nous objectes CBR seran creats al orkspace amb
0004 %el nom que indiqui l'usuari
0005 %
0006 %Per invocar directament des de consola aquesta pantalla nomes cal
0007 %invocar-ne la funcio sense cap parametre extra:
0008 %Menu_Crea_CBR();
0009 %
0010 gui_Singleton = 1;
0011 gui_State = struct('gui_Name',       mfilename, ...
0012                    'gui_Singleton',  gui_Singleton, ...
0013                    'gui_OpeningFcn', @Menu_Crea_CBR_OpeningFcn, ...
0014                    'gui_OutputFcn',  @Menu_Crea_CBR_OutputFcn, ...
0015                    'gui_LayoutFcn',  [] , ...
0016                    'gui_Callback',   []);
0017 if nargin && ischar(varargin{1})
0018     gui_State.gui_Callback = str2func(varargin{1});
0019 end
0020 
0021 if nargout
0022     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
0023 else
0024     gui_mainfcn(gui_State, varargin{:});
0025 end
0026 
0027 % --- Executes just before Menu_Crea_CBR is made visible.
0028 function Menu_Crea_CBR_OpeningFcn(hObject, ~, handles, varargin)
0029 %funció que s'invoca en crear la finestra a varargin ens arriven el
0030 %possibles parametres extres d'invocació de Pantalla. No els
0031 %utilitzarem per res. hObject i handles els modificarem.
0032 
0033 handles.output = hObject;
0034 guidata(hObject, handles);
0035 
0036 %busquem objectes dades
0037 x=evalin('base','whos();');
0038 list=[];
0039 list2=[];
0040 for i=1:length(x)
0041     if strcmp(x(i).class,'DATA')
0042        list=[list; {x(i).name}];
0043     end
0044     
0045     if strcmp(x(i).class,'PCA') ~=0
0046         if evalin('base',[x(i).name '.isModel();'])
0047             list2=[list2; {x(i).name}];
0048         end
0049     end
0050 end
0051 if isempty(list)
0052     list={'No DATA object in workspace'};
0053 end
0054 set(handles.popupmenu2,'String',list);
0055 
0056 %busquem PCA i model
0057 if isempty(list2)
0058     list2={'No PCA model in workspace'};
0059 end
0060 set(handles.popupmenu1,'String',list2);
0061 set(handles.pushbutton3,'Enable','off');
0062 
0063 % --- Executes on button press in pushbutton1.
0064 function pushbutton1_Callback(~, ~, ~)
0065 uiwait(Menu_Crea_Model_PCA());
0066 
0067 % --- Executes on button press in pushbutton2.
0068 function pushbutton2_Callback(~, ~, ~)
0069 uiwait(Menu_Load_Dades());
0070 
0071 
0072 
0073 function edit1_Callback(~, ~, handles)
0074 set(handles.pushbutton3,'Enable','on');
0075 
0076 
0077 % --- Executes during object creation, after setting all properties.
0078 function edit1_CreateFcn(hObject, ~, ~)
0079 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0080     set(hObject,'BackgroundColor','white');
0081 end
0082 
0083 
0084 % --- Executes on button press in pushbutton3.
0085 function pushbutton3_Callback(~, ~, handles)
0086 try
0087     %nom de l'objecte dades que fara de C_B
0088     dade=get(handles.popupmenu2,'String');
0089     dade=dade{get(handles.popupmenu2,'Value')};
0090     
0091     
0092     %si no te noms de lot els generem asignant-hi la posicio actual del lot!!
0093     if(isempty(evalin('base',[dade '.getBatchLabel()'])) && (evalin('base',[dade '.getBatchCount()']) > 0))
0094         evalin('base',[dade '.setBatchLabel(num2cell(1:' dade '.getBatchCount))']);
0095         warndlg('Selected case base object had no batch names. Automatic ones ware assigned.','Attention!')
0096     end
0097 
0098 
0099 %nom del PCA que fara la funció de model
0100 pc=get(handles.popupmenu1,'String');
0101 pc=pc{get(handles.popupmenu1,'Value')};
0102 
0103 
0104 %nom del CBR que crearem
0105 nom=get(handles.edit1,'String');
0106 
0107 
0108 if ~isempty(evalin('base',['whos([''' nom '''])'] ))
0109     choice = questdlg('Selected name is used, do you want to oberwrite?', 'Attention', 'Yes','No','No');
0110     switch choice
0111         case 'Yes'
0112             %Sobreescriure
0113 
0114             inst=[nom '=CBR(' pc ',' dade  ');'];
0115             evalin('base',inst);
0116             
0117             close('Menu_Crea_CBR');
0118             Update_Caller();
0119             
0120         case 'No'
0121             %No fer res
0122     end
0123 else
0124 
0125     inst=[nom '=CBR(' pc ',' dade  ');'];
0126     evalin('base',inst);
0127     
0128     close('Menu_Crea_CBR');
0129     Update_Caller();
0130 end
0131 
0132 catch err
0133     errordlg(err.message,'Error');
0134 end
0135 
0136 function Update(hObject, ~, handles) 
0137 handles.output = hObject;
0138 
0139 %Tornem a crear la llista d'objectes DATA
0140 x=evalin('base','whos();');
0141 list=[];
0142 list2=[];
0143 for i=1:length(x)
0144     if strcmp(x(i).class,'DATA') ~=0
0145         list=[list; {x(i).name}];
0146     end
0147 
0148     if strcmp(x(i).class,'PCA') ~=0 
0149         if evalin('base',[x(i).name '.isModel();'])
0150             list2=[list2; {x(i).name}];
0151         end
0152     end
0153 end
0154 if isempty(list)
0155     list={'No DATA object in workspace'};
0156 end
0157 
0158 %busquem el valor que te el popupmenu actualment
0159 nom=get(handles.popupmenu2,'String');
0160 nom=nom{get(handles.popupmenu2,'Value')};
0161 
0162 %busquem aquest nom entre la llista actual
0163 
0164 val=find(strcmp(nom,list));
0165 set(handles.popupmenu2,'String',list);
0166 
0167 if isempty(val)
0168     set(handles.popupmenu2,'Value',1);
0169     
0170     %i desactivem els menus!
0171     set(handles.pushbutton3,'Enable','off');
0172     
0173 else
0174     set(handles.popupmenu2,'Value',val);
0175 end
0176 
0177 %busquem PCA i model
0178 if isempty(list2)
0179     list2={'No PCA model in workspace'};
0180 end
0181 %busquem el valor que te el popupmenu actualment
0182 nom=get(handles.popupmenu1,'String');
0183 nom=nom{get(handles.popupmenu1,'Value')};
0184 
0185 %busquem aquest nom entre la llista actual
0186 
0187 val=find(strcmp(nom,list2));
0188 set(handles.popupmenu1,'String',list2);
0189 
0190 if isempty(val)
0191     set(handles.popupmenu1,'Value',1);
0192     
0193     %i desactivem els menus!
0194     set(handles.pushbutton3,'Enable','off');
0195     
0196 else
0197     set(handles.popupmenu1,'Value',val);
0198 end
0199 
0200 guidata(hObject, handles);
0201 
0202 %--------------------------------INUTILS-----------------------------------
0203 function varargout = Menu_Crea_CBR_OutputFcn(~, ~, handles) 
0204 varargout{1} = handles.output;
0205 function popupmenu1_Callback(~, ~, ~)
0206 function popupmenu1_CreateFcn(hObject, ~, ~)
0207 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0208     set(hObject,'BackgroundColor','white');
0209 end
0210 function popupmenu2_Callback(~, ~, ~)
0211 function popupmenu2_CreateFcn(hObject, ~, ~)
0212 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0213     set(hObject,'BackgroundColor','white');
0214 end

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