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);
     }
 }
 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);
         }
     }
 }
 private void SynchParams(Interop.IHTMLElement peer)
 {
     _params.Clear();
     Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)peer).childNodes;
     for (int i = 0; i < param.length; i++)
     {
         Interop.IHTMLElement el = (Interop.IHTMLElement)param.item(0);  // current is always on pos 0, access reorders list
         object pe = null;
         switch (el.GetTagName())
         {
         case "PARAM":
             pe = new ParamElement(el, HtmlEditor);
             break;
         }
         if (pe != null)
         {
             _params.Add(pe);
         }
     }
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 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;
     }
 }