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

HandleTitleTap() private method

private HandleTitleTap ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
		void HandleTitleTap (object sender, EventArgs e)
		{
			if (IsRoot)
				return;

			var name = DirectoryName;
			var dir = Path.GetDirectoryName (this.Directory);

			var c = new TextInputController {
				Title = "Rename",
				InputText = name,
				ValidateFunc = n => DocumentAppDelegate.ValidateNewName (dir, n, name),
			};

			var nc = new UINavigationController (c);
			nc.NavigationBar.BarStyle = DocumentAppDelegate.Shared.Theme.NavigationBarStyle;
			nc.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;

			c.Cancelled += (ss, ee) => nc.DismissViewController (true, null);
			c.Done += async (ss, ee) => {
				nc.DismissViewController (true, null);

				if (c.InputText != name) {

					try {
						var FileSystem = FileSystemManager.Shared.ActiveFileSystem;

						var newDir = Path.Combine (Path.GetDirectoryName (Directory), c.InputText);

						if (await FileSystem.Move (Directory, newDir)) {
							Directory = newDir;
							SetTitle ();
							DocumentAppDelegate.Shared.Settings.SetWorkingDirectory (FileSystem, Directory);
						}
						else {
							var alert = new UIAlertView ("Rename Error", FileSystem.Id + " did not allow the folder to be renamed.", null, "OK");
							alert.Show ();
						}

					} catch (Exception ex) {
						Debug.WriteLine (ex);

					}
				}
			};

			PresentViewController (nc, true, null);
		}