From eca06222a24d6218c7fd58d3ed1fec9fe5b02299 Mon Sep 17 00:00:00 2001 From: Georgi Tushev Date: Thu, 9 Nov 2017 11:14:31 +0100 Subject: [PATCH] add dependent file property --- .gitignore | 19 +++++++++++++++++++ WidgetFolderBrowser.m | 28 ++++++++-------------------- WidgetFolderBrowserModel.m | 19 ++++++++----------- 3 files changed, 35 insertions(+), 31 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9600399 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +## --- +## remove autosaves generate by the Matlab editor +## --- + +# windows default autosave extension +*.asv + +# OSX / *nix default autosave extension +*.m~ + +# Compiled MEX binaries (all platforms) +*.mex* + +# OSX index file +.DS_Store + +# Text files +*.txt + diff --git a/WidgetFolderBrowser.m b/WidgetFolderBrowser.m index 2c0eb51..0e34431 100644 --- a/WidgetFolderBrowser.m +++ b/WidgetFolderBrowser.m @@ -9,7 +9,7 @@ % Max-Planck Institute For Brain Research % - properties (Dependent) + properties (SetObservable = true) file @@ -22,11 +22,6 @@ end - events - - event_file - - end methods @@ -50,16 +45,12 @@ error('WidgetFolderBrowserModel: initailizing model failed!'); end - % link ui events addlistener(obj.ui, 'event_fileLoad', @obj.fcnCallback_fileLoad); addlistener(obj.ui, 'event_fileNext', @obj.fcnCallback_fileNext); addlistener(obj.ui, 'event_filePrevious', @obj.fcnCallback_filePrevious); addlistener(obj.ui, 'event_folderLoad', @obj.fcnCallback_folderLoad); - % link model events - addlistener(obj.model, 'file', 'PostSet', @obj.fcnCallback_fileUpdated); - end end @@ -69,6 +60,7 @@ function obj = fcnCallback_fileLoad(obj, ~, ~) obj.model.fileLoad(); + obj.requestNewFile(); end @@ -76,6 +68,7 @@ function obj = fcnCallback_fileNext(obj, ~, ~) obj.model.fileUpdate(1); + obj.requestNewFile(); end @@ -83,6 +76,7 @@ function obj = fcnCallback_filePrevious(obj, ~, ~) obj.model.fileUpdate(-1); + obj.requestNewFile(); end @@ -90,22 +84,16 @@ function obj = fcnCallback_folderLoad(obj, ~, ~) obj.model.folderLoad(); + obj.requestNewFile(); end - %% @ model event_fileUpdate - function obj = fcnCallback_fileUpdated(obj, ~, ~) + %% @ request newfile + function obj = requestNewFile(obj) obj.ui.updateFileName(obj.model.fileTag); obj.ui.updateFileCounter(obj.model.index, obj.model.listSize); - notify(obj, 'event_file'); - - end - - %% @ request file - function varfile = get.file(obj) - - varfile = obj.model.file; + obj.file = obj.model.file(); end diff --git a/WidgetFolderBrowserModel.m b/WidgetFolderBrowserModel.m index f4e6e6d..10385f1 100644 --- a/WidgetFolderBrowserModel.m +++ b/WidgetFolderBrowserModel.m @@ -17,16 +17,11 @@ end - properties (SetObservable) - - file - - end - properties (Dependent) listSize fileTag + file end @@ -46,7 +41,6 @@ obj.path = pathName(1:end-1); % uigetfile retunrns pathName with filesep obj.list = {[pathName, fileName]}; obj.index = 1; - obj.file = obj.list{obj.index}; end @@ -79,7 +73,6 @@ obj.path = pathName; obj.list = cellfun(@(x) {[pathName, filesep, x]},{folderInfo.name}'); obj.index = 1; - obj.file = obj.list{obj.index}; end @@ -110,9 +103,6 @@ end - % update filename - obj.file = obj.list{obj.index}; - end function value = get.listSize(obj) @@ -126,5 +116,12 @@ [~, vartag] = fileparts(obj.file); end + + function varchar = get.file(obj) + + varchar = obj.list{obj.index}; + + end + end end \ No newline at end of file