Newer
Older
% TSGQC: Thermosalinograph (TSG) Quality Control software
%% COPYRIGHT & LICENSE
% Copyright 2007 - IRD US191, all rights reserved.
%
% This file is part of tsgqc.
% TSG-QC is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% tsgqc is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with Datagui; if not, write to the Free Software
% Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
%% TIPS
% To get tsg anywhere during debug:
% tsg = getappdata( findobj('Tag', 'TAG_TSG-QC_GUI'), 'tsg_data')

jacques.grelet_ird.fr
committed
%% Define global variables for VERSIONING
% ---------------------------------------

jacques.grelet_ird.fr
committed
global CHAR_VERSION

jacques.grelet_ird.fr
committed
global GOSUD_FORMAT_VERSION

jacques.grelet_ird.fr
committed
% version number, may be used to initialize some files when it change
% 0.90x -> 1.0RCx
% -------------------------------------------------------------------

jacques.grelet_ird.fr
committed
CHAR_VERSION = '1.41';

jacques.grelet_ird.fr
committed
% netcdf file version, see DATA FORMAT TSG document:

jacques.grelet_ird.fr
committed
% --------------------------------------------------

jacques.grelet_ird.fr
committed
GOSUD_FORMAT_VERSION = '3.02';

jacques.grelet_ird.fr
committed
%% Initialization tasks
% ********************
% Clear Command Window display, giving up a "clean screen."
% ---------------------------------------------------------
clc;
% Find program directory.
% functions (icons) should be store at a lower level
% add directories to Matlab search path, works on UNIX
% and Windows host
% ---------------------------------------------------
tsgqcname = mfilename;
fulltsgqcname = mfilename('fullpath');

jacques.grelet_ird.fr
committed
% regular expression expr if it occurs at the end of the input string
% -------------------------------------------------------------------
expr = strcat(tsgqcname, '$');
% get pathname
% ------------
DEFAULT_PATH_FILE = regexprep(fulltsgqcname, expr, '');
% update Matlab pathdef only for session
% --------------------------------------
DEFAULT_PATH_FILE,[ 'tsg_util' pathsep],...
DEFAULT_PATH_FILE,[ 'tsg_data' pathsep],...
DEFAULT_PATH_FILE,[ 'tsg_io' pathsep]
addpath( p, '-BEGIN' );
rehash;
% define 'HandleVisibility' property for all objects
% --------------------------------------------------
handleVisibility = 'on';

jacques.grelet_ird.fr
committed
% % get screen dimensions (pixels)
% % ------------------------------
% set(0,'Units','pixels');
% screenSize = get(0,'ScreenSize');
%
% % set default font size
% % ---------------------
% if screenSize(3) <= 1024
% tsg.fontSize = 9;
% else
% tsg.fontSize = 11;
% end
% Screen limits for the GUI
% -------------------------
set(0,'Units','normalized');
guiLimits = get(0,'ScreenSize');
guiLimits(1) = guiLimits(1) + 0.01;
guiLimits(2) = guiLimits(2) + 0.05;
guiLimits(3) = guiLimits(3) - 0.02;
guiLimits(4) = guiLimits(4) - 0.15;
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
%% Optional arguments
% --------------------
inputFile = '';
outputFile = '';
display = 'off';
% parse and set optional arguments with couple 'property', 'value'
% -----------------------------------------------------------------
property_argin = varargin(1:end);
while length(property_argin) >= 2,
property = property_argin{1};
value = property_argin{2};
property_argin = property_argin(3:end);
switch lower(property)
case {'inputfile', 'input'}
inputFile = value;
case {'outputfile', 'output'}
outputFile = value;
case 'display'
display = value;
otherwise
error('Unknow property: "%s"', property);
end
end
% if property display is set to display, display them and quit
% -----------------------------------------------------------
if strcmp(display, 'on')
fprintf('inputFile: %s\noutpuFile: %s\n', inputFile, outputFile);
return;
end
%% Main TSGQC GUI
% ---------------
% Check if main TSGQC figure exist
% --------------------------------
hMainFig = findobj('Tag', 'TAG_TSG-QC_GUI');
% if TSGQC figure exist and still running, don't create a new instance
% --------------------------------------------------------------------
if ~isempty(hMainFig)
% ---------------------------------
errordlg({'An instance of TSGQC is still running !!!', ...
'Open it from you task bar'}, 'Warning TSGQC');
return;
% Create and then hide the GUI as it is being constructed.
% --------------------------------------------------------
hMainFig = figure(...
'Name', 'TSG Validation', ...
'NumberTitle', 'off', ...
'Resize', 'on', ...
'Toolbar', 'none', ...
'UserData', 'ButtonMotionOff', ...
'WindowButtonMotionFcn', @MouseMotion, ...

jacques.grelet_ird.fr
committed
'CloseRequestFcn', @QuitMenuCallback,...
'Visible','on',...
'Tag','TAG_TSG-QC_GUI',...
'Units', 'normalized',...
'Position',guiLimits, ...
'Color', get( 0, 'DefaultUIControlBackgroundColor' ));

jacques.grelet_ird.fr
committed
%% Check Matlab version for use of KeyPressFcn and KeyReleaseFcn properties
% -------------------------------------------------------------------------
switch ( version('-release') )
case { '11', '12', '13', '14', '2006a', '2006b' }
% dont process KeyPressFcn and KeyReleaseFcn events
otherwise
% show crossline when shitf key is pressed, vertical bar when ctrl key
% --------------------------------------------------------------------
set( hMainFig, 'KeyPressFcn', @keyPressFcnCallback,...
'KeyReleaseFcn', @keyReleaseFcnCallback);
end
%% Initialize tsg structure with tsg_preference function
% -----------------------------------------------------
tsg_preferences(hMainFig, tsgqcname, DEFAULT_PATH_FILE);
% Retrieve named application data
% -------------------------------
tsg = getappdata( hMainFig, 'tsg_data');

jacques.grelet_ird.fr
committed
%% Menu File
% -----------------------------------------------------------------------
Loading
Loading full blame...