Home > Codi > Menu_Crear_Dades.m

Menu_Crear_Dades

PURPOSE ^

Pantalla Per crear objectes DATa nous a partir de dades disponibles al

SYNOPSIS ^

function varargout = Menu_Crear_Dades(varargin)

DESCRIPTION ^

Pantalla Per crear objectes DATa nous a partir de dades disponibles al
workspace.

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = Menu_Crear_Dades(varargin)
0002 %Pantalla Per crear objectes DATa nous a partir de dades disponibles al
0003 %workspace.
0004 %
0005 %Per invocar directament des de consola aquesta pantalla nomes cal
0006 %invocar-ne la funcio sense cap parametre extra:
0007 %Menu_Crear_Dades();
0008 %
0009 
0010 gui_Singleton = 1;
0011 gui_State = struct('gui_Name',       mfilename, ...
0012                    'gui_Singleton',  gui_Singleton, ...
0013                    'gui_OpeningFcn', @Menu_Crear_Dades_OpeningFcn, ...
0014                    'gui_OutputFcn',  @Menu_Crear_Dades_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 function Menu_Crear_Dades_OpeningFcn(hObject, ~, handles, varargin)
0028 %funció que s'invoca en crear la finestra a varargin ens arriven el
0029 %possibles parametres extres d'invocació de Pantalla. No els
0030 %utilitzarem per res. hObject i handles els modificarem.
0031 
0032 
0033 handles.output = hObject;
0034 guidata(hObject, handles);
0035 event = struct('EventName','SelectionCanged','OldValue',handles.radiobutton2,'NewValue',handles.radiobutton1);
0036 uipanel1_SelectionChangeFcn(hObject, event, handles)
0037 
0038 function listbox1_Callback(~, ~, handles)
0039 nom=get(handles.listbox1,'String');
0040 if ~isempty(nom)%la llista esta buida! <- no hauria d'apareixer mai
0041     nom=nom{get(handles.listbox1,'Value')};
0042     if ~strcmp(nom,'No data')%hi ha misatge de que no hi ha dades!
0043         inst=['whos(''' nom ''');'];
0044         x=evalin('base',inst);
0045         set(handles.text7,'String',x.class);
0046         set(handles.text8,'String',[ '[' num2str(x.size) ']' ]);
0047         
0048         if get(handles.uipanel1,'SelectedObject') == handles.radiobutton1
0049             %si és 2D hem de comprobar el format que em passen les dades
0050             %per poder saver una de les 3 dimmencions
0051             
0052             if get(handles.uipanel3,'SelectedObject') == handles.radiobutton4
0053                 %Les dades estan en VW
0054                 set(handles.edit1,'String','');
0055                 set(handles.edit2,'String','');
0056                 set(handles.edit3,'String',num2str(x.size(2)));
0057             else
0058                 %les dades estan en BW
0059                 set(handles.edit1,'String','');
0060                 set(handles.edit2,'String',num2str(x.size(1)));
0061                 set(handles.edit3,'String','');
0062             end
0063         else
0064             %es 3D ja savem les dimencions
0065             set(handles.edit1,'String',num2str(x.size(1)));
0066             set(handles.edit2,'String',num2str(x.size(3)));
0067             set(handles.edit3,'String',num2str(x.size(2)));
0068             
0069             set(handles.pushbutton2,'Enable','on');
0070         end
0071         
0072     else
0073         set(handles.text7,'String','No selected object!');
0074         set(handles.text8,'String','No selected object!');
0075     end
0076 else
0077     set(handles.text7,'String','No selected object!');
0078     set(handles.text8,'String','No selected object!');
0079 end
0080 
0081 function pushbutton1_Callback(~, ~, handles)
0082 nomobj=get(handles.listbox1,'String');
0083 nomobj=nomobj{get(handles.listbox1,'Value')};
0084 
0085 %nom del CBR que crearem
0086 nom=get(handles.edit4,'String');
0087 
0088 
0089 if ~isempty(evalin('base',['whos([''' nom '''])'] ))
0090     choice = questdlg('Selected name is used, do you want to overwrite?', 'Attention', 'Yes','No','No');
0091     switch choice
0092         case 'Yes'
0093             %Sobreescriure
0094             %creem la variable com a global
0095             %inst=['global ' nom];evalin('base',inst);
0096             inst=[nom '=DATA();'];evalin('base',inst);
0097             
0098             temps = get(handles.edit1,'String');
0099             lots = get(handles.edit2,'String');
0100             vars = get(handles.edit3,'String');
0101             if get(handles.uipanel1,'SelectedObject') == handles.radiobutton1
0102                 %és 2D
0103                 
0104                 if get(handles.uipanel3,'SelectedObject') == handles.radiobutton4
0105                     %Les dades estan en VW
0106                     inst = [nom '.setRawDataVW(double(' nomobj '),' vars ',' temps ',' lots ');'];
0107                     evalin('base',inst);
0108                 else
0109                     %les dades estan en BW
0110                     inst = [nom '.setRawDataBW(double(' nomobj '),' vars ',' temps ',' lots ');'];
0111                     evalin('base',inst);
0112                 end
0113             else
0114                 %es 3D ja savem les dimencions
0115                 inst = [nom '.setRawData(double(' nomobj '));'];
0116                 evalin('base',inst);
0117             end
0118             
0119             
0120             close('Menu_Crear_Dades');
0121             %actualitzem les llistes d'objectes de totes les finestres
0122             Update_Caller();
0123             uiwait(warndlg('Object class field is empty!','Attention!'));
0124             Menu_Editar_Dades2;
0125             
0126         case 'No'
0127             %No fer res
0128     end
0129 else
0130     %creem la variable com a global
0131     %inst=['global ' nom];evalin('base',inst);
0132     inst=[nom '=DATA();'];evalin('base',inst);
0133     
0134     
0135     temps = get(handles.edit1,'String');
0136     lots = get(handles.edit2,'String');
0137     vars = get(handles.edit3,'String');
0138     if get(handles.uipanel1,'SelectedObject') == handles.radiobutton1
0139         %és 2D
0140         
0141         if get(handles.uipanel3,'SelectedObject') == handles.radiobutton4
0142             %Les dades estan en VW
0143             inst = [nom '.setRawDataVW(double(' nomobj '),' vars ',' temps ',' lots ');'];
0144             evalin('base',inst);
0145         else
0146             %les dades estan en BW
0147             inst = [nom '.setRawDataBW(double(' nomobj '),' vars ',' temps ',' lots ');'];
0148             evalin('base',inst);
0149         end
0150     else
0151         %es 3D ja savem les dimencions
0152         inst = [nom '.setRawData(double(' nomobj '));'];
0153         evalin('base',inst);
0154     end
0155     
0156     close('Menu_Crear_Dades');
0157     %actualitzem les llistes d'objectes de totes les finestres
0158     Update_Caller();
0159     uiwait(warndlg('Object class field is empty!','Attention!'));
0160     Menu_Editar_Dades2;
0161 end
0162 
0163 function uipanel3_SelectionChangeFcn(hObject, eventdata, handles)
0164 listbox1_Callback(hObject, eventdata, handles);
0165 
0166 function uipanel1_SelectionChangeFcn(~, eventdata, handles)
0167 switch get(eventdata.NewValue,'Tag') % mirem qui han seleccionat
0168     case 'radiobutton1'
0169         %Matriu 2D
0170         
0171         %fem que nomes es vegin les matrius 2D a la llista
0172         
0173         x=evalin('base','whos();');
0174         list=[];
0175         for i=1:length(x)
0176             if x(i).size(1) > 1 && evalin('base',['isnumeric(' x(i).name() ');']) && x(i).size(2) > 1 && length(x(i).size) == 2
0177                list=[list; {x(i).name()}];
0178             end
0179         end
0180         if isempty(list)
0181             list={'No data'};
0182             set(handles.uipanel4,'visible','off')
0183         else
0184             set(handles.uipanel4,'visible','on')
0185         end
0186         set(handles.listbox1,'String',list);
0187         
0188         %fem visible el selector BW VW
0189         set(handles.uipanel3,'visible','on');
0190         set(handles.edit1,'Enable','on');
0191         set(handles.edit2,'Enable','on');
0192         set(handles.edit3,'Enable','on');
0193         
0194         set(handles.pushbutton2,'visible','off');
0195         set(handles.pushbutton2,'Enable','off');
0196         
0197         set(handles.text12,'visible','on');
0198         set(handles.text13,'visible','on');
0199         set(handles.text14,'visible','on');
0200         
0201     case 'radiobutton2'
0202         %Matriu 3D
0203         
0204         %fem que nomes es vegin les matrius 3D a la llista
0205         
0206         x=evalin('base','whos();');
0207         list=[];
0208         for i=1:length(x)
0209             if length(x(i).size) == 3 && evalin('base',['isnumeric(' x(i).name() ');']) && x(i).size(1) > 1 &&   x(i).size(2) > 1 &&   x(i).size(3) > 1
0210                list=[list; {x(i).name()}];
0211             end
0212         end
0213         if isempty(list)
0214             list={'No data'};
0215             set(handles.uipanel4,'visible','off')
0216         else
0217             set(handles.uipanel4,'visible','on')
0218         end
0219         set(handles.listbox1,'String',list);
0220         
0221         %fem visible el selector BW VW
0222         set(handles.uipanel3,'visible','off');
0223         set(handles.edit1,'Enable','off');
0224         set(handles.edit2,'Enable','off');
0225         set(handles.edit3,'Enable','off');
0226         
0227         set(handles.text12,'visible','off');
0228         set(handles.text13,'visible','off');
0229         set(handles.text14,'visible','off');
0230         
0231         set(handles.pushbutton2,'visible','on');
0232         set(handles.pushbutton2,'Enable','off');
0233         
0234     otherwise
0235         %Per si passen coses rares!
0236 end
0237 set(handles.listbox1,'value',1);
0238 set(handles.text7,'String','No selected object!');
0239 set(handles.text8,'String','No selected object!');
0240 set(handles.edit1,'String','');
0241 set(handles.edit2,'String','');
0242 set(handles.edit3,'String','');
0243 
0244 function pushbutton2_Callback(hObject, eventdata, handles)
0245 %demanem a l'usuari com bol permutar les dimencions!
0246 answer = inputdlg('Whe need a permutation vector [ dim1 dim2 dim3 ]:', 'Permutation vector');
0247 if ~isempty(answer)
0248     nom=get(handles.listbox1,'String');
0249     nom=nom{get(handles.listbox1,'Value')};
0250      if ~strcmp(nom,'No data')%hi ha misatge de que no hi ha dades!
0251         ins =  [nom ' = permute(' nom ',' answer{:} ');'];
0252         evalin('base',ins);
0253          listbox1_Callback(hObject, eventdata, handles);%fem que actualitzi els valors!
0254      end
0255 end
0256 
0257 
0258 %% ------------------- inutils -----------------------
0259 function listbox1_CreateFcn(hObject, ~, ~)
0260 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0261     set(hObject,'BackgroundColor','white');
0262 end
0263 function edit4_Callback(~, ~, ~)
0264 function edit4_CreateFcn(hObject, ~, ~)
0265 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0266     set(hObject,'BackgroundColor','white');
0267 end
0268 function edit1_Callback(~, ~, ~)
0269 function edit1_CreateFcn(hObject, ~, ~)
0270 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0271     set(hObject,'BackgroundColor','white');
0272 end
0273 function edit2_Callback(~, ~, ~)
0274 function edit2_CreateFcn(hObject, ~, ~)
0275 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0276     set(hObject,'BackgroundColor','white');
0277 end
0278 function edit3_Callback(~, ~, ~)
0279 function edit3_CreateFcn(hObject, ~, ~)
0280 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0281     set(hObject,'BackgroundColor','white');
0282 end
0283 function varargout = Menu_Crear_Dades_OutputFcn(~, ~, handles) 
0284 varargout{1} = handles.output;

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