Beispiel #1
0
        // 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);
            }
        }
Beispiel #2
0
        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);
        }