function ddb_Delft3DFLOW_generateLayers(varargin)
%DDB_DELFT3DFLOW_GENERATELAYERS  One line description goes here.
%
%   More detailed description goes here.
%
%   Syntax:
%   ddb_Delft3DFLOW_generateLayers(varargin)
%
%   Input:
%   varargin =
%
%
%
%
%   Example
%   ddb_Delft3DFLOW_generateLayers
%
%   See also

%% Copyright notice
%   --------------------------------------------------------------------
%   Copyright (C) 2011 Deltares
%       Maarten van Ormondt
%
%       Maarten.vanOrmondt@deltares.nl
%
%       P.O. Box 177
%       2600 MH Delft
%       The Netherlands
%
%   This library 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 3 of the License, or
%   (at your option) any later version.
%
%   This library 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 this library.  If not, see <http://www.gnu.org/licenses/>.
%   --------------------------------------------------------------------

% This tool is part of <a href="http://www.OpenEarth.eu">OpenEarthTools</a>.
% OpenEarthTools is an online collaboration to share and manage data and
% programming tools in an open source, version controlled environment.
% Sign up to recieve regular updates of this function, and to contribute
% your own tools.

%% Version <http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html>
% Created: 29 Nov 2011
% Created with Matlab version: 7.11.0.584 (R2010b)

% $Id: ddb_Delft3DFLOW_generateLayers.m 11463 2014-11-27 13:29:28Z ormondt $
% $Date: 2014-11-27 14:29:28 +0100 (Thu, 27 Nov 2014) $
% $Author: ormondt $
% $Revision: 11463 $
% $HeadURL: https://svn.oss.deltares.nl/repos/openearthtools/trunk/matlab/applications/DelftDashBoard/models/Delft3DFLOW/gui/ddb_Delft3DFLOW_generateLayers.m $
% $Keywords: $

%%
if isempty(varargin)
    ddb_zoomOff;
    % Make new GUI
    handles=getHandles;
    xmldir=handles.model.delft3dflow.xmlDir;
    xmlfile='model.delft3dflow.generatelayers.xml';
    if strcmpi(handles.model.delft3dflow.domain(ad).layerType,'z')
        handles.model.delft3dflow.domain(ad).layerOption=1;
    end
    for k=1:handles.model.delft3dflow.domain(ad).KMax
        handles.model.delft3dflow.domain(ad).layerStrings{k}=num2str(handles.model.delft3dflow.domain(ad).thick(k),'%8.3f');
    end
    
    h=handles.model.delft3dflow.domain(ad);

    [h,ok]=gui_newWindow(h,'xmldir',xmldir,'xmlfile',xmlfile,'iconfile',[handles.settingsDir filesep 'icons' filesep 'deltares.gif'],'modal',0);

    if ok
        handles.model.delft3dflow.domain(ad)=h;
        setHandles(handles);
        gui_updateActiveTab;
    end
    
else
    opt=varargin{1};
    switch lower(opt)
        case{'generatelayers'}
            generateLayers;
    end
end

%%
function generateLayers

handles=gui_getUserData;

switch handles.layerOption
    case 1
        % Increasing from surface
        thick=generateLayerThickness('kmax',handles.KMax,'type',handles.layerType, ...
            'zbot',handles.zBot,'ztop',handles.zTop, ...
            'thicktop',handles.thickTop);
    case 2
        % Increasing from bottom
        thick=generateLayerThickness('kmax',handles.KMax,'type',handles.layerType, ...
            'zbot',handles.zBot,'ztop',handles.zTop, ...
            'thickbot',handles.thickBot);
    case 3
        % Increasing from top and bottom
        thick=generateLayerThickness('kmax',handles.KMax,'type',handles.layerType, ...
            'zbot',handles.zBot,'ztop',handles.zTop, ...
            'thicktop',handles.thickTop,'thickbot',handles.thickBot);
    case 4
        % Equidistant
        thick=generateLayerThickness('kmax',handles.KMax,'type',handles.layerType, ...
            'zbot',handles.zBot,'ztop',handles.zTop);
end

handles.thick=thick';

handles.layerStrings=[];
for k=1:handles.KMax
    handles.layerStrings{k}=num2str(handles.thick(k),'%8.3f');
end

gui_setUserData(handles);
