protected virtual BrowseResult BrowseFolder(BrowseOptions options) { var result = default(BrowseResult); Windows.Invoke(() => { //TODO: Use only WPF frameworks. using (var dialog = new global::System.Windows.Forms.FolderBrowserDialog()) { dialog.Description = options.Title; if (Directory.Exists(options.Path)) { dialog.SelectedPath = options.Path; } var window = Windows.ActiveWindow; var success = default(bool); switch (dialog.ShowDialog(new Win32Window(window.GetHandle()))) { case global::System.Windows.Forms.DialogResult.OK: success = true; break; } result = new BrowseResult(new[] { dialog.SelectedPath }, success); } //TODO: Bad .Wait(). }).Wait(); return(result); }
public bool GetBrowseFolder(string fileName, out string directoryName) { lock (SyncRoot) { if (string.IsNullOrEmpty(this._BrowseFolder)) { var path = default(string); if (FileSystemHelper.IsLocalPath(fileName)) { path = Path.GetDirectoryName(fileName); } var options = new BrowseOptions( "Save As", path, Enumerable.Empty <BrowseFilter>(), BrowseFlags.Folder ); var result = this.FileSystemBrowser.Browse(options); if (!result.Success) { Logger.Write(this, LogLevel.Debug, "Save As folder browse dialog was cancelled."); directoryName = null; return(false); } this._BrowseFolder = result.Paths.FirstOrDefault(); Logger.Write(this, LogLevel.Debug, "Browse folder: {0}", this._BrowseFolder); } } directoryName = this._BrowseFolder; return(true); }
public Task OpenCue() { var options = new BrowseOptions( "Open", string.Empty, new[] { new BrowseFilter("Cue sheets", new[] { CUE }) }, BrowseFlags.File ); var result = this.FileSystemBrowser.Browse(options); if (!result.Success) { #if NET40 return(TaskEx.FromResult(false)); #else return(Task.CompletedTask); #endif } return(this.OpenCue(this.PlaylistManager.SelectedPlaylist, result.Paths.FirstOrDefault())); }
public void NegotiateBrowseIssueParametersReturnsFailureForMissingProject(BrowseOptions options) { options.Project = ""; var sut = new IssueParametersNegotiator(); sut.NegotiateBrowseParameters(options, "").IsFailure.Should().BeTrue(); }
protected virtual BrowseResult BrowseFile(BrowseOptions options) { var result = default(BrowseResult); Windows.Invoke(() => { var dialog = new OpenFileDialog() { Title = options.Title, Filter = GetFilter(options.Filters), Multiselect = options.Flags.HasFlag(BrowseFlags.Multiselect), }; if (File.Exists(options.Path)) { dialog.InitialDirectory = Path.GetDirectoryName(options.Path); dialog.FileName = options.Path; } else if (Directory.Exists(options.Path)) { dialog.InitialDirectory = options.Path; } var window = Windows.ActiveWindow; var success = dialog.ShowDialog(window); result = new BrowseResult(dialog.FileNames, success.GetValueOrDefault()); //TODO: Bad .Wait(). }).Wait(); return(result); }
public void Browse() { var directoryName = this.Sources.Select( playlistItem => playlistItem.DirectoryName ).FirstOrDefault(); if (string.IsNullOrEmpty(directoryName)) { directoryName = MyPictures; } var options = new BrowseOptions( "Select Artwork", directoryName, new[] { new BrowseFilter("Images", ArtworkProvider.EXTENSIONS) }, BrowseFlags.File ); var result = FileSystemBrowser.Browse(options); if (!result.Success) { return; } this.Value = result.Paths.FirstOrDefault(); }
public void NegotiateBrowseIssueParametersCreatesParametersFromOptions(BrowseOptions options, string defaultProject) { var sut = new IssueParametersNegotiator(); sut.NegotiateBrowseParameters(options, defaultProject).Value.Should().Match <BrowseParameters>(o => o.IssueId == options.Id && o.Project == options.Project); }
public PropertyObject(SerializationInfo info, StreamingContext context) : base(info, context) { Category = info.GetString(nameof(Category)); Description = info.GetString(nameof(Description)); DisplayName = info.GetString(nameof(DisplayName)); BrowseOption = (BrowseOptions)info.GetValue(nameof(BrowseOption), typeof(BrowseOptions)); //TODO : Serialize validation also Validation = (ValidatorGroup)info.GetValue(nameof(Validation), typeof(ValidatorGroup)); }
/// <summary> /// Set <see cref="PropertyObject.BrowseOption"/> of the <see cref="PropertyObject"/> /// identified by name. /// </summary> /// <param name="property">name of <see cref="PropertyObject"/> to update BrowseOption</param> /// <param name="option"></param> public bool SetBrowseOptions(string property, BrowseOptions option) { if (this.FindRecursive(property) is PropertyObject di) { di.BrowseOption = option; return(true); } return(false); }
public Result <BrowseParameters> NegotiateBrowseParameters(BrowseOptions options, string defaultProject) { var project = GetProject(options, defaultProject); if (project.IsFailure) { return(Fail <BrowseParameters>(project)); } return(Ok(new BrowseParameters(project.Value, options.Id))); }
public BrowseResult Browse(BrowseOptions options) { if (options.Flags.HasFlag(BrowseFlags.File)) { return(this.BrowseFile(options)); } if (options.Flags.HasFlag(BrowseFlags.Folder)) { return(this.BrowseFolder(options)); } throw new NotImplementedException(); }
public static BrowseOptions GetBrowseOption(this PropertyInfo info) { BrowseOptions browseOption = BrowseOptions.Browsable; if (info.GetCustomAttribute <BrowsableAttribute>() is BrowsableAttribute ba) { browseOption = ba.Browsable ? BrowseOptions.Browsable : BrowseOptions.NonBrowsable; } else if (info.GetCustomAttribute <ReadOnlyAttribute>() is ReadOnlyAttribute ra) { browseOption = ra.IsReadOnly ? BrowseOptions.NonEditable : BrowseOptions.Browsable; } return(browseOption); }
public async Task <LoadResult> BrowseAndLoad(BrowseOptions options) { LoadResult result = null; var browseResult = await Browse(options); List <LoadItem> items = new List <LoadItem>(); for (int i = 0; i < browseResult.List.Count; i += 100) { result = await Load(new LoadOptions { Hierarchy = options.Hierarchy, Offset = i, SetDisplayOffset = i }); items.AddRange(result.Items); } result.Items = items.ToArray(); return(result); }
protected virtual void BrowseFolder() { var browser = ComponentRegistry.Instance.GetComponent <IFileSystemBrowser>(); if (browser == null) { return; } var options = new BrowseOptions(this.Element.Name, this.Element.Value, Enumerable.Empty <BrowseFilter>(), BrowseFlags.Folder); var result = browser.Browse(options); if (!result.Success) { return; } this.Element.Value = result.Paths.FirstOrDefault(); }
public void Instantiates_Properly(int timeout) { void Action(BrowseProgressUpdatedEventArgs args) { // noop } BrowseOptions o = null; var ex = Record.Exception(() => o = new BrowseOptions(timeout, Action)); Assert.Null(ex); Assert.NotNull(o); Assert.Equal(timeout, o.ResponseTimeout); Assert.Equal(Action, o.ProgressUpdated); }
public async Task Visit(BrowseOptions options) { if (!ValidateConfiguration()) { return; } var parameters = _parametersHandler.NegotiateBrowseParameters(options); if (parameters.IsSuccess) { await _issueBrowseHandler.Browse(parameters.Value); } else { ShowError(parameters); } }
/// <summary> /// Implementation for <see cref="DataObject.ReadXmlAttributes(XmlReader)"/> /// </summary> /// <param name="reader"></param> protected override void ReadXmlAttributes(XmlReader reader) { // do base implementation base.ReadXmlAttributes(reader); // read browse option if (reader.GetAttribute(BROWSE_ATTRIBUTE) is string attr) { BrowseOption = (BrowseOptions)Enum.Parse(typeof(BrowseOptions), attr); } else { BrowseOption = BrowseOptions.Browsable; } // read category if (reader.GetAttribute(CATEGORY_ATTRIBUTE) is string category) { Category = category; } }
protected override void InitializeComponent(ICore core) { global::FoxTunes.BackgroundTask.ActiveChanged += this.OnActiveChanged; this.LibraryManager = core.Managers.Library; this.HierarchyManager = core.Managers.Hierarchy; this.DatabaseFactory = core.Factories.Database; this.FileSystemBrowser = core.Components.FileSystemBrowser; this.SignalEmitter = core.Components.SignalEmitter; this.SignalEmitter.Signal += this.OnSignal; this.ErrorEmitter = core.Components.ErrorEmitter; this.LibraryRoots = new CollectionManager <LibraryRoot>() { ItemFactory = () => { var options = new BrowseOptions(Strings.LibraryRootsSettings_Browse, default(string), Enumerable.Empty <BrowseFilter>(), BrowseFlags.Folder); var result = this.FileSystemBrowser.Browse(options); if (!result.Success) { return(null); } var directoryName = result.Paths.FirstOrDefault(); if (this.LibraryRoots.ItemsSource.Any(libraryRoot => string.Equals(libraryRoot.DirectoryName, directoryName, StringComparison.OrdinalIgnoreCase))) { //Don't allow duplicates. return(null); } using (var database = this.DatabaseFactory.Create()) { return(database.Set <LibraryRoot>().Create().With(libraryHierarchyLevel => { libraryHierarchyLevel.DirectoryName = directoryName; })); } } }; this.Dispatch(this.Refresh); base.InitializeComponent(core); }
protected virtual void BrowseFolder() { var browser = ComponentRegistry.Instance.GetComponent <IFileSystemBrowser>(); if (browser == null) { return; } var path = default(string); if (!string.IsNullOrEmpty(this.Element.Value) && FileSystemHelper.IsLocalPath(this.Element.Value)) { path = this.Element.Value; } var options = new BrowseOptions(this.Element.Name, path, Enumerable.Empty <BrowseFilter>(), BrowseFlags.Folder); var result = browser.Browse(options); if (!result.Success) { return; } this.Element.Value = result.Paths.FirstOrDefault(); }
public Task OpenArchive() { var options = new BrowseOptions( "Open", string.Empty, new[] { new BrowseFilter("Archives", ArchiveUtils.Extensions) }, BrowseFlags.File ); var result = this.FileSystemBrowser.Browse(options); if (!result.Success) { #if NET40 return(TaskEx.FromResult(false)); #else return(Task.CompletedTask); #endif } return(this.AddArchivesToPlaylist(this.PlaylistManager.SelectedPlaylist, result.Paths)); }
protected virtual BrowseResult BrowseFolder(BrowseOptions options) { return(this.WithApartmentState(ApartmentState.STA, () => { //TODO: Use only WPF frameworks. using (var dialog = new global::System.Windows.Forms.FolderBrowserDialog()) { dialog.Description = options.Title; if (Directory.Exists(options.Path)) { dialog.SelectedPath = options.Path; } var window = this.GetActiveWindow(); var success = default(bool); switch (dialog.ShowDialog(new Win32Window(window.GetHandle()))) { case global::System.Windows.Forms.DialogResult.OK: success = true; break; } return new BrowseResult(new[] { dialog.SelectedPath }, success); } })); }
protected virtual BrowseResult BrowseFile(BrowseOptions options) { return(this.WithApartmentState(ApartmentState.STA, () => { var dialog = new OpenFileDialog() { Title = options.Title, Filter = GetFilter(options.Filters), Multiselect = options.Flags.HasFlag(BrowseFlags.Multiselect), }; if (File.Exists(options.Path)) { dialog.InitialDirectory = Path.GetDirectoryName(options.Path); dialog.FileName = options.Path; } else if (Directory.Exists(options.Path)) { dialog.InitialDirectory = options.Path; } var window = this.GetActiveWindow(); var success = dialog.ShowDialog(window); return new BrowseResult(dialog.FileNames, success.GetValueOrDefault()); })); }
public string GetBrowseFolder(string fileName) { lock (SyncRoot) { if (string.IsNullOrEmpty(this._BrowseFolder)) { var options = new BrowseOptions( "Save As", Path.GetDirectoryName(fileName), Enumerable.Empty <BrowseFilter>(), BrowseFlags.Folder ); var result = this.FileSystemBrowser.Browse(options); if (!result.Success) { Logger.Write(this, LogLevel.Debug, "Save As folder browse dialog was cancelled."); throw new OperationCanceledException(); } this._BrowseFolder = result.Paths.FirstOrDefault(); Logger.Write(this, LogLevel.Debug, "Browse folder: {0}", this._BrowseFolder); } } return(this._BrowseFolder); }
/// <summary> /// Helper function to set Validations in <see cref="PropertyContainerBuilder"/> /// </summary> /// <param name="option"></param> /// <returns></returns> public PropertyObject SetBrowsePermission(BrowseOptions option) { BrowseOption = option; return(this); }
public Result <BrowseParameters> NegotiateBrowseParameters(BrowseOptions options) { return(_issueParametersNegotiator.NegotiateBrowseParameters(options, _appSettings.DefaultProject)); }
public async Task <BrowseResult> Browse(BrowseOptions options) { var result = await _api.SendReceive <BrowseResult, BrowseOptions>(RoonApi.ServiceBrowse + "/browse", options); return(result); }