// Copyright | Raumgleiter AG | 2019 | All Rights Reserved //*********************************************************************************************************************** //Headers using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using Raumgleiter.BaseRGDK.Development; using SFB; //*********************************************************************************************************************** namespace Raumgleiter.BaseRGDK.UI { /// /// A wrapper class for different file explorers /// public class NativeFileExplorer_Standalone : NativeFileExplorer { //Connections //[Header("Connections")] //Resources //[Header("Resources")] //Attributes //[Header("Attributes")] //Stats //[Header("Stats")] //protected bool IsSetUp = false; ExplorerCallback CurrentCallback; //Getter //Delegates //------------------------------------------------------------------------------------------------------------------ //awake //------------------------------------------------------------------------------------------------------------------ //start //------------------------------------------------------------------------------------------------------------------ //setup //public void SetUp() //{ // IsSetUp = true; //} //------------------------------------------------------------------------------------------------------------------ //destroy //*********************************************************************************************************************** //update //*********************************************************************************************************************** //refresh //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //events protected void Callback(string[] paths) { if(CurrentCallback == null) { return; } CurrentCallback(paths.ToList()); } //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //private //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //protected protected ExtensionFilter[] ConvertFilter(string[] fileTypeFilter) { //Has any entries? if(fileTypeFilter == null || fileTypeFilter.Length == 0) { return new ExtensionFilter[] { new ExtensionFilter( "Alle Dateien", new string[]{ "*" }) }; } //Remove . before extension string[] FileTypeFilter = fileTypeFilter; for (int i = 0; i < FileTypeFilter.Length; i++) { if (FileTypeFilter[i].Length > 1 && FileTypeFilter[i].Substring(0, 1) == ".") { } FileTypeFilter[i] = FileTypeFilter[i].Substring(1); } //Convert to filter return new ExtensionFilter[] { new ExtensionFilter( "Benutzerdefinierte Dateien", fileTypeFilter) }; } //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //internal //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //public public override void Open( ExplorerMode mode, ExplorerCallback callback, string startPath = "", string[] fileTypeFilter = null, string title = "", bool displayHiddenFiles = false) { //Get Data CurrentCallback = callback; //Switch on mode switch (mode) { case ExplorerMode.Directory: //Open StandaloneFileBrowser.OpenFolderPanelAsync( title: title, directory: startPath, multiselect: false, cb: Callback); break; case ExplorerMode.OneFile: case ExplorerMode.MultipleFiles: //Open StandaloneFileBrowser.OpenFilePanelAsync( title: title, directory: startPath, extensions: ConvertFilter(fileTypeFilter), multiselect: mode == ExplorerMode.MultipleFiles, cb: Callback); break; default: DBug.NOT_YET_IMPLEMENTED(); break; } } //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //public static //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //getter, setter //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ } }