function error = preferencesForm(hTsgGUI) % % Input % ----- % hTsgGUI ............ Handel to the main user interface % % Output % ------ % error .............. 1: OK ; -1 : an error occured % % $Id$ error = -1; % Get the data from the application GUI % ------------------------------------- tsg = getappdata(hTsgGUI, 'tsg_data'); % set default uicontrol size % -------------------------- height = 0.03; length = .15; % Define uicontrol start position % ------------------------------- left = .01; bottom = .95; inc_x = 3 * length; inc_y = 0.01; % preferences Uicontrols in a new figure % --------------------------------- hPreferencesFig = figure(... 'BackingStore','off',... 'Name', 'TSGQC PREFERENCES', ... 'NumberTitle', 'off', ... 'Resize', 'on', ... 'Menubar','none', ... 'Toolbar', 'none', ... 'Tag', 'TSG_PREFERENCES', ... 'Visible','on',... 'WindowStyle', 'modal', ... 'Units', 'normalized',... 'Position',get(hTsgGUI,'Position'), ... 'Color', get(0, 'DefaultUIControlBackgroundColor')); % display Climatology TITLE % ------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height],'String', 'Climatology'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display climatology text % ------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', ... 'Fontsize', tsg.fontSize-1, ... 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'select climatology origin', ... 'String', 'Climatology'); % display climatology uicontrol % ----------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'BackgroundColor', 'w', ... 'Style', 'popupmenu', ... 'Fontsize', tsg.fontSize-2, ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.levitus_version, ... 'Value', tsg.preference.levitus_value, ... 'Tag', 'PREFERENCES_LEVITUS_VALUE',... 'callback', @update_climato_depth); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display climatology depth text % ------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', ... 'Fontsize', tsg.fontSize-1, ... 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'select climatology depth', ... 'String', 'Climatology depth'); % display climatology depth uicontrol % ------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'BackgroundColor', 'w', ... 'Style', 'popupmenu', ... 'Fontsize', tsg.fontSize-2, ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.levitus_depth_string, ... 'Value', tsg.preference.levitus_depth_value, ... 'Tag', 'PREFERENCES_LEVITUS_DEPTH'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display conventions field if exist % ---------------------------------- % uicontrol(... % 'Parent', hPreferencesFig, ... % 'Units', 'normalized', ... % 'Style', 'text', ... % 'Fontsize', tsg.fontSize-2, ... % 'HorizontalAlignment', 'left', ... % 'Position', [left + 2*length, bottom, length, height], ... % 'String', char(s.conventions)); % display Calibration TITLE % -------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height], 'String', 'Calibration coefficient'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display coefficient type text % ----------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, ... 'HorizontalAlignment', 'left', 'Position',[left, bottom, length, height], ... 'TooltipString', 'select coefficients type', ... 'String', 'Coefficients type'); % display coefficient type uicontrol % ---------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'BackgroundColor', 'w', 'Style', 'popupmenu', 'Fontsize', tsg.fontSize-2, ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.coeff_type_string , ... 'Value', tsg.preference.coeff_type_value , ... 'Tag', 'PREFERENCES_COEFF_TYPE'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display Figure TITLE % -------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height], 'String', 'Figure'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display connected line uicontrol % -------------------------------- % display connected line text % ------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', ... 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'select plot with connected line', ... 'String', 'Plot with connectd line'); uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'BackgroundColor', 'w', ... 'Style', 'popupmenu', 'Fontsize', tsg.fontSize-2, ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.plot_connected_string , ... 'Value', tsg.preference.plot_connected_value , ... 'Tag', 'PREFERENCES_PLOT_CONNECTED_LINE'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display map resolution text % ----------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, ... 'HorizontalAlignment', 'left', 'Position',[left, bottom, length, height], ... 'TooltipString', 'select map resolution', ... 'String', 'Map Resolution'); % display map resolution uicontrol % -------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'BackgroundColor', 'w', 'Style', 'popupmenu', 'Fontsize', tsg.fontSize-2, ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.map_resolution_string, ... 'Value', tsg.preference.map_resolution, ... 'Tag', 'PREFERENCES_MAP_RESOLUTION'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display QC Automatic Test TITLE % -------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height], ... 'String', 'Min/Max values for automatic QC'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display ship speed min text % ----------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text','Fontsize', tsg.fontSize-1,'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select ship speed min (knots)', ... 'String', 'Ship Speed Min (knots)'); % display ship speed min uicontrol % -------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', 'BackgroundColor', 'w', ... 'Fontsize', tsg.fontSize-2, 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.ship_speed_min_string, ... 'Tag', 'PREFERENCES_SHIP_SPEED_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display FLOW min text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select min Flow (liter/min)', 'String', 'Flow Min (l/minute)'); % display FLOW min uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.flow_min_string, 'Tag', 'PREFERENCES_FLOW_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display PRESS min text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select min pressure pump', 'String', 'Pressure Min (l/minute)'); % display PRESS min uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.press_min_string, 'Tag', 'PREFERENCES_PRESS_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSPS min text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select min SSPS', 'String', 'SSPS min'); % display SSPS min uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.ssps_min_string, 'Tag', 'PREFERENCES_SSPS_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSPS max text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select max SSPS', 'String', 'SSPS max'); % display SSPS max uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.ssps_max_string, 'Tag', 'PREFERENCES_SSPS_MAX'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSTP min text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select min SSTP', 'String', 'SSTP min (�C)'); % display SSTP min uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.sstp_min_string, 'Tag', 'PREFERENCES_SSTP_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSTP max text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select max SSTP', 'String', 'SSTP max (�C)'); % display SSTP max uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.sstp_max_string, 'Tag', 'PREFERENCES_SSTP_MAX'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSJT min text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select min SSJT', 'String', 'SSJT min (�C)'); % display SSJT min uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.ssjt_min_string, 'Tag', 'PREFERENCES_SSJT_MIN'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display SSJT max text % ---------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Select max SSTP', 'String', 'SSJT max (�C)'); % display SSJT max uicontrol % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'String', tsg.preference.ssjt_max_string, 'Tag', 'PREFERENCES_SSJT_MAX'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display format for dates TITLE % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height], ... 'String', 'Formats used for date and positions'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display date format for variable text % ------------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text','Fontsize', tsg.fontSize-1,'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Format is not available for change', ... 'String', 'Date format for variable:'); % display date format for variable uicontrol % ------------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', 'BackgroundColor', 'w', ... 'Fontsize', tsg.fontSize-2, 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'Enable', 'inactive',... 'TooltipString', 'Format is not available for change', ... 'String', tsg.preference.date_format_variable, ... 'Tag', 'PREFERENCE_DATE_FORMAT_VARIABLE'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display date format for attribute min text % ------------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Format is not available for change', ... 'String', 'Date format for attibute'); % display date format for attribute uicontrol % ------------------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'Enable', 'inactive',... 'TooltipString', 'Format is not available for change', ... 'String', tsg.preference.date_format_attribute, ... 'Tag', 'PREFERENCES_DATE_FORMAT_ATTRIBUTE'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display positions format % ------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'Formats used for positions, DD�MM.SS or decimal', ... 'String', 'Positions format'); % display positions format % ------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'popupmenu', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'TooltipString', 'Formats used for positions', ... 'String', tsg.preference.positions_format_string, ... 'Value', tsg.preference.positions_format_value, ... 'Tag', 'PREFERENCES_POSITIONS_FORMAT'); % goto next column % ---------------- bottom = 0.95; left = left + inc_x; % display DT_SMOOTH TITLE % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, height], ... 'String', 'Smoothing of TSG time-series'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display DT_SMOOTH in text % ------------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'value in minutes, beteewn 0 and 1339)', ... 'String', 'TSG DT SMOOTH (in min)'); % display date format for attribute uicontrol % ------------------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'TooltipString', 'value in minutes, beteewn 0 and 1339)', ... 'String', tsg.preference.dt_smooth , ... 'Tag', 'PREFERENCES_DT_SMOOTH'); bottom = bottom - 4 *inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display MAXDIFF TITLE % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, 1.5 * height], ... 'String', 'Maximum time difference between tsg data and water sample used to compute the difference'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display DT_SMOOTH in text % ------------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'value in minutes, beteewn 0 and 1339, default 5)', ... 'String', 'WS Dime diff (in min)'); % display date format for attribute uicontrol % ------------------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'TooltipString', 'value in minutes, beteewn 0 and 1339, default 5)', ... 'String', tsg.preference.ws_timediff , ... 'Tag', 'PREFERENCES_WS_TIMEDIFF'); bottom = bottom - 4* inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display STDMAX TITLE % ------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize, 'FontWeight', 'bold',... 'HorizontalAlignment', 'Left', ... 'Position',[left, bottom, 2*length, 1.5*height], ... 'String', 'Salinity, in 1 hour interval, should not depart the average for more than SAL_STD_MAX standard deviation'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % display DT_SM in text % ------------------------------------------ uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', ... 'Style', 'Text', 'Fontsize', tsg.fontSize-1, 'HorizontalAlignment', 'left', ... 'Position',[left, bottom, length, height], ... 'TooltipString', 'SSPS STD Max, default 0.1', ... 'String', 'SSPS STD Max'); % display date format for attribute uicontrol % ------------------------------------------- uicontrol(... 'Parent', hPreferencesFig, ... 'Units', 'normalized', 'Style', 'Edit', ... 'Fontsize', tsg.fontSize-2, 'BackgroundColor', 'w', ... 'HorizontalAlignment', 'right', ... 'Position', [left + length, bottom, length, height], ... 'TooltipString', 'SSPS STD Max, default 0.1', ... 'String', tsg.preference.ssps_stdmax , ... 'Tag', 'PREFERENCES_SSPS_STDMAX'); bottom = bottom - inc_y - height; if bottom < .1 bottom = 0.95; left = left + inc_x; end % CONTINUE PUSH BUTTON % -------------------- % The Continue (valid) button uicontrol( ... 'Parent', hPreferencesFig, ... 'Style','pushbutton',... 'Fontsize', tsg.fontSize,... 'Units', 'normalized', ... 'Position',[.01, .01, .1, .04],... 'String','Continue',... 'Interruptible','off',... 'BusyAction','cancel',... 'Tag','PREF_CONTINUE_BUTTON',... 'Callback', @continueCallback); % CANCEL PUSH BUTTON % ------------------ % The cancel button uicontrol( ... 'Parent', hPreferencesFig, ... 'Style','pushbutton',... 'Fontsize', tsg.fontSize,... 'Units', 'normalized', ... 'Position',[.2, .01, .1, .04],... 'String','Cancel',... 'Interruptible','off',... 'BusyAction','cancel',... 'Tag','PREF_CANCEL_BUTTON',... 'Callback', @cancelCallback); % Build structure container for graphic handles with tag property defined. % ------------------------------------------------------------------------ prefs = guihandles(hPreferencesFig); % record data struct in application data object % --------------------------------------------- % guidata(hHeaderFig, data); % stop execution until push-button Continue was press % --------------------------------------------------- uiwait(hPreferencesFig); %% Nested callback % ----------------------------------------------------------------------- % Continue action, get uicontrol fields and populate tsg structure % ----------------------------------------------------------------------- function continueCallback(obj, event) % Save tsg structure % ------------------ setappdata(hTsgGUI, 'tsg_data', tsg); % get the corresponding string from uicontrol using guihandles % and save value in tsg.preferences struct % ------------------------------------------------------------ tsg.preference.levitus_value = ... get(prefs.PREFERENCES_LEVITUS_VALUE, 'value'); tsg.preference.levitus_depth_value = ... get(prefs.PREFERENCES_LEVITUS_DEPTH, 'value'); tsg.preference.coeff_type_value = ... get(prefs.PREFERENCES_COEFF_TYPE, 'value'); % Figure tsg.preference.plot_connected_value = ... get(prefs.PREFERENCES_PLOT_CONNECTED_LINE, 'value'); tsg.preference.map_resolution = ... get(prefs.PREFERENCES_MAP_RESOLUTION, 'value'); tsg.preference.positions_format_value = ... get(prefs.PREFERENCES_POSITIONS_FORMAT, 'value'); % QC Tests tsg.preference.flow_min_string = ... get(prefs.PREFERENCES_FLOW_MIN, 'string'); tsg.preference.press_min_string = ... get(prefs.PREFERENCES_PRESS_MIN, 'string'); tsg.preference.ship_speed_min_string = ... get(prefs.PREFERENCES_SHIP_SPEED_MIN, 'string'); tsg.preference.ssps_min_string = ... get(prefs.PREFERENCES_SSPS_MIN, 'string'); tsg.preference.ssps_max_string = ... get(prefs.PREFERENCES_SSPS_MAX, 'string'); tsg.preference.ssjt_min_string = ... get(prefs.PREFERENCES_SSJT_MIN, 'string'); tsg.preference.ssjt_max_string = ... get(prefs.PREFERENCES_SSJT_MAX, 'string'); tsg.preference.sstp_min_string = ... get(prefs.PREFERENCES_SSTP_MIN, 'string'); tsg.preference.sstp_max_string = ... get(prefs.PREFERENCES_SSTP_MAX, 'string'); tsg.preference.dt_smooth = ... get(prefs.PREFERENCES_DT_SMOOTH, 'string'); tsg.preference.ws_timediff = ... get(prefs.PREFERENCES_WS_TIMEDIFF, 'string'); tsg.preference.ssps_stdmax = ... get(prefs.PREFERENCES_SSPS_STDMAX, 'string'); % Save tsg structure % ------------------ setappdata(hTsgGUI, 'tsg_data', tsg); % update structure tsg with derived value % --------------------------------------- updateTsgStructWithSmoothVars(hTsgGUI) % fill tsg calibration variables % ------------------------------ updateTsgStructWithCalCoeff(hTsgGUI); % close windows (replace call to uiresume(hHeaderFig)) % ---------------------------------------------------- close(hPreferencesFig); % flushes the event queue and updates the figure window % ----------------------------------------------------- drawnow; % refresh QC statistic panel % -------------------------- display_QC( hTsgGUI ); % return with no error code (true) % -------------------------------- error = 1; return end % ----------------------------------------------------------------------- % Cancel button, no action % ----------------------------------------------------------------------- function cancelCallback(obj, event) % close windows % ------------- close(hPreferencesFig); % flushes the event queue and updates the figure window % ----------------------------------------------------- drawnow; % return error code (no change) % ----------------------------- error = -1; end % end of cancelCallback nested function % The climatology level are not the same between WOA and ISAS % ----------------------------------------------------------- function update_climato_depth(obj, event) disp(get(prefs.PREFERENCES_LEVITUS_VALUE, 'value')) if get(prefs.PREFERENCES_LEVITUS_VALUE, 'value') == 3 set(prefs.PREFERENCES_LEVITUS_DEPTH, 'string', {'5', '10'}); else set(prefs.PREFERENCES_LEVITUS_DEPTH, 'string', {'0', '10'}); end end end