/// <summary>Gets the tag worker class for a specific element node.</summary> /// <param name="mapping">the mapping</param> /// <param name="tag">the element node</param> /// <returns>the tag worker class</returns> private Type GetTagWorkerClass(TagProcessorMapping mapping, IElementNode tag) { Type tagWorkerClass = null; String display = tag.GetStyles() != null?tag.GetStyles().Get(CssConstants.DISPLAY) : null; if (display != null) { tagWorkerClass = mapping.GetMapping(tag.Name(), display); } if (tagWorkerClass == null) { tagWorkerClass = mapping.GetMapping(tag.Name()); } return(tagWorkerClass); }
/// <summary>Instantiates a new default tag worker factory.</summary> public DefaultTagWorkerFactory() { this.defaultMapping = DefaultTagWorkerMapping.GetDefaultTagWorkerMapping(); }
static DefaultTagWorkerMapping() { workerMapping = new TagProcessorMapping(); workerMapping.PutMapping(TagConstants.A, typeof(ATagWorker)); workerMapping.PutMapping(TagConstants.ABBR, typeof(AbbrTagWorker)); workerMapping.PutMapping(TagConstants.ADDRESS, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.ARTICLE, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.ASIDE, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.B, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.BDI, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.BDO, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.BLOCKQUOTE, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.BODY, typeof(BodyTagWorker)); workerMapping.PutMapping(TagConstants.BR, typeof(BrTagWorker)); workerMapping.PutMapping(TagConstants.BUTTON, typeof(ButtonTagWorker)); workerMapping.PutMapping(TagConstants.CAPTION, typeof(CaptionTagWorker)); workerMapping.PutMapping(TagConstants.CENTER, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.CITE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.CODE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.COL, typeof(ColTagWorker)); workerMapping.PutMapping(TagConstants.COLGROUP, typeof(ColgroupTagWorker)); workerMapping.PutMapping(TagConstants.DD, typeof(LiTagWorker)); workerMapping.PutMapping(TagConstants.DEL, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.DFN, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.DIV, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.DL, typeof(UlOlTagWorker)); workerMapping.PutMapping(TagConstants.DT, typeof(LiTagWorker)); workerMapping.PutMapping(TagConstants.EM, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.FIELDSET, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.FIGCAPTION, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.FIGURE, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.FONT, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.FOOTER, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.FORM, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.H1, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.H2, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.H3, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.H4, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.H5, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.H6, typeof(HTagWorker)); workerMapping.PutMapping(TagConstants.HEADER, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.HR, typeof(HrTagWorker)); workerMapping.PutMapping(TagConstants.HTML, typeof(HtmlTagWorker)); workerMapping.PutMapping(TagConstants.I, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.IMG, typeof(ImgTagWorker)); workerMapping.PutMapping(TagConstants.INPUT, typeof(InputTagWorker)); workerMapping.PutMapping(TagConstants.INS, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.KBD, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.LABEL, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.LEGEND, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.LI, typeof(LiTagWorker)); workerMapping.PutMapping(TagConstants.LINK, typeof(LinkTagWorker)); workerMapping.PutMapping(TagConstants.MAIN, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.MARK, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.META, typeof(MetaTagWorker)); workerMapping.PutMapping(TagConstants.NAV, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.OBJECT, typeof(ObjectTagWorker)); workerMapping.PutMapping(TagConstants.OL, typeof(UlOlTagWorker)); workerMapping.PutMapping(TagConstants.OPTGROUP, typeof(OptGroupTagWorker)); workerMapping.PutMapping(TagConstants.OPTION, typeof(OptionTagWorker)); workerMapping.PutMapping(TagConstants.P, typeof(PTagWorker)); workerMapping.PutMapping(TagConstants.PRE, typeof(PreTagWorker)); workerMapping.PutMapping(TagConstants.Q, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.S, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SAMP, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SECTION, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.SELECT, typeof(SelectTagWorker)); workerMapping.PutMapping(TagConstants.SMALL, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SPAN, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.STRIKE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.STRONG, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SUB, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SUP, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SVG, typeof(SvgTagWorker)); workerMapping.PutMapping(TagConstants.TABLE, typeof(TableTagWorker)); workerMapping.PutMapping(TagConstants.TD, typeof(TdTagWorker)); workerMapping.PutMapping(TagConstants.TEXTAREA, typeof(TextAreaTagWorker)); workerMapping.PutMapping(TagConstants.TFOOT, typeof(TableFooterTagWorker)); workerMapping.PutMapping(TagConstants.TH, typeof(ThTagWorker)); workerMapping.PutMapping(TagConstants.THEAD, typeof(TableHeaderTagWorker)); workerMapping.PutMapping(TagConstants.TIME, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.TITLE, typeof(TitleTagWorker)); workerMapping.PutMapping(TagConstants.TR, typeof(TrTagWorker)); workerMapping.PutMapping(TagConstants.TT, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.U, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.UL, typeof(UlOlTagWorker)); workerMapping.PutMapping(TagConstants.VAR, typeof(SpanTagWorker)); String placeholderPseudoElemName = CssPseudoElementUtil.CreatePseudoElementTagName(CssConstants.PLACEHOLDER ); workerMapping.PutMapping(placeholderPseudoElemName, typeof(PlaceholderTagWorker)); workerMapping.PutMapping(TagConstants.UL, CssConstants.INLINE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.LI, CssConstants.INLINE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.LI, CssConstants.INLINE_BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.DD, CssConstants.INLINE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.DT, CssConstants.INLINE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.SPAN, CssConstants.BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.SPAN, CssConstants.INLINE_BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.A, CssConstants.BLOCK, typeof(ABlockTagWorker)); workerMapping.PutMapping(TagConstants.A, CssConstants.INLINE_BLOCK, typeof(ABlockTagWorker)); workerMapping.PutMapping(TagConstants.A, CssConstants.TABLE_CELL, typeof(ABlockTagWorker)); workerMapping.PutMapping(TagConstants.LABEL, CssConstants.BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(TagConstants.DIV, CssConstants.TABLE, typeof(DisplayTableTagWorker)); workerMapping.PutMapping(TagConstants.DIV, CssConstants.TABLE_ROW, typeof(DisplayTableRowTagWorker)); workerMapping.PutMapping(TagConstants.DIV, CssConstants.INLINE, typeof(SpanTagWorker)); workerMapping.PutMapping(TagConstants.DIV, CssConstants.INLINE_TABLE, typeof(DisplayTableTagWorker)); workerMapping.PutMapping(TagConstants.DIV, CssConstants.TABLE_CELL, typeof(TdTagWorker)); // pseudo elements mapping String beforePseudoElemName = CssPseudoElementUtil.CreatePseudoElementTagName(CssConstants.BEFORE); String afterPseudoElemName = CssPseudoElementUtil.CreatePseudoElementTagName(CssConstants.AFTER); workerMapping.PutMapping(beforePseudoElemName, typeof(SpanTagWorker)); workerMapping.PutMapping(afterPseudoElemName, typeof(SpanTagWorker)); workerMapping.PutMapping(beforePseudoElemName, CssConstants.INLINE_BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(afterPseudoElemName, CssConstants.INLINE_BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(beforePseudoElemName, CssConstants.BLOCK, typeof(DivTagWorker)); workerMapping.PutMapping(afterPseudoElemName, CssConstants.BLOCK, typeof(DivTagWorker)); // For now behaving like display:block in display:table case is sufficient workerMapping.PutMapping(beforePseudoElemName, CssConstants.TABLE, typeof(DivTagWorker)); workerMapping.PutMapping(afterPseudoElemName, CssConstants.TABLE, typeof(DivTagWorker)); workerMapping.PutMapping(CssPseudoElementUtil.CreatePseudoElementTagName(TagConstants.IMG), typeof(ImgTagWorker )); // custom elements mapping, implementation-specific workerMapping.PutMapping(PageCountElementNode.PAGE_COUNTER_TAG, typeof(PageCountWorker)); workerMapping.PutMapping(PageMarginBoxContextNode.PAGE_MARGIN_BOX_TAG, typeof(PageMarginBoxWorker)); }
/// <summary> /// Creates a new /// <see cref="DefaultCssApplierFactory"/> /// instance. /// </summary> public DefaultCssApplierFactory() { defaultMapping = DefaultTagCssApplierMapping.GetDefaultCssApplierMapping(); }