private void _options_OnInsertHandler(int index, object value) { Interop.IHTMLElement selectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode selNode = (Interop.IHTMLDOMNode)selectElement; Interop.IHTMLDOMNode optGrpNode = null; switch (value.GetType().Name) { case "OptionElement": // add OPTION directly... optGrpNode = selNode.appendChild((Interop.IHTMLDOMNode)((OptionElement)value).GetBaseElement()); // ...and handle InnerText separatly because this is not a real attribute //((Interop.IHTMLElement) optGrpNode).SetInnerText(((OptionElement) value).text); //optGrpNode.nodeValue = ((OptionElement) value).text; break; case "OptGroupElement": // add OPTGROUP and the OPTION children the element already has OptGroupElement optGrpObj = (OptGroupElement)value; optGrpNode = selNode.appendChild((Interop.IHTMLDOMNode)(optGrpObj).GetBaseElement()); if (optGrpObj.Options != null && optGrpObj.Options.Count > 0) { foreach (OptionElement oe in optGrpObj.Options) { optGrpNode.appendChild((Interop.IHTMLDOMNode)oe.GetBaseElement()); } } break; } }
public ElementDom(Interop.IHTMLDOMNode element, IHtmlEditor htmlEditor) { this.node = element; this.htmlEditor = htmlEditor; if (element.nodeType == 0) { nodeType = System.Xml.XmlNodeType.Attribute; } else { switch (element.nodeType) { case 1: nodeType = System.Xml.XmlNodeType.Element; break; case 3: nodeType = System.Xml.XmlNodeType.Text; break; default: nodeType = System.Xml.XmlNodeType.None; break; } } }
private void _param_OnInsertHandler(int index, object value) { Interop.IHTMLElement objectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode Node = (Interop.IHTMLDOMNode)objectElement; Interop.IHTMLDOMNode optGrpNode = null; // add PARAM directly... optGrpNode = Node.appendChild((Interop.IHTMLDOMNode)((ParamElement)value).GetBaseElement()); }
internal ExtrusionElement(Interop.IHTMLElement peer, Interop.IHTMLElement parent, IHtmlEditor editor) : this(peer, editor) { Interop.IHTMLDOMNode parentNode = (Interop.IHTMLDOMNode)parent; Interop.IHTMLElement extrusion = base.GetBaseElement(); if (extrusion != null) { parentNode.appendChild(extrusion as Interop.IHTMLDOMNode); } }
private void _options_OnClearHandler() { Interop.IHTMLElement optgroup = base.GetBaseElement(); Interop.IHTMLDOMNode optNode = (Interop.IHTMLDOMNode)optgroup; Interop.IHTMLElementCollection subNodes = (Interop.IHTMLElementCollection)optgroup.GetChildren(); for (int i = 0; i < subNodes.GetLength(); i++) { optNode.removeChild((Interop.IHTMLDOMNode)subNodes.Item(i, i)); } }
private void _param_OnClearHandler() { Interop.IHTMLElement objectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode Node = (Interop.IHTMLDOMNode)objectElement; Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)Node).childNodes; for (int i = 0; i < param.length; i++) { Interop.IHTMLDOMNode el = (Interop.IHTMLDOMNode)param.item(0); Node.removeChild(el); } }
/// <summary> /// Updates the designtime html by writing back the content to the native element. /// </summary> /// <remarks> /// This method works recursively and respects nested elements. /// </remarks> public override void UpdateDesignTimeHtml() { Interop.IHTMLElement elem = component.GetBaseElement(); ViewLink vl = GetViewLinkFromElement(elem); string s = String.Empty; Interop.IHTMLDOMNode node = ((Interop.IHTMLDOMNode)vl.DesignTimeElementView); elem.SetInnerHTML(s); Interop.IHTMLDOMNode targetNode = (Interop.IHTMLDOMNode)elem; LoopNodes(node, targetNode, ((Interop.IHTMLElement)targetNode).GetDocument() as Interop.IHTMLDocument2); }
private void _sources_OnClearHandler() { // we do not clear the collection here to protect the underlying conjunction between collection and element Interop.IHTMLElement selectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode selNode = (Interop.IHTMLDOMNode)selectElement; if (selNode.hasChildNodes()) { Interop.IHTMLElementCollection options = (Interop.IHTMLElementCollection)selectElement.GetChildren(); for (int o = 0; o < options.GetLength(); o++) { Interop.IHTMLDOMNode childElement = (Interop.IHTMLDOMNode)options.Item(0, 0); // remove first node, because the collection will change immediately after removeChild call selNode.removeChild(childElement); } } }
public new void RemoveAt(int index) { if (index >= base.InnerList.Count || index < 0) { return; } base.InnerList.RemoveAt(index); Interop.IHTMLElementCollection options = (Interop.IHTMLElementCollection)selectElement.GetChildren(); for (int i = 0; i < options.GetLength(); i++) { Interop.IHTMLElement el = (Interop.IHTMLElement)options.Item(i, i); if (index == i) { Interop.IHTMLDOMNode no = (Interop.IHTMLDOMNode)el; no.removeNode(true); } } }
public new void RemoveAt(int index, object o) { if (o == null) { return; } base.InnerList.Remove(o); Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)objectElement).childNodes; for (int i = 0; i < param.length; i++) { Interop.IHTMLElement el = (Interop.IHTMLElement)param.item(0); if (index == i) { Interop.IHTMLDOMNode no = (Interop.IHTMLDOMNode)el; no.removeNode(true); } } }
/// <summary> /// Returns the direct descendent children elements. /// </summary> /// <remarks> /// Does not returns any text nodes between the elements. They are stripped out from DOM tree before building the collection. /// </remarks> /// <returns></returns> public ElementCollection GetChildNodes() { Interop.IHTMLDOMChildrenCollection children = (Interop.IHTMLDOMChildrenCollection)node.childNodes; ElementCollection ec = new ElementCollection(); int length = children.length; for (int i = 0; i < length; i++) { Interop.IHTMLDOMNode element = children.item(i) as Interop.IHTMLDOMNode; if (element != null && element != node) { if (element.nodeName.Equals("#text")) { continue; } ec.Add(this.htmlEditor.GenericElementFactory.CreateElement(element as Interop.IHTMLElement)); } } return(ec); }
private static void LoopNodes(Interop.IHTMLDOMNode node, Interop.IHTMLDOMNode targetNode, Interop.IHTMLDocument2 targetDoc) { while (node != null) { if (node.nodeName == "#text") { ((Interop.IHTMLElement)targetNode).InsertAdjacentHTML("BeforeEnd", node.nodeValue.ToString()); } else { string elementName; if (((Interop.IHTMLElement2)node).GetScopeName() == "HTML") { elementName = ((Interop.IHTMLElement)node).GetTagName(); } else { elementName = String.Format("{0}:{1}", ((Interop.IHTMLElement2)node).GetScopeName(), ((Interop.IHTMLElement)node).GetTagName()); } Interop.IHTMLElement clone = targetDoc.CreateElement(elementName); ((Interop.IHTMLElement3)clone).mergeAttributes(((Interop.IHTMLElement)node), 0); if (node.hasChildNodes()) { Interop.IHTMLDOMChildrenCollection children = node.childNodes as Interop.IHTMLDOMChildrenCollection; if (children != null) { for (int i = 0; i < children.length; i++) { Interop.IHTMLDOMNode child = (Interop.IHTMLDOMNode)children.item(i); LoopNodes(child, (Interop.IHTMLDOMNode)clone, targetDoc); } } } } node = node.nextSibling; } }
private void _options_OnInsertHandler(int index, object value) { Interop.IHTMLElement optgroup = base.GetBaseElement(); Interop.IHTMLDOMNode optNode = (Interop.IHTMLDOMNode)optgroup; optNode.appendChild((Interop.IHTMLDOMNode)((OptionElement)value).GetBaseElement()); }
internal TextNodeElement(Interop.IHTMLDOMNode node, IHtmlEditor htmlEditor) { this.node = node; this.htmleditor = htmlEditor; }
/// <summary> /// Exchanges the location of two objects in the document hierarchy. /// </summary> /// <remarks>If elements are removed at run time, before the closing tag is parsed, areas of the document might not render.</remarks> /// <param name="node">Object that specifies the existing element.</param> /// <returns>Returns a reference to the object that invoked the method.</returns> public IElement SwapNode(IElement node) { Interop.IHTMLDOMNode newNode = (this.node).swapNode((Interop.IHTMLDOMNode)node); return(this.htmlEditor.GenericElementFactory.CreateElement(newNode as Interop.IHTMLElement) as IElement); }
private void _sources_OnInsertHandler(int index, object value) { Interop.IHTMLElement selectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode selNode = (Interop.IHTMLDOMNode)selectElement; selNode.appendChild((Interop.IHTMLDOMNode)((IElement)value).GetBaseElement()); }