Commit 039ee63b authored by sstucker's avatar sstucker
Browse files

Merge branch 'master' of https://github.com/BUNPC/Homer3 into procstream-to-script

parents d146e7d4 4953527b
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -33,12 +33,20 @@ if nargin==1
elseif nargin==2
    dirnameGroup = varargin{1};
    fmt = varargin{2};
elseif nargin==3
    dirnameGroup = varargin{1};
    fmt = varargin{2};
    options = varargin{3};
    if optionExists(options, 'oneformat')
        fmt = [fmt, 'only'];
    end
end

if ~exist('dirnameGroup','var') || isempty(dirnameGroup)
    dirnameGroup = pwd;
end


if ~exist('fmt','var') || isempty(fmt)
    if ~isempty(maingui) && isstruct(maingui) && isfield(maingui,'format')
        fmt = maingui.format;
@@ -72,6 +80,12 @@ while files.isempty()
                Nirs2Snirf(dirnameGroup);
                files = DataFilesClass(dirnameGroup, 'snirf');
            end
        case {'snirfonly'}
            files = DataFilesClass(dirnameGroup, 'snirf');
            if files.isempty()
                files = [];
                return;
            end
        case {'nirs','.nirs'}
            files = DataFilesClass(dirnameGroup, 'nirs');
        otherwise
@@ -90,7 +104,10 @@ while files.isempty()
                continue;
            end
    end
    
    if files.isempty()
        switch fmt
            case {'snirf','.snirf'}
        msg{1} = sprintf('Homer3 did not find any %s data files to load in the current group folder. ', fmt);        
        msg{2} = sprintf('Do you want to select another group folder?');
        q = MenuBox([msg{:}], {'YES','NO'});
@@ -103,6 +120,9 @@ while files.isempty()
            files = DataFilesClass();
            return;
                end
            case {'snirfonly'}
                files = [];
        end
    end
end

+21 −13
Original line number Diff line number Diff line
@@ -26,20 +26,15 @@ classdef DataTreeClass < handle
            obj.dirnameGroups       = {};
            obj.logger              = InitLogger(logger, 'DataTree');
            
            if isa(groupDirs, 'DataTreeClass')
                   obj.Copy(groupDirs);
                   return;
            end
            
            cfg = ConfigFileClass();
            obj.dataStorageScheme = cfg.GetValue('Data Storage Scheme');
            
            %%%% Parse args
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            % Parse args
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            
            % Arg 1: get folder of the group being loaded
            if ~exist('groupDirs','var') || isempty(groupDirs)
                groupDirs{1} = pwd;
            elseif ~iscell(groupDirs)
            elseif ~isa(groupDirs, 'DataTreeClass') && ~iscell(groupDirs)
                groupDirs = {groupDirs};
            end
            
@@ -58,10 +53,23 @@ classdef DataTreeClass < handle
                options = '';
            end
            
            
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            % Now that we have all the arguments, ready to start
            % condtructing object
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            if isa(groupDirs, 'DataTreeClass')
               obj.Copy(groupDirs);
               return;
            end
            
            cfg = ConfigFileClass();
            obj.dataStorageScheme = cfg.GetValue('Data Storage Scheme');

            % Estimate amount of memory required and set the data storage scheme
            obj.SetDataStorageScheme(options);
            
            obj.FindAndLoadGroups(groupDirs, fmt, procStreamCfgFile);
            obj.FindAndLoadGroups(groupDirs, fmt, procStreamCfgFile, options);
            if obj.IsEmpty()
                return;
            end
@@ -198,7 +206,7 @@ classdef DataTreeClass < handle
        
        
        % --------------------------------------------------------------
        function FindAndLoadGroups(obj, groupDirs, fmt, procStreamCfgFile)
        function FindAndLoadGroups(obj, groupDirs, fmt, procStreamCfgFile, options)

            tic;            
            for kk = 1:length(groupDirs)
@@ -212,7 +220,7 @@ classdef DataTreeClass < handle
                    obj.files    = FileClass().empty();
                    obj.filesErr = FileClass().empty();
                    
                    dataInit = FindFiles(obj.dirnameGroups{kk}, fmt);
                    dataInit = FindFiles(obj.dirnameGroups{kk}, fmt, options);
                    if isempty(dataInit) || dataInit.isempty()
                        return;
                    end
+6 −0
Original line number Diff line number Diff line
@@ -162,7 +162,13 @@ classdef ProcResultClass < handle
            end
            [pname, fname] = fileparts(filename);
            if isempty(pname)
                if exist(['./', fname, '.mat'], 'file')==2
                    pname = '.';
                elseif exist(['../', fname, '.mat'], 'file')==2
                    pname = '..';
                else
                pname = '.';
            end
            end
            obj.filename = [pname, '/', fname, '.mat'];
        end
+28 −34
Original line number Diff line number Diff line
@@ -63,28 +63,6 @@ set(handles.togglebuttonMinimizeGUI, 'tooltipstring','Minimize GUI Window')
cfg = ConfigFileClass();
handles.menuItemUpdateCheck.Checked = cfg.GetValue('Check For Updates');

% Get rid of the useless "might be unsused" warnings for GUI callbacks
checkboxPlotHRF_Callback([]);
checkboxApplyProcStreamEditToAll_Callback([]);
pushbuttonCalcProcStream_Callback([]);
listboxFilesErr_Callback([]);
uipanelPlot_SelectionChangeFcn([]);
menuItemProcStreamEditGUI_Callback([]);
menuItemPlotProbeGUI_Callback([]);
menuItemSaveGroup_Callback([]);
menuItemViewHRFStdErr_Callback([]);
menuItemStimEditGUI_Callback([]);
pushbuttonProcStreamOptionsGUI_Callback([]);
guiControls_ButtonDownFcn([]);
axesSDG_ButtonDownFcn([]);
popupmenuConditions_Callback([]);
listboxPlotWavelength_Callback([]);
listboxPlotConc_Callback([]);
menuItemChangeGroup_Callback([]);
menuItemExit_Callback([]);
menuItemReset_Callback([]);
menuCopyCurrentPlot_Callback([]);
uipanelProcessingType_SelectionChangeFcn([]);


% ---------------------------------------------------------------------
@@ -358,7 +336,7 @@ listboxGroupTree_Callback([], [1,1,1], handles)


% --------------------------------------------------------------------
function eventdata = uipanelProcessingType_SelectionChangeFcn(hObject, eventdata, handles)
function eventdata = uipanelProcessingType_SelectionChangeFcn(hObject, eventdata, handles)  %#ok<DEFNU>
global maingui

if isempty(hObject)
@@ -443,7 +421,7 @@ Display(handles, hObject0);


% --------------------------------------------------------------------
function [eventdata, handles] = pushbuttonCalcProcStream_Callback(hObject, eventdata, handles)
function [eventdata, handles] = pushbuttonCalcProcStream_Callback(hObject, eventdata, handles) %#ok<DEFNU>
global maingui
if ~ishandles(hObject)
    return;
@@ -704,16 +682,34 @@ end


% --------------------------------------------------------------------
function LaunchChildGuiFromMenu(guiname, h)
function LaunchChildGuiFromMenu(guiname, h, varargin)
global maingui
if ~ishandles(h)
    return;
end
if ~exist('varargin','var')
    varargin = {};
end
idx = FindChildGuiIdx(guiname);
checked = get(h,'checked');
if strcmp(checked, 'off')
    set(h, 'checked', 'on');
    
    % Allow up to 5 parameters to be passed
    switch(length(varargin))
        case 0
            maingui.childguis(idx).Launch();
        case 1
            maingui.childguis(idx).Launch(varargin{1});
        case 2
            maingui.childguis(idx).Launch(varargin{1}, varargin{2});
        case 3
            maingui.childguis(idx).Launch(varargin{1}, varargin{2}, varargin{3});
        case 4
            maingui.childguis(idx).Launch(varargin{1}, varargin{2}, varargin{3}, varargin{4});
        case 5
            maingui.childguis(idx).Launch(varargin{1}, varargin{2}, varargin{3}, varargin{4}, varargin{5});
    end
elseif strcmp(checked, 'on')
    set(h, 'checked', 'off');
    maingui.childguis(idx).Close();
@@ -722,13 +718,14 @@ end


% --------------------------------------------------------------------
function menuItemPlotProbeGUI_Callback(hObject, eventdata, handles)
LaunchChildGuiFromMenu('PlotProbeGUI', hObject);
function menuItemPlotProbeGUI_Callback(hObject, eventdata, handles) %#ok<DEFNU>
global maingui
LaunchChildGuiFromMenu('PlotProbeGUI', hObject, GetDatatype(handles), maingui.condition);



% -------------------------------------------------------------------
function [eventdata, handles] = menuItemStimEditGUI_Callback(hObject, eventdata, handles)
function [eventdata, handles] = menuItemStimEditGUI_Callback(hObject, eventdata, handles) %#ok<DEFNU>
LaunchChildGuiFromMenu('StimEditGUI', hObject);


@@ -1460,8 +1457,7 @@ hf = figure();
set(hf, 'units','characters');
p = get(hf, 'position');
set(hf,'position',[p(1), p(2), xf*p(3), yf*p(4)]);
p = guiOutsideScreenBorders(hf);
set(hf, 'position', [p(1), p(2)-5, p(3), p(4)]);
rePositionGuiWithinScreen(hf);

figure(hf);

@@ -1693,9 +1689,7 @@ else
end
pause(.2)
set(handles.MainGUI, 'position', p);
p = guiOutsideScreenBorders(handles.MainGUI);
set(handles.MainGUI, 'units','characters', 'position',p);
set(handles.MainGUI, 'units',u0);
rePositionGuiWithinScreen(handles.MainGUI);



−8.94 KiB (48.7 KiB)

File changed.

No diff preview for this file type.

Loading