﻿using UnityEditor;
using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;

public class GISFileMassImportWindow : EditorWindow {

	[MenuItem ("GIS/Mass Import")]
	static void Create()
	{
		EditorWindow.GetWindow<GISFileMassImportWindow>();
	}

	string extension = "";
	string path = "";
	bool recursive = true;
	
	void OnGUI ()
	{
		extension = EditorGUILayout.TextField ("filter:", extension);
		path = EditorGUILayout.TextField ("Path:", path);
		if (GUILayout.Button ("Select Folder"))
		{
			path = EditorUtility.OpenFolderPanel("Load png Textures of Directory", "", "");
		}
		
		recursive = GUILayout.Toggle(recursive, "Recursive");

		if (GUILayout.Button ("Mass Import"))
		{
			if (System.IO.Directory.Exists(path))
			{
				ArrayList files = GetFiles(path, extension);
				if (files != null)
				{
					foreach(string file in files)
					{
						string actualfile = file.Replace('\\','/');
						Debug.Log ("Importing file:"+actualfile);
						GISTerrainUtil.ImportingGISFile (actualfile);
					}	
				}
			}
			else
			{
				Debug.Log (path+" does not exist");
			}
		}
	}

	ArrayList GetFiles(string path, string filter)
	{
		string[] files = System.IO.Directory.GetFiles(path, extension);
		string[] dirs = System.IO.Directory.GetDirectories(path);
		ArrayList tempFiles = new ArrayList(files);
		foreach(string dir in dirs)
		{			
			ArrayList subFolderFiles = GetFiles (dir, filter);
			if (subFolderFiles == null)
				continue;
			foreach(string file in subFolderFiles)
			{
				tempFiles.Add(file);
			}
		}

		return tempFiles;
	}
}
