using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using Tango.Core.Commands;
using Tango.FileSystem;
namespace Tango.FSE.Common.Storage
{
///
/// Represents a local storage provider for browsing through the local file system.
///
public interface IStorageProvider
{
///
/// Gets or sets a value indicating whether use the native file system dialogs.
///
bool UseNativeDialogs { get; set; }
///
/// Invokes a single file open dialog.
///
/// The title.
/// The filter.
/// The initial folder.
///
Task OpenFile(String title, String filter = null, String initialFolder = null);
///
/// Invokes a multi select file open dialog.
///
/// The title.
/// The filter.
/// The initial folder.
///
Task OpenFiles(String title, String filter = null, String initialFolder = null);
///
/// Invokes a multi select file/folder open dialog.
///
/// The title.
/// The filter.
/// The initial folder.
///
Task SelectFilesAndFolders(String title, String filter = null, String initialFolder = null);
///
/// Invokes a file save dialog.
///
/// The title.
/// The filter.
/// Default name of the file.
/// The default extension.
/// The initial folder.
///
Task SaveFile(String title, String filter = null, String defaultFileName = null, String defaultExtension = null, String initialFolder = null);
///
/// Invokes a single folder selection dialog.
///
/// The title.
/// The initial folder.
///
Task SelectFolder(String title, String initialFolder = null);
///
/// Opens the windows explorer and select the specified file or folder.
///
/// The file or folder path.
///
Task ShowInExplorer(String path);
}
}