public static string CreateStatsBars_Raphael(StatsBarStyle _StatsBarStyle, List <StatsBarData> _BarsData) { string graphSection = "<script>$(function () {if (g_RaphaelBarsDrawer == null) {g_RaphaelBarsDrawer = Raphael('diagramDiv', " + _StatsBarStyle.m_MaxWidth + ", " + (_BarsData.Count * 20) + ");}"; foreach (var bar in _BarsData) { graphSection += "VF_CreateDmgBar(" + bar.m_PercentageWidth.ToString(System.Globalization.CultureInfo.InvariantCulture) + ", '" + bar.m_BarColor + "', '" + bar.m_OnBarLeftText + "','" + _StatsBarStyle.m_BarTextColor + "', '" + bar.m_OnBarRightText + "');"; } graphSection += "});"; graphSection += "</script>"; graphSection += "<div id='diagramDiv'></div>"; return(graphSection); }
public static string CreateStatsBars_HTML(StatsBarStyle _StatsBarStyle, List <StatsBarData> _BarsData, int _ToggleViewMoreMaxCount, int _ToggleGroupID = -1) { //int beforeBarMaxSize = 0; //int afterBarMaxSize = 0; //foreach (var bar in _BarsData) //{ // if (bar.m_BeforeBarText != "") // { // if (beforeBarMaxSize < bar.m_BeforeBarText.Length) // beforeBarMaxSize = bar.m_BeforeBarText.Length; // } // if (bar.m_AfterBarText != "") // { // if (afterBarMaxSize < bar.m_AfterBarText.Length) // afterBarMaxSize = bar.m_AfterBarText.Length; // } //} //int s_BeforeBarWidth = (beforeBarMaxSize * 5); //int s_AfterBarWidth = (afterBarMaxSize * 5); //if (maxWidth < s_BeforeBarWidth + s_AfterBarWidth + 10) // maxWidth = s_BeforeBarWidth + s_AfterBarWidth + 10; int maxBarWidth = _StatsBarStyle.m_MaxWidth - (_StatsBarStyle.m_BeforeBarWidth + _StatsBarStyle.m_AfterBarWidth + 10); int barLeft = (_StatsBarStyle.m_BeforeBarWidth + 5); if (_StatsBarStyle.m_BeforeBarWidth == 0) { maxBarWidth += 5; barLeft = 0; } if (_StatsBarStyle.m_AfterBarWidth == 0) { maxBarWidth += 5; } System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(1000); if (g_StatsBarCounter >= 100) { g_StatsBarCounter -= 100; } ++g_StatsBarCounter; string statsBarID = "StatsBars_" + g_StatsBarCounter; stringBuilder.Append("<div class='VF_StatsBars' id='" + statsBarID + "'>"); stringBuilder.Append("<style>"); stringBuilder.Append(".VF_StatsBars .StatsBar1, .VF_StatsBars .StatsBar2 {width: " + _StatsBarStyle.m_MaxWidth + "px;}"); stringBuilder.Append(".VF_StatsBars .BeforeBar {width: " + _StatsBarStyle.m_BeforeBarWidth + "px;}"); stringBuilder.Append(".VF_StatsBars .ClassBar {position: absolute; left: " + barLeft + "px; color:" + _StatsBarStyle.m_BarTextColor + ";}"); stringBuilder.Append(".VF_StatsBars .AfterBar {width: " + _StatsBarStyle.m_AfterBarWidth + "px;left: " + (_StatsBarStyle.m_MaxWidth - _StatsBarStyle.m_AfterBarWidth) + "px;}"); stringBuilder.Append(".VF_StatsBars .ClassBar a { text-decoration: none; color:" + _StatsBarStyle.m_BarTextColor + ";}"); stringBuilder.Append("</style>"); stringBuilder.Append("<script>"); stringBuilder.Append("var g_Expanded_" + statsBarID + " = false;"); stringBuilder.Append("function Expand_" + statsBarID + "() {"); stringBuilder.Append("if(g_Expanded_" + statsBarID + " == true) {"); stringBuilder.Append("$('#" + statsBarID + "_DynamicShow').slideUp();"); stringBuilder.Append("$('#" + statsBarID + "_ButtonShow').text('Show More');"); stringBuilder.Append("} else {"); stringBuilder.Append("$('#" + statsBarID + "_DynamicShow').slideDown();"); stringBuilder.Append("$('#" + statsBarID + "_ButtonShow').text('Show Top " + _ToggleViewMoreMaxCount + "');"); stringBuilder.Append("} g_Expanded_" + statsBarID + " = !g_Expanded_" + statsBarID + ";"); stringBuilder.Append("}"); if (_ToggleGroupID != -1) { stringBuilder.Append("var g_ExpandGroupFuncs_" + _ToggleGroupID + " = g_ExpandGroupFuncs_" + _ToggleGroupID + " || [];"); stringBuilder.Append("g_ExpandGroupFuncs_" + _ToggleGroupID + ".push(Expand_" + statsBarID + ");"); stringBuilder.Append("function Expand_Group_" + _ToggleGroupID + "() {"); stringBuilder.Append("for(i = 0; i < g_ExpandGroupFuncs_" + _ToggleGroupID + ".length; ++i) {"); stringBuilder.Append("g_ExpandGroupFuncs_" + _ToggleGroupID + "[i]();"); stringBuilder.Append("}"); stringBuilder.Append("}"); } stringBuilder.Append("</script>"); stringBuilder.Append("<div class='TopBar'>"); { stringBuilder.Append("<div class='BeforeBar' style='text-align:center;'>" + _StatsBarStyle.m_LeftSideTitleText + "</div>"); stringBuilder.Append("<div class='TopBarTitle'>" + _StatsBarStyle.m_TitleText + "</div>"); stringBuilder.Append("<div class='AfterBar' style='text-align:center;'>" + _StatsBarStyle.m_RightSideTitleText + "</div>"); } stringBuilder.Append("</div>"); for (int i = 0; i < _BarsData.Count; ++i) { var bar = _BarsData[i]; double barWidth = bar.m_PercentageWidth * maxBarWidth; if (i == _ToggleViewMoreMaxCount) { stringBuilder.Append("<div id='" + statsBarID + "_DynamicShow' style='display: none;'>"); } if (i % 2 == 0) { stringBuilder.Append("<div class='StatsBar2'>"); } else { stringBuilder.Append("<div class='StatsBar1'>"); } if (bar.m_BeforeBarText != "") { stringBuilder.Append("<div class='BeforeBar'>" + bar.m_BeforeBarText + "</div>"); } if (bar.m_OnBarTextWidth < 0) { bar.m_OnBarTextWidth = (bar.m_OnBarLeftText.Length + bar.m_OnBarRightText.Length) * 1.4; } if (bar.m_OnBarTextWidth > barWidth * 1.25)// || (barWidth < 100 && bar.m_OnBarLeftText != "") { stringBuilder.Append("<div class='ClassBar' style='border-color: rgba(0, 0, 0, 1); background-color: rgba(100, 100, 100, 1);'>"); { stringBuilder.Append("<div class='OnBarLeft'>" + bar.m_OnBarLeftText + " " + bar.m_OnBarRightText + " </div>"); //if (bar.m_OnBarRightText != "") // graphSection += "<div class='OnBarRight'>" + bar.m_OnBarRightText + "</div>"; } stringBuilder.Append("</div>"); stringBuilder.Append("<div class='ClassBar' style='background-color: " + bar.m_BarColor + ";width: " + barWidth.ToStringDot() + "px;'>"); stringBuilder.Append("</div>"); } else { stringBuilder.Append("<div class='ClassBar' style='background-color: " + bar.m_BarColor + ";width: " + barWidth.ToStringDot() + "px;'>"); { stringBuilder.Append("<div class='OnBarLeft'>" + bar.m_OnBarLeftText + "</div>"); if (bar.m_OnBarRightText != "") { stringBuilder.Append("<div class='OnBarRight'>" + bar.m_OnBarRightText + "</div>"); } } stringBuilder.Append("</div>"); } if (bar.m_AfterBarText != "") { stringBuilder.Append("<div class='AfterBar'>" + bar.m_AfterBarText + "</div>"); } stringBuilder.Append("</div>");//StatsBar } if (_BarsData.Count > _ToggleViewMoreMaxCount) { stringBuilder.Append("</div>"); //StatsBars_" + g_StatsBarCounter + "_After25 stringBuilder.Append("<div class='TopBar'>"); stringBuilder.Append("<div class='TopBarTitle'><a href='javascript:void(0)' onclick='" + (_ToggleGroupID != -1 ? ("Expand_Group_" + _ToggleGroupID + "();") : ("Expand_" + statsBarID + "();")) + "' id='" + statsBarID + "_ButtonShow'>Show More</a></div>"); stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); return(stringBuilder.ToString()); }