コード例 #1
0
        public static void FillTRContainerTemplate(ref Template.Table table, ref int tableIndex, ref int trGroupIndex, ref int trIndex, ref int tdIndex, Template.BlockInfo sourceTemplateHolder, ref string templateTag)
        {
            #region new TR Container || not ( Default: new TR TemplateHolder )

            List <Template.BlockInfo> trContainerTemplateArray = Template.Blocks(sourceTemplateHolder.Value, templateTag, "Template_Container", "/Template_Container", _searchBeforeTag: "Template_TR");

            List <Template.BlockInfo> trTemplateArray = null;

            Template.BlockInfo trContainer = null;

            if (trContainerTemplateArray.Count >= 1)
            {
                trContainer = trContainerTemplateArray[0];

                trTemplateArray = Template.Blocks(trContainer.Value, templateTag, "Template_TR", "Template_TR");
            }
            else
            {
                trContainer = null;

                trTemplateArray = Template.Blocks(sourceTemplateHolder.Value, templateTag, "Template_TR", "Template_TR");
            }

            if (table.GTRs[trGroupIndex] == null)
            {
                table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>();
            }

            #region new TR s ( Container & TemplateHolder )

            trIndex = -1;

            foreach (var trTemplateHolder in trTemplateArray)
            {
                trIndex++;

                //if (trIndex == 0)
                //{
                //    int __debug__ = 0;
                //}

                if (trIndex == 0)
                {
                    trTemplateHolder.FillTemplateRef(table);
                    trContainer.FillTemplateRef(table);
                    //
                    // # DATA Item & Template.TagInfo #
                    //
                    // debug pause
                    //
                    //trTemplateHolder.FillTagInfos();
                    //trContainer.FillTagInfos();
                }

                var TRsList = table.GTRs[trGroupIndex].TRs;

                TRsList.Add(new Template.TR(trTemplateHolder, trContainer));

                var TRz = TRsList[TRsList.Count - 1];

                #region new TD Container || not ( Default: new TD TemplateHolder )

                List <Template.BlockInfo> tdContainerTemplateArray = Template.Blocks(trTemplateHolder.Value, templateTag, "Template_Container", "/Template_Container", _searchBeforeTag: "Template_TD");

                List <Template.BlockInfo> tdTemplateArray = null;

                Template.BlockInfo tdContainer = null;

                if (tdContainerTemplateArray.Count >= 1)
                {
                    tdContainer = tdContainerTemplateArray[0];

                    tdTemplateArray = Template.Blocks(tdContainer.Value, templateTag, "Template_TD", "Template_TD");
                }
                else
                {
                    tdContainer = null;

                    tdTemplateArray = Template.Blocks(trTemplateHolder.Value, templateTag, "Template_TD", "Template_TD");
                }

                #region new TD s ( Container & TemplateHolder )

                tdIndex = -1;

                foreach (var tdTemplateHolder in tdTemplateArray)
                {
                    tdIndex++;

                    if (tdIndex == 0)
                    {
                        tdTemplateHolder.FillTemplateRef(table);
                        tdContainer.FillTemplateRef(table);
                        //
                        // # DATA Item & Template.TagInfo #
                        //
                        tdTemplateHolder.FillTagInfos();
                        //
                        // debug pause
                        //
                        //tdContainer.FillTagInfos();
                    }

                    var TDsList = TRsList[trIndex].TDs;

                    TDsList.Add(new Template.TD(null, tdTemplateHolder, tdContainer));

                    var TDz = TDsList[TDsList.Count - 1];

                    #region TD Pair

                    TDz.Pairs = TDz.Container.ToPairs(tdTemplateHolder);

                    #endregion
                }

                #endregion

                #endregion

                #region TR Pair s

                var TDzFirst = TRz.TDs[0];
                var TDzLast  = TRz.TDs[TRz.TDs.Count - 1];

                var pairs = TRz.TemplateHolder.ToPairs(TDzFirst.Container ?? TDzFirst.TemplateHolder, TDzLast.Container ?? TDzLast.TemplateHolder);

                TRz.Pairs = TRz.Pairs.Append(pairs);

                if (TRz.Container != null)
                {
                    TRz.Pairs = TRz.Pairs.Append(TRz.Container.ToPairs(TRz.TemplateHolder));
                }

                #endregion
            }

            #endregion

            #endregion
        }
コード例 #2
0
        public static void TemplateInit_TemplateTableTrGroup(ref Template.Table table, ref int tableIndex, int trGroupIndex, int trIndex, int tdIndex, Template.BlockInfo tableTemplateHolder)
        {
            table.GTRs = new Template.Block <Template.TR> .Group <Template.TR>();

            List <Template.BlockInfo> trGroupTemplateArray = Template.Blocks(tableTemplateHolder.Value, Page.TemplateTag, "Template_TRGroup", "/Template_TRGroup");

            #region None Template_TRGroup

            if (trGroupTemplateArray.Count == 0)
            {
                trGroupIndex = 0;

                Page.FillTRContainerTemplate(ref table, ref tableIndex, ref trGroupIndex, ref trIndex, ref tdIndex, tableTemplateHolder, ref Page.TemplateTag);

                #region GTR Pair <= Tr

                var pTRz = table.GTRs[trGroupIndex];

                var TRzFirst = pTRz.TRs[0];
                var TRzLast  = pTRz.TRs[pTRz.TRs.Count - 1];

                pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(TRzFirst.Container ?? TRzFirst.TemplateHolder, TRzLast.Container ?? TRzLast.TemplateHolder));

                #endregion

                // return => outside (for) continue
                //
                return;
            }

            #endregion

            trGroupIndex = -1;

            foreach (var trGroupTemplateHolder in trGroupTemplateArray)
            {
                trGroupIndex++;

                string templateSource = trGroupTemplateHolder.Value;

                List <Template.BlockInfo> innerTableTemplateArray = Template.Blocks(ref templateSource, Page.TemplateTag, "Template_TABLE", "/Template_TABLE");

                if (innerTableTemplateArray.Count == 0)
                {
                    #region None Table Template

                    table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>(trGroupTemplateHolder);

                    Page.FillTRContainerTemplate(ref table, ref tableIndex, ref trGroupIndex, ref trIndex, ref tdIndex, trGroupTemplateHolder, ref Page.TemplateTag);

                    #region GTR Pair <= Tr

                    var pTRz = table.GTRs[trGroupIndex];

                    var TRzFirst = pTRz.TRs[0];
                    var TRzLast  = pTRz.TRs[pTRz.TRs.Count - 1];

                    pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(TRzFirst.Container ?? TRzFirst.TemplateHolder, TRzLast.Container ?? TRzLast.TemplateHolder));

                    #endregion

                    #endregion
                }
                else
                {
                    //// for 1 Template_TABLE
                    ////
                    //foreach (var innerTableTemplateHolder in innerTableTemplateArray)
                    //{
                    //    table.GTRs[trGroupIndex] = new Template.Block<Template.TR>.TGroup<Template.TR>(trGroupTemplateHolder, innerTableTemplateHolder);

                    //    Template.Table innerTable = table.GTRs[trGroupIndex].InnerTable;

                    //    Page.TemplateInit_TemplateTableTrGroup(ref innerTable, ref tableIndex, 0, 0, 0, innerTableTemplateHolder);
                    //}

                    #region n || 1 Table s Template

                    table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>(trGroupTemplateHolder, innerTableTemplateArray);

                    for (int i = 0, iMax = table.GTRs[trGroupIndex].InnerTables.Count; i < iMax; i++)
                    {
                        Template.Table innerTable = table.GTRs[trGroupIndex].InnerTables[i];

                        Page.TemplateInit_TemplateTableTrGroup(ref innerTable, ref tableIndex, 0, 0, 0, innerTable.TemplateHolder);
                    }

                    #region GTR Pair <= Table s

                    var pTRz = table.GTRs[trGroupIndex];

                    var tableTemplateFirst = pTRz.InnerTables[0];
                    var tableTemplateLast  = pTRz.InnerTables[pTRz.InnerTables.Count - 1];

                    pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(tableTemplateFirst.TemplateHolder, tableTemplateLast.TemplateHolder));

                    #endregion

                    #endregion
                }
            }

            return;
        }