private static void InsertHistogram(
     HtmlRenderer htmlWriter,
     string title,
     string xAxisLabel,
     HistogramData data,
     int xAxisMaxValue,
     bool colllapsebyDefault     = true,
     HtmlContentInserter content = null)
 {
     htmlWriter.InsertExpander(title, delegate()
     {
         htmlWriter.InsertLineGraph(
             title,
             "Turn",
             xAxisLabel,
             data.GetXAxis(xAxisMaxValue),
             data.GetYAxis(xAxisMaxValue)
             );
         if (content != null)
         {
             content();
         }
     },
                               collapseByDefault: colllapsebyDefault);
 }
        private static void InsertLineGraph(
            HtmlRenderer htmlWriter,
            string title,
            PlayerAction player1,
            PlayerAction player2,
            ForwardAndReversePerTurnPlayerCounters forwardAndReverseCounters,
            ForwardAndReversePerTurnPlayerCounters turnCounters,
            int throughTurn,
            bool colllapsebyDefault     = true,
            HtmlContentInserter content = null)
        {
            if (forwardAndReverseCounters.forwardTotal.HasNonZeroData)
            {
                htmlWriter.InsertExpander(title, delegate()
                {
                    htmlWriter.InsertLineGraph(
                        title,
                        "Turn",
                        player1.PlayerName,
                        player2.PlayerName,
                        Enumerable.Range(1, throughTurn).ToArray(),
                        forwardAndReverseCounters.forwardTotal.GetAveragePerTurn(0, throughTurn, turnCounters.forwardTotal),
                        forwardAndReverseCounters.forwardTotal.GetAveragePerTurn(1, throughTurn, turnCounters.forwardTotal)
                        );
                    htmlWriter.InsertExpander("Counting back from the end of the Game ...", delegate()
                    {
                        htmlWriter.InsertLineGraph(
                            title,
                            "Turn",
                            player1.PlayerName,
                            player2.PlayerName,
                            Enumerable.Range(0, throughTurn).Select(turn => - turn).ToArray(),
                            forwardAndReverseCounters.reverseTotal.GetAveragePerTurn(0, throughTurn, turnCounters.reverseTotal),
                            forwardAndReverseCounters.reverseTotal.GetAveragePerTurn(1, throughTurn, turnCounters.reverseTotal)
                            );
                    });

                    if (content != null)
                    {
                        content();
                    }
                },
                                          collapseByDefault: colllapsebyDefault);
            }
        }
Example #3
0
        public void InsertExpander(
            string title,
            HtmlContentInserter content,
            bool collapseByDefault = true)
        {
            int    currentChartIndex = this.divIndex++;
            string divId             = "accordion_div" + currentChartIndex;

            this.textWriter.WriteLine("<div id='" + divId + "'>");
            this.textWriter.Indent();
            this.Header3(title);
            this.BeginTag("div");
            this.textWriter.Indent();
            content();
            this.textWriter.Unindent();
            this.EndTag();
            this.textWriter.Unindent();
            this.textWriter.WriteLine("</div>");
            this.BeginJavascriptTag();
            this.textWriter.WriteLine("$( '#" + divId + "' ).accordion({ ");
            this.textWriter.Indent();
            this.textWriter.WriteLine("collapsible: true,");
            this.textWriter.WriteLine("heightStyle: 'content',");
            this.textWriter.Unindent();
            this.textWriter.WriteLine("});");

            // collapse after initialziation so the graphs draw correctly
            if (collapseByDefault)
            {
                this.textWriter.WriteLine("google.setOnLoadCallback(setAccordionOptions);");
                this.textWriter.WriteLine("function setAccordionOptions() {");
                this.textWriter.Indent();
                this.textWriter.WriteLine("$(  '#" + divId + "').accordion( 'option', 'active', false);");
                this.textWriter.WriteLine("};");
                this.textWriter.WriteLine();
            }

            this.EndTag();
        }
        public void InsertExpander(
            string title,
            HtmlContentInserter content,
            bool collapseByDefault = true)
        {
            int currentChartIndex = this.divIndex++;
            string divId = "accordion_div" + currentChartIndex;

            this.textWriter.WriteLine("<div id='" + divId + "'>");
            this.textWriter.Indent();
            this.Header3(title);
            this.BeginTag("div");
            this.textWriter.Indent();
            content();
            this.textWriter.Unindent();
            this.EndTag();
            this.textWriter.Unindent();
            this.textWriter.WriteLine("</div>");
            this.BeginJavascriptTag();
            this.textWriter.WriteLine("$( '#" + divId + "' ).accordion({ ");
            this.textWriter.Indent();
                this.textWriter.WriteLine("collapsible: true,");
                this.textWriter.WriteLine("heightStyle: 'content',");
            this.textWriter.Unindent();
            this.textWriter.WriteLine("});");

            // collapse after initialziation so the graphs draw correctly
            if (collapseByDefault)
            {
                this.textWriter.WriteLine("google.setOnLoadCallback(setAccordionOptions);");
                this.textWriter.WriteLine("function setAccordionOptions() {");
                this.textWriter.Indent();
                    this.textWriter.WriteLine("$(  '#" + divId + "').accordion( 'option', 'active', false);");
                this.textWriter.WriteLine("};");
                this.textWriter.WriteLine();
            }

            this.EndTag();
        }
        private static void InsertLineGraph(
            HtmlRenderer htmlWriter,
            string title,
            PlayerAction player1,
            PlayerAction player2,
            ForwardAndReversePerTurnPlayerCounters forwardAndReverseCounters,
            ForwardAndReversePerTurnPlayerCounters turnCounters,
            int throughTurn,
            bool colllapsebyDefault = true,
            HtmlContentInserter content = null)
        {
            if (forwardAndReverseCounters.forwardTotal.HasNonZeroData)
            {
                htmlWriter.InsertExpander(title, delegate()
                {
                    htmlWriter.InsertLineGraph(
                                title,
                                "Turn",
                                player1.PlayerName,
                                player2.PlayerName,
                                Enumerable.Range(1, throughTurn).ToArray(),
                                forwardAndReverseCounters.forwardTotal.GetAveragePerTurn(0, throughTurn, turnCounters.forwardTotal),
                                forwardAndReverseCounters.forwardTotal.GetAveragePerTurn(1, throughTurn, turnCounters.forwardTotal)
                                );
                    htmlWriter.InsertExpander("Counting back from the end of the Game ...", delegate()
                    {
                        htmlWriter.InsertLineGraph(
                                title,
                                "Turn",
                                player1.PlayerName,
                                player2.PlayerName,
                                Enumerable.Range(0, throughTurn).Select(turn => -turn).ToArray(),
                                forwardAndReverseCounters.reverseTotal.GetAveragePerTurn(0, throughTurn, turnCounters.reverseTotal),
                                forwardAndReverseCounters.reverseTotal.GetAveragePerTurn(1, throughTurn, turnCounters.reverseTotal)
                                );
                    });

                    if (content != null)
                    {
                        content();
                    }
                },
                collapseByDefault: colllapsebyDefault);
            }
        }
 private static void InsertHistogram(
     HtmlRenderer htmlWriter,
     string title,
     string xAxisLabel,
     HistogramData data,
     int xAxisMaxValue,
     bool colllapsebyDefault = true,
     HtmlContentInserter content = null)
 {
     htmlWriter.InsertExpander(title, delegate()
     {
         htmlWriter.InsertLineGraph(
                     title,
                     "Turn",
                     xAxisLabel,
                     data.GetXAxis(xAxisMaxValue),
                     data.GetYAxis(xAxisMaxValue)
                     );
         if (content != null)
             content();
     },
     collapseByDefault: colllapsebyDefault);
 }