Skip to content
Snippets Groups Projects
tsgqc_GUI.m 76.5 KiB
Newer Older
  %------------------------------------------------------------------------
  % Callback function run when the Levitus climatology toolbar is unselected
  %------------------------------------------------------------------------
  function Clim_OnMenuCallback(hObject, eventdata)
    % Test if the TSG and bucket files have been read
    % -----------------------------------------------
    if strcmp( get(hOpenMenu, 'UserData'), 'on' )
      
    end
  end

%% ClimatoSelectMenuCallback
  % -------------------------------------------------------------------
  % Callback function run when climato submenu is selected
  % -------------------------------------------------------------------
  function ClimatoSelectMenuCallback(hObject, eventdata, climato, time)
    
    % find all climato submenu and set 'checked' property to 'off'
    % ------------------------------------------------------------
    hdl = findobj( '-regexp', 'tag', 'TAG_UIMENU_CLIMATO');
    set(hdl, 'checked', 'off');
    
    % set current climato submenu checked
    % -----------------------------------
    set(hObject, 'checked', 'on');
    
    % memorize action on climatology menu for next use
    % ------------------------------------------------
    s.type = climato;
    s.time = time;
    set(hClimatoMenu, 'userdata', s);
    
    % check if climatology toggle button is set
    % -----------------------------------------
    if strcmp(get(hClimToggletool, 'state'), 'on')
      % clear last plotted climatology
      % ------------------------------
      Clim_OffMenuCallback;
      % plot and read (eventually) new climatology
      % ------------------------------------------
      plot_Climatology(hMainFig, hPlotAxes);
%% PreferencesMenuCallback
  % -------------------------------------------------------------------
  % Callback function run when Option/Preference is selected
  % -------------------------------------------------------------------
  function PreferencesMenuCallback(hObject, eventdata)
    
    % Test if the preference menu is allready checked
    % -----------------------------------------------
    if strcmp( get(hObject, 'checked'), 'on' )
      
      % set preference autoload off (unchecked)
      % ---------------------------------------
      root.preference.autoload = 'off';
      
    else
      
      % set preference autoload on (checked)
      % ------------------------------------
      root.preference.autoload = 'on';
      
    end

     % set current option/preference submenu state
     % -------------------------------------------
     set(hObject, 'checked', root.preference.autoload);
     
    % store root struct to root UserData
    % ----------------------------------
    set(0, 'userdata', root);
    
  end

% -------------------------------------------------------------------
% Callback function run when the headerForm tool bar item is selected
% -------------------------------------------------------------------
    % call header form function
    % -------------------------
    headerForm(hMainFig);
% -------------------------------------------------------------------
% Callback function run when the Save menu item is selected
% -------------------------------------------------------------------
    % Retrieve named application data
    % -------------------------------
    tsg = getappdata( hMainFig, 'tsg_data');

    % fill or append header form
    % -------------------------
    error = headerForm(hMainFig);

    % if user press continue button, ask for netcdf file
    % ------------------------------------------------
    if error ~= -1
      [fileName, pathName, filterindex] = uiputfile('*.nc', ...
        'Save file name', strcat(tsg.file.name, '.nc'));
      % if user press cancel button, all var are set to zero
      % ----------------------------------------------------
      if filterindex == 0
        return;
      end

      % Pointer set to watch during reading and plotting
      % ------------------------------------------------
      set( hMainFig, 'Pointer', 'watch' );

      % flushes the event queue and updates the closed uiputfile window
      % ---------------------------------------------------------------
      drawnow;

      % write netcdf file
      % -----------------
      error = writeTSGDataNetCDF(hMainFig, strcat(pathName, fileName));

      % Pointer reset to arrow
      % ----------------------
      set( hMainFig, 'Pointer', 'arrow' );

      % Check for NetCDF writing error 
      % ------------------------------
        warning('tsgqc_GUI:SaveMenuCallback', ...
                'NetCDF writing error: %s %s', pathName, fileName);
      % update the display
      % ------------------
      set( hInfoFileText, 'String', fileName);
      % enable Quality Control mode
      % ---------------------------
      hdl_pushtool = findobj('Tag', 'QC');
      set(hdl_pushtool, 'Enable', 'on');
%% UndoMenuCallback
  % -----------------------------------------------------------------------
  % Callback function run when the Edit/Undo menu item is selected (Ctrl+Z)
  % -----------------------------------------------------------------------
  function UndoMenuCallback(hObject, eventdata)  
 
    % Undo module not yet implemented
    % -------------------------------
    % msgbox('Undo module not yet implemented', 'modal');
    
    tsg.queue = undo(tsg.queue);
    tsg.SSPS_QC = get(tsg.queue);
   
    % Make the Salinity, temperature and velocity plot
    % ------------------------------------------------
    plot_SalTempVel( hMainFig, hPlotAxes );

  end

%% RedoMenuCallback
  % -----------------------------------------------------------------------
  % Callback function run when the Edit/Redo menu item is selected (Ctrl+R)
  % -----------------------------------------------------------------------
  function RedoMenuCallback(hObject, eventdata)  
 
    % Redo module not yet implemented
    % -------------------------------
    msgbox('Redo module not yet implemented', 'modal');
    
  end

  % -----------------------------------------------------------------
  % Callback function run when the Quit menu item is selected
  % -----------------------------------------------------------------
  function QuitMenuCallback(hObject, eventdata)  
    % get root struct from root object
    % --------------------------------
    root = get(0,'Userdata');

    % save config mat file in prefdir
    % -------------------------------
    config_file = [prefdir, filesep, tsgqcname, '.mat'];

    % set tsg.levitus empty before save preferences in mat file
    % ---------------------------------------------------------
    tsg.levitus = [];

    % save preference mat file
    % ------------------------
    save( config_file, 'root', 'tsg');

    % If the data have been modified and not save, the program
    % --------------------------------------------------------
    if  strcmp( get( hSaveMenu, 'UserData' ), 'on')
      selection = ...
        questdlg('The file has been modified.  Do you want to save it ?',...
        'Save before Quit?',...
        'Yes', 'No', 'Yes');
        
        % call File/Save Menu Callback before before quit
        % -----------------------------------------------
        SaveMenuCallback;
             
      
      % quit program
      % ------------
    else
      selection = ...
        questdlg(['Quit ' get(hMainFig, 'Name') '?'],...
        ['Quit ' get(hMainFig, 'Name') '?'],...
        'Yes', 'No', 'Yes');
      if strcmp(selection, 'No')
        return;
      else
% end of tsgqc_GUI
% ----------------
end