public EditorTable(HtmlEditor editor, EditorSelection selection) { this._editor = editor; this._selection = selection; if (!IsTableSelection(selection)) { throw new ArgumentException(); } ICollection items = selection.Items; if (items.Count == 1) { IEnumerator enumerator = items.GetEnumerator(); enumerator.MoveNext(); for (Interop.IHTMLElement element = (Interop.IHTMLElement) enumerator.Current; element != null; element = element.GetParentElement()) { if (string.Compare(element.GetTagName(), "td", true) == 0) { this._element = element; this._table = element.GetParentElement().GetParentElement().GetParentElement() as Interop.IHTMLTable; return; } if (string.Compare(element.GetTagName(), "tr", true) == 0) { this._element = element; this._table = element.GetParentElement().GetParentElement() as Interop.IHTMLTable; return; } if (string.Compare(element.GetTagName(), "tbody", true) == 0) { this._element = element; this._table = element.GetParentElement() as Interop.IHTMLTable; return; } if (string.Compare(element.GetTagName(), "table", true) == 0) { this._element = element; this._table = element as Interop.IHTMLTable; return; } } } }
public static bool IsTableSelection(EditorSelection selection) { selection.SynchronizeSelection(); if ((selection.SelectionType != EditorSelectionType.TextSelection) || (selection.Length <= 0)) { ICollection items = selection.Items; if (items.Count == 1) { IEnumerator enumerator = items.GetEnumerator(); enumerator.MoveNext(); for (Interop.IHTMLElement element = (Interop.IHTMLElement) enumerator.Current; element != null; element = element.GetParentElement()) { if (string.Compare(element.GetTagName(), "td", true) == 0) { return true; } if (string.Compare(element.GetTagName(), "tr", true) == 0) { return true; } if (string.Compare(element.GetTagName(), "tbody", true) == 0) { return true; } if (string.Compare(element.GetTagName(), "table", true) == 0) { return true; } } } } return false; }