Ejemplo n.º 1
0
        public new XNode ToXML()
        {
            //XElement xCell = new XElement(Fb2Const.fb2DefaultNamespace + GetElementName());
            XElement xCell = (XElement)base.ToXML();

            xCell.Add(new XAttribute("align", GetAlign()));
            xCell.Add(new XAttribute("valign", GetVAlign()));
            if (ColSpan != null)
            {
                xCell.Add(new XAttribute("colspan", ColSpan.ToString()));
            }
            if (RowSpan != null)
            {
                xCell.Add(new XAttribute("rowspan", RowSpan.ToString()));
            }

            return(xCell);
        }
Ejemplo n.º 2
0
        private void GenerateXAML(XmlWriter Output, MarkdownElement[] CurrentRow, int RowNr, bool Bold)
        {
            XamlSettings    Settings = this.Document.Settings.XamlSettings;
            MarkdownElement E;
            TextAlignment   TextAlignment;
            int             Column;
            int             NrColumns;
            int             ColSpan;

            for (Column = 0, NrColumns = CurrentRow.Length; Column < NrColumns; Column++)
            {
                E = CurrentRow[Column];
                if (E is null)
                {
                    continue;
                }

                TextAlignment = this.alignments[Column];
                ColSpan       = Column + 1;
                while (ColSpan < NrColumns && CurrentRow[ColSpan] is null)
                {
                    ColSpan++;
                }

                ColSpan -= Column;

                Output.WriteStartElement("Border");
                Output.WriteAttributeString("BorderBrush", Settings.TableCellBorderColor);
                Output.WriteAttributeString("BorderThickness", CommonTypes.Encode(Settings.TableCellBorderThickness));

                if ((RowNr & 1) == 0)
                {
                    if (!string.IsNullOrEmpty(Settings.TableCellRowBackgroundColor1))
                    {
                        Output.WriteAttributeString("Background", Settings.TableCellRowBackgroundColor1);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(Settings.TableCellRowBackgroundColor2))
                    {
                        Output.WriteAttributeString("Background", Settings.TableCellRowBackgroundColor2);
                    }
                }

                Output.WriteAttributeString("Grid.Column", Column.ToString());
                Output.WriteAttributeString("Grid.Row", RowNr.ToString());

                if (ColSpan > 1)
                {
                    Output.WriteAttributeString("Grid.ColumnSpan", ColSpan.ToString());
                }

                if (E.InlineSpanElement)
                {
                    Output.WriteStartElement("TextBlock");
                    Output.WriteAttributeString("TextWrapping", "Wrap");
                    Output.WriteAttributeString("Padding", Settings.TableCellPadding);

                    if (Bold)
                    {
                        Output.WriteAttributeString("FontWeight", "Bold");
                    }

                    if (TextAlignment != TextAlignment.Left)
                    {
                        Output.WriteAttributeString("TextAlignment", TextAlignment.ToString());
                    }
                }
                else
                {
                    Output.WriteStartElement("StackPanel");
                    Output.WriteAttributeString("Margin", Settings.TableCellPadding);
                }

                E.GenerateXAML(Output, TextAlignment);
                Output.WriteEndElement();
                Output.WriteEndElement();
            }
        }
Ejemplo n.º 3
0
        private void GenerateXamarinForms(XmlWriter Output, MarkdownElement[] CurrentRow, int RowNr, bool Bold)
        {
            XamlSettings    Settings = this.Document.Settings.XamlSettings;
            MarkdownElement E;
            TextAlignment   TextAlignment;
            int             Column;
            int             NrColumns;
            int             ColSpan;

            for (Column = 0, NrColumns = CurrentRow.Length; Column < NrColumns; Column++)
            {
                E = CurrentRow[Column];
                if (E is null)
                {
                    continue;
                }

                TextAlignment = this.alignments[Column];
                ColSpan       = Column + 1;
                while (ColSpan < NrColumns && CurrentRow[ColSpan] is null)
                {
                    ColSpan++;
                }

                ColSpan -= Column;

                Output.WriteStartElement("Frame");
                Output.WriteAttributeString("Padding", "0,0,0,0");
                Output.WriteAttributeString("BorderColor", Settings.TableCellBorderColor);
                // TODO: Table-cell border thickness

                if ((RowNr & 1) == 0)
                {
                    if (!string.IsNullOrEmpty(Settings.TableCellRowBackgroundColor1))
                    {
                        Output.WriteAttributeString("BackgroundColor", Settings.TableCellRowBackgroundColor1);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(Settings.TableCellRowBackgroundColor2))
                    {
                        Output.WriteAttributeString("BackgroundColor", Settings.TableCellRowBackgroundColor2);
                    }
                }

                Output.WriteAttributeString("Grid.Column", Column.ToString());
                Output.WriteAttributeString("Grid.Row", RowNr.ToString());

                if (ColSpan > 1)
                {
                    Output.WriteAttributeString("Grid.ColumnSpan", ColSpan.ToString());
                }

                if (E.InlineSpanElement)
                {
                    Paragraph.GenerateXamarinFormsContentView(Output, TextAlignment, Settings.TableCellPadding);

                    Output.WriteStartElement("Label");
                    Output.WriteAttributeString("LineBreakMode", "WordWrap");
                    Output.WriteAttributeString("TextType", "Html");

                    if (Bold)
                    {
                        Output.WriteAttributeString("FontAttributes", "Bold");
                    }

                    StringBuilder Html = new StringBuilder();
                    E.GenerateHTML(Html);
                    Output.WriteCData(Html.ToString());

                    Output.WriteEndElement();                           // Label
                    Output.WriteEndElement();                           // Paragraph
                }
                else
                {
                    Output.WriteStartElement("ContentView");
                    Output.WriteAttributeString("Padding", Settings.TableCellPadding);

                    Output.WriteStartElement("StackLayout");
                    E.GenerateXamarinForms(Output, TextAlignment);
                    Output.WriteEndElement();                       // StackLayout

                    Output.WriteEndElement();                       // ContentView
                }

                Output.WriteEndElement();                   // Frame
            }
        }
Ejemplo n.º 4
0
        public void Render(HtmlTextWriter writer, int level, int inLevel, int maxRowSpan, Dictionary <string, BaseColumn> columnsDic, BaseJournalControl journalControl, List <RowProperties> rowsPropertieses)
        {
            if (level == 0 && !HideInHeader)
            {
                int height = 0;
                for (int i = inLevel; i < inLevel + RowSpan; i++)
                {
                    if (rowsPropertieses.Count <= i || rowsPropertieses[i].Height == null || rowsPropertieses[i].Height == 0)
                    {
                        height = 0;
                        break;
                    }
                    height += rowsPropertieses[i].Height.Value;
                    if (i > inLevel)
                    {
                        height += 11;
                    }
                }
                writer.WriteLine();
                writer.AddAttribute("onmousemove", "changeWidthOnCellMouseMove(event, this);");
                writer.AddAttribute("onmousedown", "changeWidthCellMouseDown(event, this);");
                writer.AddAttribute(HtmlTextWriterAttribute.Rowspan, RowSpan.ToString());
                writer.AddAttribute(HtmlTextWriterAttribute.Colspan, ColSpan.ToString());
                //writer.AddAttribute(HtmlTextWriterAttribute.Align, "left");
                writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID);
                if (Width > 0)
                {
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Width, Width + "px");
                }
                if (height > 0)
                {
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Height, height + "px");
                }
                if (!string.IsNullOrEmpty(BColor))
                {
                    writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, BColor);
                }
                if (!string.IsNullOrEmpty(PColor))
                {
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Color, PColor);
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Th);//th

                var isIE = "IE".Equals(HttpContext.Current.Request.Browser.Browser, StringComparison.OrdinalIgnoreCase) &&
                           string.Compare("9.0", HttpContext.Current.Request.Browser.Version, StringComparison.OrdinalIgnoreCase) > 0;

                if (IsVerticalHeader && !isIE)
                {
                    if (Width > 0)
                    {
                        writer.AddStyleAttribute(HtmlTextWriterStyle.Height, Width + "px");
                    }
                    if (height > 0)
                    {
                        writer.AddStyleAttribute(HtmlTextWriterStyle.Width, height + "px");
                    }
                    if (Width > 0 && height > 0)
                    {
                        writer.AddStyleAttribute("margin-top", (height - Width) / 2 + "px");
                        writer.AddStyleAttribute("margin-bottom", (height - Width) / 2 + "px");
                        writer.AddStyleAttribute("margin-left", (Width - height) / 2 + "px");
                        writer.AddStyleAttribute("margin-right", (Width - height) / 2 + "px");
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "DefaultRotate270Deg");
                    }

                    writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "left");
                }
                else
                {
                    if (Width > 0)
                    {
                        writer.AddStyleAttribute(HtmlTextWriterStyle.Width, Width + "px");
                    }
                    if (height > 0)
                    {
                        writer.AddStyleAttribute(HtmlTextWriterStyle.Height, height + "px");
                    }
                    if (IsVerticalHeader)
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "IE8Rotate270Deg");
                    }
                }

                if (Width > 0 || height > 0)
                {
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "hidden");
                }
                if (!string.IsNullOrEmpty(ToolTipRu) && !LocalizationHelper.IsCultureKZ)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, ToolTipRu);
                }
                else if (!string.IsNullOrEmpty(ToolTipKz) && LocalizationHelper.IsCultureKZ)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, ToolTipKz);
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Div);                                           //div

                if (BaseColumn == null && CrossColumnIDObject != null && IsTreeColumn && !HideTreeLink) //если это иерархичная кросс колонка
                {
                    var postBack = journalControl.Page.ClientScript.GetPostBackClientHyperlink(
                        journalControl,
                        string.Format("FilterBy:{0}:Equals:{1}:{2}",
                                      BaseFilterParameter.TreeStartLevelFilterName + CrossColumnHeaderRow.GetType().Name,
                                      CrossColumnIDObject,
                                      Header));
                    writer.AddAttribute(HtmlTextWriterAttribute.Href, postBack);
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, Resources.SFilterHeader);
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    RenderHeaderText(writer);
                    writer.RenderEndTag();
                }
                else if (!string.IsNullOrEmpty(HyperLinkUrl) || !string.IsNullOrEmpty(HyperLinkOnClick))
                {
                    var url    = string.IsNullOrEmpty(HyperLinkUrl) ? "javascript:void(0);" : HyperLinkUrl;
                    var target = string.IsNullOrEmpty(HyperLinkTarget) ? "_blank" : HyperLinkTarget;
                    writer.AddAttribute(HtmlTextWriterAttribute.Href, url);
                    writer.AddAttribute(HtmlTextWriterAttribute.Target, target);
                    if (!string.IsNullOrEmpty(HyperLinkOnClick))
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Onclick, HyperLinkOnClick);
                    }
                    writer.RenderBeginTag(HtmlTextWriterTag.A);
                    RenderHeaderText(writer);
                    writer.RenderEndTag();//A
                }
                else
                {
                    RenderHeaderText(writer);
                }

                writer.RenderEndTag();//div

                /*var column = string.IsNullOrEmpty(ColumnName) ? null : columnsDic[ColumnName];
                 * if (column != null && false)
                 * {
                 *  if (column.OrderColumnNameRu != null && !LocalizationHelper.IsCultureKZ)
                 *      RenderHeaderOrder(writer, column.OrderColumnNameRu, journalControl);
                 *  else if (column.OrderColumnNameKz != null && LocalizationHelper.IsCultureKZ)
                 *      RenderHeaderOrder(writer, column.OrderColumnNameKz, journalControl);
                 *  if (column.OrderColumnName != null)
                 *      RenderHeaderOrder(writer, column.OrderColumnName, journalControl);
                 * }*/

                writer.RenderEndTag();//Th
            }
            foreach (var child in GetChilds().Where(r => r.IsVisibleColumn(columnsDic)))
            {
                child.Render(writer, level - RowSpan, inLevel + RowSpan, maxRowSpan - RowSpan, columnsDic, journalControl, rowsPropertieses);
            }
        }