${iServerJava6R_ThemeGraph_Title}

${iServerJava6R_ThemeGraph_Description}

Inheritance: Theme
        internal static string ToJson(ThemeGraph themeGraph)
        {
            string json = "{";
            List<string> list = new List<string>();

            list.Add(string.Format("\"barWidth\":{0}", themeGraph.BarWidth.ToString(System.Globalization.CultureInfo.InvariantCulture)));

            if (themeGraph.Flow != null)
            {
                list.Add(ThemeFlow.ToJson(themeGraph.Flow));
            }
            else
            {
                list.Add(string.Format("\"leaderLineStyle\":{0}", ServerStyle.ToJson(new ServerStyle())));
                list.Add("\"flowEnabled\":true");
                list.Add("\"leaderLineDisplayed\":false");
            }

            list.Add(string.Format("\"graduatedMode\":\"{0}\"", themeGraph.GraduatedMode));

            if (themeGraph.GraphAxes != null)
            {
                list.Add(ThemeGraphAxes.ToJson(themeGraph.GraphAxes));
            }
            else
            {
                list.Add(string.Format("\"axesColor\":{0}", ServerColor.ToJson(new ServerColor())));
                list.Add("\"axesDisplayed\":false");
                list.Add("\"axesGridDisplayed\":false");
                list.Add(string.Format("\"axesTextStyle\":{0}", ServerTextStyle.ToJson(new ServerTextStyle())));
                list.Add("\"axesTextDisplayed\":false");
            }

            if (themeGraph.GraphSize != null)
            {
                list.Add(ThemeGraphSize.ToJson(themeGraph.GraphSize));
            }
            else
            {
                list.Add(string.Format("\"maxGraphSize\":0.0"));
                list.Add(string.Format("\"minGraphSize\":0.0"));
            }

            list.Add(string.Format("\"graphSizeFixed\":{0}", themeGraph.GraphSizeFixed.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLower()));

            if (themeGraph.GraphText != null)
            {
                list.Add(ThemeGraphText.ToJson(themeGraph.GraphText));
            }
            else
            {
                list.Add(string.Format("\"graphTextStyle\":{0}", ServerTextStyle.ToJson(new ServerTextStyle())));
                list.Add("\"graphTextDisplayed\":false");
                list.Add("\"graphTextFormat\":\"CAPTION\"");
            }

            list.Add(string.Format("\"graphType\":\"{0}\"", themeGraph.GraphType));

            if (themeGraph.Items != null && themeGraph.Items.Count > 0)
            {
                List<string> itemList = new List<string>();
                foreach (var item in themeGraph.Items)
                {
                    itemList.Add(ThemeGraphItem.ToJson(item));

                }
                list.Add(string.Format("\"items\":[{0}]", string.Join(",", itemList.ToArray())));
            }
            else
            {
                list.Add("\"items\":null");
            }

            list.Add(string.Format("\"negativeDisplayed\":{0}", themeGraph.NegativeDisplayed.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLower()));

            if (themeGraph.Offset != null)
            {
                list.Add(ThemeOffset.ToJson(themeGraph.Offset));
            }
            else
            {
                list.Add("\"offsetX\":\"\"");
                list.Add("\"offsetY\":\"\"");
                list.Add("\"offsetFixed\":false");
            }

            list.Add(string.Format("\"overlapAvoided\":{0}", themeGraph.OverlapAvoided.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLower()));

            list.Add(string.Format("\"roseAngle\":{0}", themeGraph.RoseAngle.ToString(System.Globalization.CultureInfo.InvariantCulture)));
            list.Add(string.Format("\"startAngle\":{0}", themeGraph.StartAngle.ToString(System.Globalization.CultureInfo.InvariantCulture)));

            list.Add("\"memoryData\":null");
            list.Add("\"type\":\"GRAPH\"");

            if (themeGraph.MemoryKeys != null && themeGraph.MemoryKeys.Count > 0)
            {
                list.Add(string.Format("\"memoryKeys\":[{0}]", string.Join(",", themeGraph.MemoryKeys)));
            }
            else
            {
                list.Add("\"memoryKeys\":[]");
            }

            json += string.Join(",", list.ToArray());
            json += "}";

            return json;
        }
        private void ThemeGraphButton_Click(object sender, RoutedEventArgs e)
        {
            ThemeGraph graphTheme = new ThemeGraph
            {
                BarWidth = 0.035,
                Offset = new ThemeOffset
                {
                    OffsetFixed = false,
                    OffsetX = "0.015",
                    OffsetY = "0.015"
                },
                Flow = new ThemeFlow
                {
                    FlowEnabled = true,
                    LeaderLineDisplayed = false,
                },
                GraduatedMode = GraduatedMode.SQUAREROOT,
                GraphAxes = new ThemeGraphAxes
                {
                    AxesDisplayed = false,
                    AxesGridDisplayed = false,
                    AxesTextDisplayed = false,
                },
                GraphSize = new ThemeGraphSize
                {
                    MaxGraphSize = 1,
                    MinGraphSize = 0.35
                },
                GraphSizeFixed = false,
                GraphText = new ThemeGraphText
                {
                    GraphTextDisplayed = true,
                    GraphTextFormat = ThemeGraphTextFormat.VALUE,
                    GraphTextStyle = new ServerTextStyle
                    {
                        FontName = "Times New Roman",
                        Align = SuperMap.Web.iServerJava6R.TextAlignment.BASELINECENTER,
                        FontHeight = 0.4,
                        Outline = false,
                    }
                },
                GraphType = ThemeGraphType.BAR3D,
                NegativeDisplayed = false,
                OverlapAvoided = false,
            };

            ThemeParameters themeGraphParams = new ThemeParameters
            {
                DatasetName = "World",
                DataSourceName = "World",
                Themes = new List<Theme> { graphTheme }
            };

            ThemeService themeGraphService = new ThemeService(url);
            themeGraphService.ProcessAsync(themeGraphParams);
            themeGraphService.ProcessCompleted += new EventHandler<ThemeEventArgs>(themeGraphService_ProcessCompleted);
            themeGraphService.Failed += new EventHandler<ServiceFailedEventArgs>(themeGraphService_Failed);
        }
        internal static ThemeGraph FromJson(JsonObject json)
        {
            if (json == null) return null;

            ThemeGraph themeGraph = new ThemeGraph();
            themeGraph.BarWidth = (double)json["barWidth"];
            themeGraph.Flow = ThemeFlow.FromJson(json);
            if (json["graduatedMode"] != null)
            {
                themeGraph.GraduatedMode = (GraduatedMode)Enum.Parse(typeof(GraduatedMode), json["graduatedMode"], true);
            }
            else
            {
                //不处理null的情况
            }
            themeGraph.GraphAxes = ThemeGraphAxes.FromJson(json);
            themeGraph.GraphSize = ThemeGraphSize.FromJson(json);
            themeGraph.GraphSizeFixed = (bool)json["graphSizeFixed"];
            themeGraph.GraphText = ThemeGraphText.FromJson(json);
            if (json["graphType"] != null)
            {
                themeGraph.GraphType = (ThemeGraphType)Enum.Parse(typeof(ThemeGraphType), json["graphType"], true);
            }
            else
            {
                //不处理null的情况
            }

            if (json["items"] != null)
            {
                List<ThemeGraphItem> graphItems = new List<ThemeGraphItem>();
                foreach (JsonObject item in (JsonArray)json["items"])
                {
                    graphItems.Add(ThemeGraphItem.FromJson(item));
                }
                themeGraph.Items = graphItems;
            }

            if (json["memoryKeys"] != null)
            {
                List<int> memoryKeysLsit = new List<int>();
                foreach (JsonObject item in (JsonArray)json["memoryKeys"])
                {
                    memoryKeysLsit.Add((int)item);
                }
                themeGraph.MemoryKeys = memoryKeysLsit;
            }

            themeGraph.NegativeDisplayed = (bool)json["negativeDisplayed"];
            themeGraph.Offset = ThemeOffset.FromJson(json);
            themeGraph.OverlapAvoided = (bool)json["overlapAvoided"];
            themeGraph.RoseAngle = (double)json["roseAngle"];
            themeGraph.StartAngle = (double)json["startAngle"];
            return themeGraph;
        }