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); }
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)); }
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); }
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); } }
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); }
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); }
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); }
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); } }