Esempio n. 1
0
        public bool AktionNodeOderZeichenHinterCursorPosLoeschen(
            XMLCursorPos position,
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
        {
            if (!this.AktionenMoeglich)
            {
                return(false);
            }
            if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
            {
                this._undoHandler.SnapshotSetzen(de.springwald.xml.ResReader.Reader.GetString("AktionLoeschen"), this._cursor);
            }
            XMLCursor xmlCursor = new XMLCursor();

            xmlCursor.StartPos.CursorSetzen(position.AktNode, position.PosAmNode, position.PosImTextnode);
            XMLCursorPos xmlCursorPos = xmlCursor.StartPos.Clone();

            xmlCursorPos.MoveRight(this._rootNode, this.Regelwerk);
            xmlCursor.EndPos.CursorSetzen(xmlCursorPos.AktNode, xmlCursorPos.PosAmNode, xmlCursorPos.PosImTextnode);
            xmlCursor.SelektionOptimieren();
            XMLCursorPos neueCursorPosNachLoeschen;

            if (xmlCursor.StartPos.AktNode == this._rootNode || !xmlCursor.SelektionLoeschen(out neueCursorPosNachLoeschen))
            {
                return(false);
            }
            this._cursor.BeideCursorPosSetzen(neueCursorPosNachLoeschen.AktNode, neueCursorPosNachLoeschen.PosAmNode, neueCursorPosNachLoeschen.PosImTextnode);
            this._cursor.ErzwingeChanged();
            this.ContentChanged();
            return(true);
        }
Esempio n. 2
0
 public virtual bool AktionCutToClipboard(
     XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
 {
     if (!this.AktionenMoeglich)
     {
         return(false);
     }
     if (this._cursor != this._cursor)
     {
         ;
     }
     return(this.CursorOptimiert.StartPos.AktNode != this._rootNode && this.AktionCopyToClipboard() && this.AktionDelete(XMLEditor.UndoSnapshotSetzenOptionen.ja));
 }
Esempio n. 3
0
 public virtual bool AktionTextAnCursorPosEinfuegen(
     string einfuegeText,
     XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
 {
     if (!this.AktionenMoeglich)
     {
         return(false);
     }
     if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
     {
         this._undoHandler.SnapshotSetzen(string.Format(de.springwald.xml.ResReader.Reader.GetString("AktionSchreiben"), (object)einfuegeText), this._cursor);
     }
     this._cursor.TextEinfuegen(einfuegeText, this.Regelwerk);
     this.ContentChanged();
     return(true);
 }
Esempio n. 4
0
        private bool AktionRootNodeDurchClipboardInhaltErsetzen(
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
        {
            if (!this.AktionenMoeglich)
            {
                return(false);
            }
            string xmlFragment = "";

            try
            {
                xmlFragment = Clipboard.GetText(TextDataFormat.Text);
                XmlTextReader xmlTextReader = new XmlTextReader(xmlFragment, XmlNodeType.Element, (XmlParserContext)null);
                int           content       = (int)xmlTextReader.MoveToContent();
                XmlNode       xmlNode       = this._rootNode.OwnerDocument.ReadNode((XmlReader)xmlTextReader);
                if (xmlNode.Name != this._rootNode.Name)
                {
                    return(false);
                }
                if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
                {
                    this._undoHandler.SnapshotSetzen(de.springwald.xml.ResReader.Reader.GetString("RootNodedurchZwischenablageersetzen"), this._cursor);
                }
                this._rootNode.RemoveAll();
                while (xmlNode.Attributes.Count > 0)
                {
                    this._rootNode.Attributes.Append(xmlNode.Attributes.Remove(xmlNode.Attributes[0]));
                }
                XMLCursorPos xmlCursorPos = new XMLCursorPos();
                xmlCursorPos.CursorSetzen(this._rootNode, XMLCursorPositionen.CursorInDemLeeremNode);
                xmlCursorPos.Clone();
                while (xmlNode.ChildNodes.Count > 0)
                {
                    this._rootNode.AppendChild(xmlNode.RemoveChild(xmlNode.FirstChild));
                }
                this.ContentChanged();
                this._cursor.BeideCursorPosSetzen(this._rootNode, XMLCursorPositionen.CursorAufNodeSelbstVorderesTag);
                this._cursor.ErzwingeChanged();
                return(true);
            }
            catch (Exception ex)
            {
                Debugger.GlobalDebugger.Protokolliere(string.Format("AktionRootNodeDurchClipboardInhaltErsetzen:Fehler für Einfügetext '{0}':{1}", (object)xmlFragment, (object)ex.Message), Debugger.ProtokollTypen.Fehlermeldung);
                return(false);
            }
        }
Esempio n. 5
0
        public virtual bool AktionAttributWertInNodeSetzen(
            XmlNode node,
            string attributName,
            string wert,
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
        {
            if (!this.AktionenMoeglich)
            {
                return(false);
            }
            XmlAttribute attribute1 = node.Attributes[attributName];

            if (wert == "")
            {
                if (attribute1 != null)
                {
                    if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
                    {
                        this._undoHandler.SnapshotSetzen(string.Format(de.springwald.xml.ResReader.Reader.GetString("AktionAttributGeloescht"), (object)attributName, (object)node.Name), this._cursor);
                    }
                    node.Attributes.Remove(attribute1);
                }
            }
            else if (attribute1 == null)
            {
                if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
                {
                    this._undoHandler.SnapshotSetzen(string.Format(de.springwald.xml.ResReader.Reader.GetString("AktionAttributValueGeaendert"), (object)attributName, (object)node.Name, (object)wert), this._cursor);
                }
                XmlAttribute attribute2 = node.OwnerDocument.CreateAttribute(attributName);
                node.Attributes.Append(attribute2);
                attribute2.Value = wert;
            }
            else if (attribute1.Value != wert)
            {
                if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
                {
                    this._undoHandler.SnapshotSetzen(string.Format(de.springwald.xml.ResReader.Reader.GetString("AktionAttributValueGeaendert"), (object)attributName, (object)node.Name, (object)wert), this._cursor);
                }
                attribute1.Value = wert;
            }
            this.ContentChanged();
            return(true);
        }
Esempio n. 6
0
        public virtual XmlNode AktionNeuesElementAnAktCursorPosEinfuegen(
            string nodeName,
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen,
            bool neueCursorPosAufJedenFallHinterDenEingefuegtenNodeSetzen)
        {
            if (!this.AktionenMoeglich)
            {
                return((XmlNode)null);
            }
            if (nodeName == "")
            {
                throw new ApplicationException(de.springwald.xml.ResReader.Reader.GetString("KeinNodeNameAngegeben"));
            }
            if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
            {
                this._undoHandler.SnapshotSetzen(string.Format(de.springwald.xml.ResReader.Reader.GetString("AktionInsertNode"), (object)nodeName), this._cursor);
            }
            XmlNode node = !(nodeName == "#COMMENT") ? this._rootNode.OwnerDocument.CreateNode(XmlNodeType.Element, nodeName, (string)null) : (XmlNode)this._rootNode.OwnerDocument.CreateComment("NEW COMMENT");

            this._cursor.XMLNodeEinfuegen(node, this.Regelwerk, neueCursorPosAufJedenFallHinterDenEingefuegtenNodeSetzen);
            this.ContentChanged();
            return(node);
        }
Esempio n. 7
0
        public virtual bool AktionDelete(
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
        {
            if (!this.AktionenMoeglich || this.IstRootNodeSelektiert)
            {
                return(false);
            }
            if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
            {
                this._undoHandler.SnapshotSetzen(de.springwald.xml.ResReader.Reader.GetString("AktionLoeschen"), this._cursor);
            }
            XMLCursor cursor = this._cursor;

            cursor.SelektionOptimieren();
            XMLCursorPos neueCursorPosNachLoeschen;

            if (!cursor.SelektionLoeschen(out neueCursorPosNachLoeschen))
            {
                return(false);
            }
            this._cursor.BeideCursorPosSetzen(neueCursorPosNachLoeschen.AktNode, neueCursorPosNachLoeschen.PosAmNode, neueCursorPosNachLoeschen.PosImTextnode);
            this.ContentChanged();
            return(true);
        }
Esempio n. 8
0
        public virtual bool AktionPasteFromClipboard(
            XMLEditor.UndoSnapshotSetzenOptionen undoSnapshotSetzen)
        {
            if (!this.AktionenMoeglich)
            {
                return(false);
            }
            string str = "";

            try
            {
                if (!Clipboard.ContainsText(TextDataFormat.Text))
                {
                    return(false);
                }
                if (this.IstRootNodeSelektiert)
                {
                    return(this.AktionRootNodeDurchClipboardInhaltErsetzen(undoSnapshotSetzen));
                }
                XMLCursorPos startPos;
                if (this.IstEtwasSelektiert)
                {
                    if (!this.AktionDelete(XMLEditor.UndoSnapshotSetzenOptionen.nein))
                    {
                        return(false);
                    }
                    startPos = this._cursor.StartPos;
                }
                else
                {
                    startPos = this.CursorOptimiert.StartPos;
                }
                if (undoSnapshotSetzen == XMLEditor.UndoSnapshotSetzenOptionen.ja)
                {
                    this._undoHandler.SnapshotSetzen(de.springwald.xml.ResReader.Reader.GetString("AktionEinfuegen"), this._cursor);
                }
                str = Clipboard.GetText(TextDataFormat.Text);
                str = str.Replace("\r\n", " ");
                str = str.Replace("\n\r", " ");
                str = str.Replace("\r", " ");
                str = str.Replace("\n", " ");
                str = str.Replace("\t", " ");
                XmlTextReader xmlTextReader = new XmlTextReader(string.Format("<paste>{0}</paste>", (object)str), XmlNodeType.Element, (XmlParserContext)null);
                int           content       = (int)xmlTextReader.MoveToContent();
                XmlNode       xmlNode       = this._rootNode.OwnerDocument.ReadNode((XmlReader)xmlTextReader);
                XMLCursorPos  xmlCursorPos  = startPos.Clone();
                foreach (XmlNode childNode in xmlNode.ChildNodes)
                {
                    if (childNode is XmlText)
                    {
                        XmlNode ersatzNode = (XmlNode)null;
                        xmlCursorPos.TextEinfuegen(childNode.Clone().Value, this.Regelwerk, out ersatzNode);
                        if (ersatzNode != null)
                        {
                            xmlCursorPos.InsertXMLNode(ersatzNode.Clone(), this.Regelwerk, true);
                        }
                    }
                    else
                    {
                        xmlCursorPos.InsertXMLNode(childNode.Clone(), this.Regelwerk, true);
                    }
                }
                switch (this._cursor.EndPos.PosAmNode)
                {
                case XMLCursorPositionen.CursorVorDemNode:
                case XMLCursorPositionen.CursorInnerhalbDesTextNodes:
                    this._cursor.BeideCursorPosSetzen(xmlCursorPos.AktNode, xmlCursorPos.PosAmNode, xmlCursorPos.PosImTextnode);
                    break;

                default:
                    this._cursor.BeideCursorPosSetzen(xmlCursorPos.AktNode, XMLCursorPositionen.CursorHinterDemNode);
                    break;
                }
                return(true);
            }
            catch (Exception ex)
            {
                Debugger.GlobalDebugger.Protokolliere(string.Format("AktionPasteFromClipboard:Fehler für Einfügetext '{0}':{1}", (object)str, (object)ex.Message), Debugger.ProtokollTypen.Fehlermeldung);
                return(false);
            }
        }