Praeclarum.UI.DocumentsViewController.GetViewControllerForPreview C# (CSharp) Method

GetViewControllerForPreview() public method

public GetViewControllerForPreview ( IUIViewControllerPreviewing previewingContext, CoreGraphics location ) : UIViewController
previewingContext IUIViewControllerPreviewing
location CoreGraphics
return UIViewController
		public UIViewController GetViewControllerForPreview (IUIViewControllerPreviewing previewingContext, CoreGraphics.CGPoint location)
		{
			try {

				if (docsView == null) return null;

				var p = new Praeclarum.Graphics.PointF ((float)location.X, (float)location.Y);
				var item = docsView.GetItemAtPoint (p);

				if (item == null) return null;

				var dref = item.Reference;
				if (dref == null) return null;

				var docIndex = Docs.FindIndex (x => x.File.Path == dref.File.Path);
				if (docIndex < 0) return null;

				var newEditor = DocumentAppDelegate.Shared.App.CreateDocumentEditor (docIndex, Docs);
				if (newEditor == null) return null;

				newEditor.IsPreviewing = true;

				BindEditorAsync (newEditor).ContinueWith (t => {
					if (t.IsFaulted) {
						Log.Error(t.Exception);
					}
				});

				return (UIViewController)newEditor;

			} catch (Exception ex) {
				Log.Error (ex);
				return null;
			}
		}