[Master Index] [Index for Toolbox]

# bst_win_manager

## (Toolbox/bst_win_manager.m in BrainStorm 2.0 (Alpha))

### Function Synopsis

    BrainStormWindows = bst_win_manager(Fig,WinType);

### Help Text

    BST_WIN_MANAGER - GUI Window management for BrainStorm
     function BrainStormWindows = bst_win_manager(Fig,WinType);
     Utility routine for GUI window management in BrainStorm
     Updates the appdata from the Taskbar called 'BrainStormWindows'
     Fig is a figure handle corresponding to an active GUI
     WinType is an optional tag that describes the type of GUI corresponding to figure Fig
     WinType may be any string of characters like one of the following
     which are conventional WinTypes for main BrainStorm windows/GUIs:
     - 'DataManager' : windows associated with the database manager
     - 'DataViewer'  : viewing data
     - 'MRIView'     : viewing MRI images and source localizations
     - 'Results'     : showing source estimation results
     - 'Source'      : setting-up for source estimation
     - 'Head'        : generating head models
     - 'Message'     : Associated with some general message to the user
     - 'Other'       : windows not fitting above (Default type when WinType is not specified)

     Return BrainStormWindows, a structure with fields as described above with handles to all BsT's current GUI figures

### Cross-Reference Information

This function is called by

    bst_static_taskbar                 C:\BrainStorm_2001\Toolbox\bst_static_taskbar.m
    data_manager                       C:\BrainStorm_2001\Toolbox\data_manager.m
    dataplot_cb                        C:\BrainStorm_2001\Toolbox\dataplot_cb.m
    headmodeler_gui                    C:\BrainStorm_2001\Toolbox\headmodeler_gui.m
    importdata                         C:\BrainStorm_2001\Toolbox\importdata.m
    sourceimaging                      C:\BrainStorm_2001\Toolbox\sourceimaging.m
    study_editor                       C:\BrainStorm_2001\Toolbox\study_editor.m
    subject_editor                     C:\BrainStorm_2001\Toolbox\subject_editor.m

### Listing of function C:\BrainStorm_2001\Toolbox\bst_win_manager.m

    function BrainStormWindows = bst_win_manager(Fig,WinType);
    %BST_WIN_MANAGER - GUI Window management for BrainStorm
    % function BrainStormWindows = bst_win_manager(Fig,WinType);
    % Utility routine for GUI window management in BrainStorm
    % Updates the appdata from the Taskbar called 'BrainStormWindows'
    % Fig is a figure handle corresponding to an active GUI
    % WinType is an optional tag that describes the type of GUI corresponding to figure Fig
    % WinType may be any string of characters like one of the following
    % which are conventional WinTypes for main BrainStorm windows/GUIs:
    % - 'DataManager' : windows associated with the database manager
    % - 'DataViewer'  : viewing data
    % - 'MRIView'     : viewing MRI images and source localizations
    % - 'Results'     : showing source estimation results
    % - 'Source'      : setting-up for source estimation
    % - 'Head'        : generating head models
    % - 'Message'     : Associated with some general message to the user
    % - 'Other'       : windows not fitting above (Default type when WinType is not specified)
    %
    % Return BrainStormWindows, a structure with fields as described above with handles to all BsT's current GUI figures

    %<autobegin> ---------------------- 26-May-2004 11:29:51 -----------------------
    % --------- Automatically Generated Comments Block Using AUTO_COMMENTS ---------
    %
    % CATEGORY: GUI and Related
    %
    % Alphabetical list of external functions (non-Matlab):
    %   toolbox\brainstorm.m
    %
    % Application data and their calls in this file:
    %   'BrainStormWindows'
    %
    %   setappdata(TASKBAR,'BrainStormWindows',BrainStormWindows);
    %
    %   BrainStormWindows = getappdata(TASKBAR,'BrainStormWindows');
    %
    % At Check-in: $Author: Mosher $  $Revision: 17 $  $Date: 5/26/04 9:59a $
    %
    % This software is part of BrainStorm Toolbox Version 2.0 (Alpha) 24-May-2004
    %
    % Principal Investigators and Developers:
    % ** Richard M. Leahy, PhD, Signal & Image Processing Institute,
    %    University of Southern California, Los Angeles, CA
    % ** John C. Mosher, PhD, Biophysics Group,
    %    Los Alamos National Laboratory, Los Alamos, NM
    % ** Sylvain Baillet, PhD, Cognitive Neuroscience & Brain Imaging Laboratory,
    %    CNRS, Hopital de la Salpetriere, Paris, France
    %
    % See BrainStorm website at http://neuroimage.usc.edu for further information.
    %
    % Copyright (c) 2004 BrainStorm by the University of Southern California
    % This software distributed  under the terms of the GNU General Public License
    % as published by the Free Software Foundation. Further details on the GPL
    % license can be found at http://www.gnu.org/copyleft/gpl.html .
    %
    % FOR RESEARCH PURPOSES ONLY. THE SOFTWARE IS PROVIDED "AS IS," AND THE
    % UNIVERSITY OF SOUTHERN CALIFORNIA AND ITS COLLABORATORS DO NOT MAKE ANY
    % WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
    % MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, NOR DO THEY ASSUME ANY
    % LIABILITY OR RESPONSIBILITY FOR THE USE OF THIS SOFTWARE.
    %<autoend> ------------------------ 26-May-2004 11:29:51 -----------------------

    % /--- Script Authors -----------------------------------\
    % |                                                      |
    % | *** Sylvain Baillet Ph.D.                            |
    % | Cognitive Neuroscience & Brain Imaging Laboratory    |
    % | CNRS UPR640 - LENA                                   |
    % | Hopital de la Salpetriere, Paris, France             |
    % | sylvain.baillet@chups.jussieu.fr                     |
    % |                                                      |
    % | *** John C. Mosher, Ph.D.                            |
    % |    Biophysics Group                                  |
    % |    Los Alamos National Laboratory                    |
    % |    Los Alamos, New Mexico, USA                       |
    % |                                                      |
    % \------------------------------------------------------/
    %
    % Date of creation: April 2002
    % Script History ---------------------------------------------------------------
    % SB  28-May-2002 Minor upgrade when nargin ==1
    % SB  08-Aug-2002 Added feature so that any WinType is admissible.
    % JCM 09-Sep-2003 Commenting, removing old taskbar
    % JCM 11-May-2004 Removing old handles if figures no longer exist, old "if" test
    %                 switch
    % ------------------------------------------------------------------------------

    % Get handle to BrainStorm's Taskbar
    % JCM moved it to the new taskbar
    TASKBAR = findobj(0,'Tag','static_taskbar');
    BrainStormWindows = getappdata(TASKBAR,'BrainStormWindows'); % return empty if not defined

    if isempty(BrainStormWindows) % Define the whole structure
       BrainStormWindows  = struct('All',[],'DataManager',[],'DataViewer',[],'MRIView',[],...
          'Results',[],'Source',[],'Head',[],'Message',[],'Other',[]);
    end

    if nargin == 0
       Fig = [];
       WinType = 'Other';
    else
       if ~ishandle(Fig)
          errordlg('Not a proper figure handle','bst_win_manager error')
          return
       end
    end

    if nargin == 1
       WinType = 'Other'; % Assign default window type
    else
       BrainStormWindows.All = unique([BrainStormWindows.All(ishandle(BrainStormWindows.All)),Fig]);
    end

    switch(lower(WinType))
       case 'datamanager'
          BrainStormWindows.DataManager = Fig;
       case 'dataviewer'
          % The ishandle command ensure that all entries are valid and current figure handles
          BrainStormWindows.DataViewer = unique([BrainStormWindows.DataViewer(ishandle(BrainStormWindows.DataViewer)),Fig]);
       case 'mrriview'
          BrainStormWindows.MRIView = unique([BrainStormWindows.MRIView(ishandle(BrainStormWindows.MRIView)),Fig]);
       case 'results'
          BrainStormWindows.Results = unique([BrainStorm.Results(ishandle(BrainStorm.Results)),Fig]);
       case 'source'
          BrainStormWindows.Source = Fig;
       case 'head'
          BrainStormWindows.Head = Fig;
       case 'message'
          BrainStormWindows.Message = unique([BrainStormWindows.Message(ishandle(BrainStormWindows.Message)),Fig]);

          %     case 'other'
          %         BrainStormWindows.Other = unique([BrainStormWindows.Other(ishandle(BrainStormWindows.Other)),Fig]);
          %
       otherwise % Create a new type of window

          %errordlg(sprintf('Figure Window of unauthorized type %s',WinType),'Error from bst_win_manager')
          %return
          % Check if new type of window exists

          if ~isfield(BrainStormWindows,WinType) % If not : initialization to empty field.
             BrainStormWindows = setfield(BrainStormWindows,WinType,[]);
          end
          eval(sprintf('BrainStormWindows.%s = unique([BrainStormWindows.%s(ishandle(BrainStormWindows.%s)),Fig]);',WinType,WinType,WinType));

    end

    % final sanity check of all figures

    NAMES = fieldnames(BrainStormWindows); % all of the fields

    for i = 1:length(NAMES),
       % for each field name
       ndx = eval(['find(ishandle(BrainStormWindows.',NAMES{i},'));']); % valid figure handles
       eval(['BrainStormWindows.',NAMES{i},' = BrainStormWindows.',NAMES{i},'(ndx);']); % keep only the good
    end

    setappdata(TASKBAR,'BrainStormWindows',BrainStormWindows);

Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Oct 12 12:05:14 2004
Cross-Directory links are: ON