/// <summary>
/// Place the specified note into the specified notebook. If the
/// note already belongs to a notebook, it will be removed from that
/// notebook first.
/// </summary>
/// <param name="note">
/// A <see cref="Note"/>
/// </param>
/// <param name="notebook">
/// A <see cref="Notebook"/>. If Notebook is null, the note will
/// be removed from its current notebook.
/// </param>
/// <returns>True if the note was successfully moved.</returns>
public static bool MoveNoteToNotebook (Note note, Notebook notebook)
{
if (note == null)
return false;
// NOTE: In the future we may want to allow notes
// to exist in multiple notebooks. For now, to
// alleviate the confusion, only allow a note to
// exist in one notebook at a time.
Notebook currentNotebook = GetNotebookFromNote (note);
if (currentNotebook == notebook)
return true; // It's already there.
if (currentNotebook != null) {
note.RemoveTag (currentNotebook.Tag);
if (NoteRemovedFromNotebook != null)
NoteRemovedFromNotebook (note, currentNotebook);
}
// Only attempt to add the notebook tag when this
// menu item is not the "No notebook" menu item.
if (notebook != null && (notebook is SpecialNotebook) == false) {
note.AddTag (notebook.Tag);
if (NoteAddedToNotebook != null)
NoteAddedToNotebook (note, notebook);
}
return true;
}