// Includes UI change and XML IO public void RemoveElement(Element element, Element parentElement) { string previousText = element.NoteText; parentElement.Elements.Remove(element); element.NoteText = previousText; if (element.ParentElement.Path != root.Path) { DatabaseControl temp_dbControl = new DatabaseControl(element.ParentElement.Path); temp_dbControl.OpenConnection(); temp_dbControl.RemoveElementFromXML(element); temp_dbControl.CloseConnection(); } else { dbControl.RemoveElementFromXML(element); } }
public void PowerDDelete(Element element, PowerDDeleteType pddt) { switch (pddt) { case PowerDDeleteType.Delete: DeleteMessageType dmt = DeleteMessageType.Default; switch (element.Type) { case ElementType.Heading: if (element.IsRemoteHeading) { dmt = DeleteMessageType.InplaceExpansionHeading; } else { if (HasChildOrContent(element)) { dmt = DeleteMessageType.HeadingWithChildren; } else { dmt = DeleteMessageType.HeadingWithoutChildren; } } break; case ElementType.Note: if (element.HasAssociation) { switch (element.AssociationType) { case ElementAssociationType.File: dmt = DeleteMessageType.NoteWithFileAssociation; break; case ElementAssociationType.FileShortcut: case ElementAssociationType.Web: case ElementAssociationType.Email: dmt = DeleteMessageType.NoteWithShortcutAssociation; break; }; } else { dmt = DeleteMessageType.NoteWithoutAssociation; } break; }; if (dmt == DeleteMessageType.HeadingWithoutChildren || dmt == DeleteMessageType.NoteWithoutAssociation) { } else { DeleteWindow dw = new DeleteWindow(dmt); if (dw.ShowDialog().Value == true) { } else { return; } } DeleteElement(element); break; case PowerDDeleteType.Undo: string folderPath = String.Empty; string oldGuid = String.Empty; Element oldElement = null; if (element.PowerDStatus == PowerDStatus.Done && element.TempData != String.Empty) { folderPath = element.TempData.Split('|')[0]; oldGuid = element.TempData.Split('|')[1]; DatabaseControl temp_dbControl = new DatabaseControl(folderPath); temp_dbControl.OpenConnection(); foreach (Element ele in temp_dbControl.GetAllElementFromXML()) { if (ele.ID.ToString() == oldGuid) { oldElement = ele; break; } } temp_dbControl.RemoveElementFromXML(oldElement); temp_dbControl.CloseConnection(); if (oldElement != null && oldElement.AssociationURI != String.Empty) { if (oldElement.AssociationType == ElementAssociationType.File) { System.IO.File.Delete(element.AssociationURIFullPath); System.IO.File.Move(folderPath + oldElement.AssociationURI, element.Path + oldElement.AssociationURI); element.AssociationType = ElementAssociationType.File; AssignICCInfo(element, element.Path + oldElement.AssociationURI); } else { System.IO.File.Delete(folderPath + oldElement.AssociationURI); } } } element.FontColor = ElementColor.Black.ToString(); element.TempData = String.Empty; element.PowerDStatus = PowerDStatus.None; element.IsVisible = Visibility.Visible; break; }; UpdateElement(element); }