public static Chart CompileFactionMembershipChart() { PieChart chart = new PieChart( "Faction Membership", "graphs_faction_membership", true ); FactionCollection factions = Faction.Factions; for ( int i = 0; i < factions.Count; ++i ) chart.Items.Add( factions[i].Definition.FriendlyName, factions[i].Members.Count ); return chart; }
private void RenderPieChart(PieChart chart, HtmlTextWriter html) { PieChartRenderer pieChart = new PieChartRenderer(Color.White); pieChart.ShowPercents = chart.ShowPercents; string[] labels = new string[chart.Items.Count]; string[] values = new string[chart.Items.Count]; for (int i = 0; i < chart.Items.Count; ++i) { ChartItem item = chart.Items[i]; labels[i] = item.Name; values[i] = item.Value.ToString(); } pieChart.CollectDataPoints(labels, values); Bitmap bmp = pieChart.Draw(); string fileName = chart.FileName + ".png"; bmp.Save(Path.Combine(this.m_OutputDirectory, fileName), ImageFormat.Png); html.Write("<!-- "); html.AddAttribute(HtmlAttr.Href, "#"); html.AddAttribute(HtmlAttr.Onclick, String.Format("javascript:window.open('{0}.html','ChildWindow','width={1},height={2},resizable=no,status=no,toolbar=no')", SafeFileName(this.FindNameFrom(chart)), bmp.Width + 30, bmp.Height + 80)); html.RenderBeginTag(HtmlTag.A); html.Write(chart.Name); html.RenderEndTag(); html.Write(" -->"); html.AddAttribute(HtmlAttr.Cellpadding, "0"); html.AddAttribute(HtmlAttr.Cellspacing, "0"); html.AddAttribute(HtmlAttr.Border, "0"); html.RenderBeginTag(HtmlTag.Table); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Class, "tbl-border"); html.RenderBeginTag(HtmlTag.Td); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Cellpadding, "4"); html.AddAttribute(HtmlAttr.Cellspacing, "1"); html.RenderBeginTag(HtmlTag.Table); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Colspan, "10"); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Align, "center"); html.AddAttribute(HtmlAttr.Class, "header"); html.RenderBeginTag(HtmlTag.Td); html.Write(chart.Name); html.RenderEndTag(); html.RenderEndTag(); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Colspan, "10"); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Align, "center"); html.AddAttribute(HtmlAttr.Class, "entry"); html.RenderBeginTag(HtmlTag.Td); html.AddAttribute(HtmlAttr.Width, bmp.Width.ToString()); html.AddAttribute(HtmlAttr.Height, bmp.Height.ToString()); html.AddAttribute(HtmlAttr.Src, fileName); html.RenderBeginTag(HtmlTag.Img); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); bmp.Dispose(); }
public static Chart CompileSkillChart( SkillDistribution[] distribs ) { PieChart chart = new PieChart( "GM Skill Distribution", "graphs_skill_distrib", true ); for ( int i = 0; i < 12; ++i ) chart.Items.Add( distribs[i].m_Skill.Name, distribs[i].m_NumberOfGMs ); int rem = 0; for ( int i = 12; i < distribs.Length; ++i ) rem += distribs[i].m_NumberOfGMs; chart.Items.Add( "Other", rem ); return chart; }
public static Chart CompileStatChart() { PieChart chart = new PieChart( "Stat Distribution", "graphs_strdexint_distrib", true ); ChartItem strItem = new ChartItem( "Strength", 0 ); ChartItem dexItem = new ChartItem( "Dexterity", 0 ); ChartItem intItem = new ChartItem( "Intelligence", 0 ); foreach ( Mobile mob in World.Mobiles.Values ) { if ( mob.RawStatTotal == mob.StatCap && mob is PlayerMobile ) { strItem.Value += mob.RawStr; dexItem.Value += mob.RawDex; intItem.Value += mob.RawInt; } } chart.Items.Add( strItem ); chart.Items.Add( dexItem ); chart.Items.Add( intItem ); return chart; }
private static Chart CompileDislikedArenas() { PieChart chart = new PieChart("Most Disliked Arenas", "graphs_arenas_disliked", false); Preferences prefs = Preferences.Instance; if (prefs != null) { List<Arena> arenas = Arena.Arenas; for (int i = 0; i < arenas.Count; ++i) { Arena arena = arenas[i]; string name = arena.Name; if (name != null) chart.Items.Add(name, 0); } ArrayList entries = prefs.Entries; for (int i = 0; i < entries.Count; ++i) { PreferencesEntry entry = (PreferencesEntry)entries[i]; ArrayList list = entry.Disliked; for (int j = 0; j < list.Count; ++j) { string disliked = (string)list[j]; for (int k = 0; k < chart.Items.Count; ++k) { ChartItem item = chart.Items[k]; if (item.Name == disliked) { ++item.Value; break; } } } } } return chart; }
private PieChart[] ChartTotalPages( StaffInfo[] staff, TimeSpan ts, string title, string fname ) { DateTime max = DateTime.UtcNow; DateTime min = max - ts; PieChart staffChart = new PieChart( title + " Staff Chart", fname + "_staff", true ); int other = 0; for ( int i = 0; i < staff.Length; ++i ) { int count = GetPageCount( staff[i], min, max ); if ( i < 12 && count > 0 ) staffChart.Items.Add( staff[i].Display, count ); else other += count; } if ( other > 0 ) staffChart.Items.Add( "Other", other ); PieChart resChart = new PieChart( title + " Resolutions", fname + "_resol", true ); int countTotal = GetPageCount( m_Pages, PageResolution.None, min, max ); int countHandled = GetPageCount( m_Pages, PageResolution.Handled, min, max ); int countDeleted = GetPageCount( m_Pages, PageResolution.Deleted, min, max ); int countCanceled = GetPageCount( m_Pages, PageResolution.Canceled, min, max ); int countLogged = GetPageCount( m_Pages, PageResolution.Logged, min, max ); int countUnres = countTotal - ( countHandled + countDeleted + countCanceled + countLogged ); resChart.Items.Add( "Handled", countHandled ); resChart.Items.Add( "Deleted", countDeleted ); resChart.Items.Add( "Canceled", countCanceled ); resChart.Items.Add( "Logged Out", countLogged ); resChart.Items.Add( "Unresolved", countUnres ); return new PieChart[]{ staffChart, resChart }; }
private void RenderPieChart(PieChart chart, HtmlTextWriter html) { PieChartRenderer pieChart = new PieChartRenderer(Color.White); pieChart.ShowPercents = chart.ShowPercents; string[] labels = new string[chart.Items.Count]; string[] values = new string[chart.Items.Count]; for (int i = 0; i < chart.Items.Count; ++i) { ChartItem item = chart.Items[i]; labels[i] = item.Name; values[i] = item.Value.ToString(); } pieChart.CollectDataPoints(labels, values); Bitmap bmp = pieChart.Draw(); string fileName = chart.FileName + ".png"; bmp.Save(Path.Combine(m_OutputDirectory, fileName), ImageFormat.Png); html.Write("<!-- "); html.AddAttribute(HtmlAttr.Href, "#"); html.AddAttribute(HtmlAttr.Onclick, String.Format("javascript:window.open('{0}.html','ChildWindow','width={1},height={2},resizable=no,status=no,toolbar=no')", SafeFileName(FindNameFrom(chart)), bmp.Width + 30, bmp.Height + 80)); html.RenderBeginTag(HtmlTag.A); html.Write(chart.Name); html.RenderEndTag(); html.Write(" -->"); html.AddAttribute(HtmlAttr.Cellpadding, "0"); html.AddAttribute(HtmlAttr.Cellspacing, "0"); html.AddAttribute(HtmlAttr.Border, "0"); html.RenderBeginTag(HtmlTag.Table); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Class, "tbl-border"); html.RenderBeginTag(HtmlTag.Td); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Cellpadding, "4"); html.AddAttribute(HtmlAttr.Cellspacing, "1"); html.RenderBeginTag(HtmlTag.Table); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Colspan, "10"); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Align, "center"); html.AddAttribute(HtmlAttr.Class, "header"); html.RenderBeginTag(HtmlTag.Td); html.Write(chart.Name); html.RenderEndTag(); html.RenderEndTag(); html.RenderBeginTag(HtmlTag.Tr); html.AddAttribute(HtmlAttr.Colspan, "10"); html.AddAttribute(HtmlAttr.Width, "100%"); html.AddAttribute(HtmlAttr.Align, "center"); html.AddAttribute(HtmlAttr.Class, "entry"); html.RenderBeginTag(HtmlTag.Td); html.AddAttribute(HtmlAttr.Width, bmp.Width.ToString()); html.AddAttribute(HtmlAttr.Height, bmp.Height.ToString()); html.AddAttribute(HtmlAttr.Src, fileName); html.RenderBeginTag(HtmlTag.Img); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); html.RenderEndTag(); bmp.Dispose(); }