//Copyright (C) 2014+ Marco (Phoenix) Calautti.

//This program 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, version 2.0.

//This program 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 2.0 for more details.

//A copy of the GPL 2.0 should have been included with the program.
//If not, see http://www.gnu.org/licenses/

//Official repository and contact information can be found at
//http://github.com/marco-calautti/Rainbow

using Rainbow.ImgLib.Formats;
using Rainbow.ImgLib.Formats.Implementation;

namespace Rainbow.App.GUI.Model
{
    public static class PropertyGridObjectFactory
    {
        public static TexturePropertyGridObject Create(TextureFormat texture)
        {
            if (texture.GetType() == typeof(TIM2Texture))
                return new TIM2PropertyGridObject((TIM2Texture)texture);
            else if (texture.GetType() == typeof(PE3DATTexture))
                return new PE3DATPropertyGridObject((PE3DATTexture)texture);
            else if (texture.GetType() == typeof(NamcoTexture))
                return new NamcoTexturePropertyGridObject((NamcoTexture)texture);
            else if (texture.GetType() == typeof(TPLTexture))
                return new TPLTexturePropertyGridObject((TPLTexture)texture);
            else
                return new TexturePropertyGridObject(texture);
        }
    }
}
