} // ctor #endregion #region -- Load, Close -------------------------------------------------------- private async Task OpenPdfAsync(object data) { switch (data) { case string fileName: // open a file from disk using (var bar = this.DisableUI(String.Format("Lade Pdf-Datei ({0})...", fileName))) SetLoadedDocument(await LoadDocumentFromFileNameAsync(fileName)); // parse pdf in background break; case IPpsDataInfo info: // open a internal object using (var bar = this.DisableUI(String.Format("Lade Pdf-Dokument ({0})...", info.Name))) { dataInfo = info; // create access dataAccess = await info.LoadAsync(); dataAccess.DisableUI = () => this.DisableUI("Pdf-Dokument wird bearbeitet..."); dataAccess.DataChanged += async(sender, e) => await LoadDocumentFromObjectAsync(); await LoadDocumentFromObjectAsync(); } break; case null: throw new ArgumentNullException(nameof(data)); default: throw new ArgumentException($"Invalid pdf-data container {data.GetType().Name}.", nameof(data)); } } // proc OpenPdfAsync
} // proc Dispose /// <summary></summary> /// <param name="windowPane"></param> /// <returns></returns> public async Task LoadAsync(IPpsWindowPane windowPane) { using (var bar = windowPane.DisableUI(String.Format("Lade Dokument ({0})...", dataInfo.Name))) { // create access dataAccess = await dataInfo.LoadAsync(); dataAccess.DisableUI = () => windowPane.DisableUI("Pdf-Dokument wird bearbeitet..."); dataAccess.DataChanged += async(sender, e) => await LoadFromObjectAsync(); await LoadFromObjectAsync(); } } // func LoadAsync
} // proc SetLoadedDocument private bool ClosePdf() { // clear document pdfViewer.Document = null; // close pdf loadedDocument?.Dispose(); // close object access if (dataAccess != null) { dataAccess.Dispose(); dataAccess = null; } dataInfo = null; return(true); } // func ClosePdf
} // ctor /// <summary></summary> public void Dispose() { dataAccess?.Dispose(); dataAccess = null; } // proc Dispose