demo: matlab management file and menu editor, toolbar editor

13
Basic Matlab September 22, 2012 [[email protected]] Page 1 DEMO : HOW TO BUILD FILES MANAGEMENT GUI WITH MATLAB TOOLBOX function varargout = Explorer(varargin) % EXPLORER M-file for Explorer.fig % EXPLORER, by itself, creates a new EXPLORER or raises the existing % singleton*. % % H = EXPLORER returns the handle to a new EXPLORER or the handle to % the existing singleton*. % % EXPLORER('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in EXPLORER.M with the given input arguments. % % EXPLORER('Property','Value',...) creates a new EXPLORER or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Explorer_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Explorer_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Explorer % Last Modified by GUIDE v2.5 22-Sep-2012 17:03:10 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Explorer_OpeningFcn, ... 'gui_OutputFcn', @Explorer_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

Upload: jans-hendry

Post on 28-Oct-2014

95 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 1

DEMO : HOW TO BUILD FILES MANAGEMENT GUI WITH MATLAB TOOLBOX

function varargout = Explorer(varargin)

% EXPLORER M-file for Explorer.fig

% EXPLORER, by itself, creates a new EXPLORER or raises the existing

% singleton*.

%

% H = EXPLORER returns the handle to a new EXPLORER or the handle to

% the existing singleton*.

%

% EXPLORER('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in EXPLORER.M with the given input arguments.

%

% EXPLORER('Property','Value',...) creates a new EXPLORER or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before Explorer_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to Explorer_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Explorer

% Last Modified by GUIDE v2.5 22-Sep-2012 17:03:10

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Explorer_OpeningFcn, ...

'gui_OutputFcn', @Explorer_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

Page 2: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 2

% --- Executes just before Explorer is made visible.

function Explorer_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Explorer (see VARARGIN)

% Choose default command line output for Explorer

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Explorer wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Explorer_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on selection change in lstdrive.

function lstdrive_Callback(hObject, eventdata, handles)

% hObject handle to lstdrive (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns lstdrive contents as cell array

% contents{get(hObject,'Value')} returns selected item from lstdrive

try

global pathname;

global filename;

global listfiles;

global filesadd;

indexlist = get(handles.lstdrive, 'Value');

temp = listfiles{indexlist};

filesadd = strcat(pathname, temp);

if isdir(filesadd)

pathname = strcat(filesadd,'\');

listfiles = refresh(pathname, filename);

Page 3: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 3

set(handles.lstdrive, 'string', listfiles);

set(handles.txtBrowse, 'String', pathname);

else

axes(handles.axes1);

set(handles.axes1, 'NextPlot', 'replace');

imshow(filesadd);

set(handles.txtBrowse, 'String', filesadd);

end

catch

end

% --- Executes during object creation, after setting all properties.

function lstdrive_CreateFcn(hObject, eventdata, handles)

% hObject handle to lstdrive (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes during object creation, after setting all properties.

function listbox2_CreateFcn(hObject, eventdata, handles)

% hObject handle to listbox2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in btnPrev.

function btnPrev_Callback(hObject, eventdata, handles)

% hObject handle to btnPrev (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global pathname;

global listfiles;

status = 1;

indexlist = get(handles.lstdrive, 'Value');

[filesadd, inc] = DynamicImage(pathname, status, indexlist, listfiles);

set(handles.lstdrive, 'Value', inc);

set(handles.txtBrowse, 'String', filesadd);

Page 4: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 4

imshow(filesadd);

catch

end

% --- Executes on button press in btnNext.

function btnNext_Callback(hObject, eventdata, handles)

% hObject handle to btnNext (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global pathname;

global listfiles;

status = 0;

indexlist = get(handles.lstdrive, 'Value');

[filesadd, inc] = DynamicImage(pathname, status, indexlist, listfiles);

set(handles.lstdrive, 'Value', inc);

set(handles.txtBrowse, 'String', filesadd);

imshow(filesadd);

catch

end

function [filesadd, inc] = DynamicImage(pathname, status, indexlist, listfiles)

switch status

case 0

inc = indexlist + 1;

if inc > length(listfiles)

inc = 3;

end

case 1

inc = indexlist - 1;

if inc < 3

inc = length(listfiles);

end

end

temp = listfiles{inc};

filesadd = strcat(pathname, temp);

% --- Executes on button press in btnDel.

function btnDel_Callback(hObject, eventdata, handles)

% hObject handle to btnDel (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

warning off;

global filesadd;

global pathname;

global filename;

Page 5: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 5

pilih = questdlg('Are You Sure Want To Delete This File?', ...

'Information Delete', 'Okay dude', 'No dude', 'No dude');

switch pilih

case 'Okay dude'

delete(filesadd);

end

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

catch

end

% --- Executes during object creation, after setting all properties.

function txtBrowse_CreateFcn(hObject, eventdata, handles)

% hObject handle to txtBrowse (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in btnBrowse.

function btnBrowse_Callback(hObject, eventdata, handles)

% hObject handle to btnBrowse (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global filename;

global pathname;

global listfiles;

[filename, pathname] = uigetfile('*.*', 'Pilih File');

if ~isequal(filename,0) || ~isequal(pathname,0)

set(handles.lstdrive, 'Enable', 'on');

set(handles.txtBrowse, 'String', pathname);

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

end

catch

end

% This function to list all files name in current directory

function listfiles = refresh(pathname, filename)

try

files = dir(strcat(pathname,'*.*'));

m = 1;

Page 6: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 6

n = 1;

for k = 1:numel(files)

if isdir(strcat(pathname,files(k).name))

listfiles1{m} = files(k).name;

m = m + 1;

else

listfiles2{n} = files(k).name;

n = n + 1;

end

end

if length(listfiles2) < 2

listfiles = listfiles1;

else

listfiles = [listfiles1 listfiles2];

end

catch

end

% --- Executes during object creation, after setting all properties.

function btnBrowse_CreateFcn(hObject, eventdata, handles)

% hObject handle to btnBrowse (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function btnRename_CreateFcn(hObject, eventdata, handles)

% hObject handle to btnRename (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function btnNext_CreateFcn(hObject, eventdata, handles)

% hObject handle to btnNext (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function btnPrev_CreateFcn(hObject, eventdata, handles)

% hObject handle to btnPrev (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

Page 7: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 7

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global pathname;

global listfiles;

global filename;

uurl = get(handles.txtBrowse, 'String');

[bar, kol] = find(uurl == char(92));

if isdir(uurl)

if kol(end) == length(uurl)

uurl = uurl(1:length(uurl)-(kol(end)-kol(end-1)));

else

uurl = uurl(1:length(uurl)-(length(uurl)-kol(end)));

end

else

uurl = uurl(1:kol(end-1));

end

set(handles.txtBrowse, 'String', uurl);

pathname = uurl;

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

catch

end

% --- Executes on key press with focus on lstdrive and none of its controls.

function lstdrive_KeyPressFcn(hObject, eventdata, handles)

% hObject handle to lstdrive (see GCBO)

% eventdata structure with the following fields (see UICONTROL)

% Key: name of the key that was pressed, in lower case

% Character: character interpretation of the key(s) that was pressed

% Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed

% handles structure with handles and user data (see GUIDATA)

try

global pathname;

global listfiles;

global filesadd;

indexlist = get(handles.lstdrive, 'Value');

temp = listfiles{indexlist};

filesadd = strcat(pathname, temp);

imshow(filesadd);

set(handles.txtBrowse, 'String', filesadd);

catch

end

% --- If Enable == 'on', executes on mouse press in 5 pixel border.

Page 8: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 8

% --- Otherwise, executes on mouse press in 5 pixel border or over lstdrive.

function lstdrive_ButtonDownFcn(hObject, eventdata, handles)

% hObject handle to lstdrive (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global pathname;

global listfiles;

global filesadd;

indexlist = get(handles.lstdrive, 'Value');

temp = listfiles{indexlist};

filesadd = strcat(pathname, temp);

imshow(filesadd);

set(handles.txtBrowse, 'String', filesadd);

catch

end

% --------------------------------------------------------------------

function mnuClose_Callback(hObject, eventdata, handles)

% hObject handle to mnuClose (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

close all;

% --------------------------------------------------------------------

function mnuAbout_Callback(hObject, eventdata, handles)

% hObject handle to mnuAbout (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

msgbox('This is only a demo on how to use File Management Toolbox in Matlab');

% --------------------------------------------------------------------

function mnuCreator_Callback(hObject, eventdata, handles)

% hObject handle to mnuCreator (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

msgbox('Design and Program by Jans Hendry');

% --------------------------------------------------------------------

function ctxCopyFile_Callback(hObject, eventdata, handles)

% hObject handle to ctxCopyFile (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global filesadd;

global TempCopy;

global ctxstatus;

Page 9: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 9

if ~isdir(filesadd)

TempCopy = filesadd;

ctxstatus = 0;

end

% --------------------------------------------------------------------

function ctxMoveTo_Callback(hObject, eventdata, handles)

% hObject handle to ctxMoveTo (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global filesadd;

global TempCopy;

global ctxstatus;

if ~isdir(filesadd)

TempCopy = filesadd;

ctxstatus = 1;

end

% --------------------------------------------------------------------

function Addition_Callback(hObject, eventdata, handles)

% hObject handle to Addition (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --------------------------------------------------------------------

function mnuNewFold_Callback(hObject, eventdata, handles)

% hObject handle to mnuNewFold (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global pathname;

global filename;

NewFolder = inputdlg('Write New Folder Name','New Folder',1);

mkdir(pathname,NewFolder{1});

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

function txtBrowse_Callback(hObject, eventdata, handles)

% hObject handle to txtBrowse (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of txtBrowse as text

% str2double(get(hObject,'String')) returns contents of txtBrowse as a double

Page 10: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 10

try

global filename;

global pathname;

global listfiles;

[filename, pathname] = uigetfile('*.*', 'Pilih File');

if ~isequal(filename,0) || ~isequal(pathname,0)

set(handles.lstdrive, 'Enable', 'on');

set(handles.txtBrowse, 'String', pathname);

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

end

catch

end

% --------------------------------------------------------------------

function mnuPasteFile_Callback(hObject, eventdata, handles)

% hObject handle to mnuPasteFile (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

global TempCopy;

global pathname;

global ctxstatus;

global filename;

pathname = PPaste(ctxstatus, pathname, TempCopy);

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

catch

end

function pathname = PPaste(ctxstatus, pathname, TempCopy)

try

switch ctxstatus

case 0

TempPaste = pathname;

copyfile(TempCopy, TempPaste,'f');

pathname = TempPaste;

case 1

TempPaste = pathname;

movefile(TempCopy, TempPaste,'f');

pathname = TempPaste;

end

catch

end

% --------------------------------------------------------------------

Page 11: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 11

function ctxRemove_Callback(hObject, eventdata, handles)

% hObject handle to ctxRemove (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global filesadd;

global pathname;

global filename;

ans1 = 'Yes, Dude';

ans2 = 'No, Dude';

title = 'Warning';

if isdir(filesadd)

quest = 'Are You sure want to delete this folder and content(s) ?';

decide = questdlg(quest,title,ans1,ans2,ans2);

switch decide

case 'Yes, Dude'

rmdir(filesadd,'s')

end

else

msgbox('This is not a folder, choose a folder!!');

end

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

% --------------------------------------------------------------------

function ctxDelete_Callback(hObject, eventdata, handles)

% hObject handle to ctxDelete (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

try

warning off;

global filesadd;

global pathname;

global filename;

pilih = questdlg('Are You Sure Want To Delete This File?', ...

'Information Delete', 'Okay dude', 'No dude', 'No dude');

switch pilih

case 'Okay dude'

delete(filesadd);

end

listfiles = refresh(pathname, filename);

set(handles.lstdrive, 'string', listfiles);

catch

end

% --------------------------------------------------------------------

Page 12: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 12

function mnuFile_Callback(hObject, eventdata, handles)

% hObject handle to mnuFile (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --------------------------------------------------------------------

function ctxHorisonFlip_Callback(hObject, eventdata, handles)

% hObject handle to ctxHorisonFlip (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global filesadd;

fliplr(filesadd);

RESULT

Page 13: Demo: Matlab Management File and Menu Editor, Toolbar Editor

Basic Matlab September 22, 2012

[[email protected]] Page 13

I will make the tutorial about how to use MATLAB MENU EDITOR and MATLAB TOOLBAR EDITOR

later. Also how to combine them with matlab files management toolbar. This work is simple yet

valuable. Full of tricky in programming.

@ thanks…