Skip to content
This repository has been archived by the owner. It is now read-only.

Commit

Permalink
changed to file event instead of property change listening
Browse files Browse the repository at this point in the history
  • Loading branch information
MPIBR-kretschmerf committed Feb 26, 2018
1 parent e37129e commit e7dcf7b
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 23 deletions.
11 changes: 11 additions & 0 deletions UserEventData.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
classdef (ConstructOnLoad) UserEventData < event.EventData
properties
userdata
end

methods
function data = UserEventData(userdata)
data.userdata = userdata;
end
end
end
25 changes: 11 additions & 14 deletions WidgetFolderBrowser.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,17 @@
% Max-Planck Institute For Brain Research
%

properties (SetObservable = true)

file

end

properties (Access = private)

ui
model

end

events
event_newFile
end


methods

Expand Down Expand Up @@ -51,6 +49,8 @@
addlistener(obj.ui, 'event_filePrevious', @obj.fcnCallback_filePrevious);
addlistener(obj.ui, 'event_folderLoad', @obj.fcnCallback_folderLoad);

addlistener(obj.model, 'event_newFile', @obj.fcnCallback_requestNewFile);

end
end

Expand All @@ -60,43 +60,40 @@
function obj = fcnCallback_fileLoad(obj, ~, ~)

obj.model.fileLoad();
obj.requestNewFile();

end

%% @ ui event_fileNext
function obj = fcnCallback_fileNext(obj, ~, ~)

obj.model.fileUpdate(1);
obj.requestNewFile();

end

%% @ ui event_filePrevious
function obj = fcnCallback_filePrevious(obj, ~, ~)

obj.model.fileUpdate(-1);
obj.requestNewFile();

end

%% @ ui event_folderLoad
function obj = fcnCallback_folderLoad(obj, ~, ~)

obj.model.folderLoad();
obj.requestNewFile();

end

%% @ request newfile
function obj = requestNewFile(obj)
function obj = fcnCallback_requestNewFile(obj, ~, event)

obj.ui.updateFileName(obj.model.fileTag);
obj.ui.updateFileCounter(obj.model.index, obj.model.listSize);
obj.file = obj.model.file();

userEventData = UserEventData(event.userdata);
notify(obj, 'event_newFile', userEventData);
end

end

end
end
31 changes: 22 additions & 9 deletions WidgetFolderBrowserModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@
end

properties (Dependent)

listSize
fileTag
file

listSize
fileTag
end

events
event_newFile
end


methods

Expand All @@ -33,15 +36,25 @@

end

function obj = fileLoad(obj)
function obj = fileLoad(varargin)

if nargin==1
obj = varargin{1};
[fileName, pathName] = uigetfile(regexp(obj.extension, ',', 'split')', 'Pick a file ...');
obj.path = pathName(1:end-1); % uigetfile returns pathName with filesep
elseif nargin==2 && exist(varargin{2}, 'file') %valid file as second argument
[pathstr, name, ext] = fileparts(varargin{2});
fileName = [name, ext];
obj.path = pathstr;
else
error('Wrong number of input arguments');
end

[fileName, pathName] = uigetfile(regexp(obj.extension, ',', 'split')', 'Pick a file ...');
if ischar(fileName)

obj.path = pathName(1:end-1); % uigetfile retunrns pathName with filesep
obj.list = {[pathName, fileName]};
obj.index = 1;

userEventData = UserEventData([pathName, fileName]);
notify(obj, 'event_newFile', userEventData);
end

end
Expand Down

0 comments on commit e7dcf7b

Please sign in to comment.