public async void Delete(Markdown.Item item) { if (item.Parent == null) { if (!await DisplayAlert(Strings.Loc.ViewerPage_ClearTitle, Strings.Loc.ViewerPage_ClearConfirm, Strings.Loc.ViewerPage_Yes, Strings.Loc.ViewerPage_No)) { return; } NoteNavigator.Document.Root.Childs.Clear(); await DeviceServices.SaveDocumentAsync(); } else { if (!await DisplayAlert(Strings.Loc.ViewerPage_DeleteTitle, String.Format(Strings.Loc.ViewerPage_DeleteConfirm, item.Title), Strings.Loc.ViewerPage_Yes, Strings.Loc.ViewerPage_No)) { return; } Markdown.Item newCurrent = NoteNavigator.CurrentNote; if (NoteNavigator.CurrentNote == item) { newCurrent = item.Parent; } NoteNavigator.Document.RemoveContent(item); NoteNavigator.BuildPathToNote(newCurrent); await DeviceServices.SaveDocumentAsync(); } RefreshWebView(); }
protected override void OnDisappearing() { editingNote = null; parents.Clear(); base.OnDisappearing(); onClose(); }
public void AddNote(Markdown.Item parent, Action onCloseAction, string defaultCaption = "", string defaultContent = "", string unsortedHeader = null) { onClose = onCloseAction; editingNote = new Markdown.Item(); editingNote.Content = defaultContent; editingNote.Title = defaultCaption; UnsortedHeader = unsortedHeader; ScanParents(); if (parent == null) { if (unsortedHeader != null) { parent = unsortedCategory; } else { parent = NoteNavigator.Document.Root; } } noteCategory.SelectedItem = parent; noteTitle.Text = editingNote.Title; noteContent.Text = editingNote.Content; noteTitle.IsVisible = true; noteCategory.IsVisible = true; Title = Strings.Loc.EditorPage_AddTitle; }
private static string buildTitle(Markdown.Item item) { if (item == null) { return(""); } return(item.Title.Length > 0 ? item.Title : Strings.Loc.NotesIndex); }
private void releaseChilds(Markdown.Item parent) { foreach (Markdown.Item child in parent.Childs) { releaseChilds(child); } parent.Childs.Clear(); }
public void Share(Markdown.Item item) { Plugin.Share.CrossShare.Current.Share(new Plugin.Share.Abstractions.ShareMessage { Title = item.Parent != null ? item.Title : NoteNavigator.FileName, Text = item.HtmlForm }); }
public void ScanParents() { noteCategory.ItemsSource = null; parents.Clear(); unsortedCategory = null; fillChilds(NoteNavigator.Document.Root); if ((unsortedCategory == null) && (UnsortedHeader != null)) { unsortedCategory = NoteNavigator.Document.AddContent(NoteNavigator.Document.Root, UnsortedHeader, ""); parents.Add(unsortedCategory); } noteCategory.ItemsSource = parents; }
public void EditNote(Markdown.Item note, Action onCloseAction) { onClose = onCloseAction; editingNote = note; ScanParents(); noteCategory.SelectedItem = editingNote.Parent; noteTitle.Text = editingNote.Title; noteContent.Text = editingNote.Content; noteTitle.IsVisible = editingNote.Parent != null; noteCategory.IsVisible = editingNote.Parent != null; Title = Strings.Loc.EditorPage_EditTitle; }
private static string buildParentsPath(Markdown.Item startItem, int i) { if (startItem.Parent != null) { string parents = buildParentsPath(startItem.Parent, i + 1); if (parents.Length > 0) { parents += " / "; } return(parents + "<a href='parent_" + i.ToString() + "'>" + buildTitle(startItem.Parent) + "</a>"); } return(""); }
public static void BuildPathToNote(Markdown.Item newCurrentNote) { CurrentPath.Clear(); while (newCurrentNote.Parent != null) { int i = newCurrentNote.Parent.Childs.IndexOf(newCurrentNote); if (i >= 0) { CurrentPath.Insert(0, i); } else { break; } newCurrentNote = newCurrentNote.Parent; } }
private void fillChilds(Markdown.Item startingPoint) { if (startingPoint == editingNote) { return; } if (UnsortedHeader != null) { if (startingPoint.Title.Equals(UnsortedHeader)) { unsortedCategory = startingPoint; } } parents.Add(startingPoint); foreach (Markdown.Item item in startingPoint.Childs) { fillChilds(item); } }
public static string Get(Markdown.Item item) { string childStr = ""; for (int i = 0; i < item.Childs.Count; i++) { Markdown.Item child = item.Childs[i]; string childTemplate = child.IsMarked ? MarkedTemplate : NoteTemplate; childStr += childTemplate.Replace("{NoteTitle}", child.Title).Replace("{NoteId}", i.ToString()).Replace("{NoteContent}", Settings.PreviewMode ? child.HtmlForm : ""); } string pathStr = buildParentsPath(item, 1); return(RootTemplate. Replace("{Theme}", ThemeFile).Replace("{BaseSize}", Settings.BaseFontSize.ToString()). Replace("{NoteTitle}", item.Title). Replace("{NoteContent}", item.HtmlForm). Replace("{NoteChilds}", childStr). Replace("{Parent}", pathStr)); }
public void Edit(Markdown.Item item) { EditorPage.Editor.EditNote(item, RefreshWebView); MainPage.Navigator.PushAsync(EditorPage.Editor, true); }