public void DataRefresh() { IntInstance = Random.Range(0, 50); Vector3Instance = Vector3.one * Random.Range(0, 50); string all = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+"; int slength = Random.Range(1, 20); StringInstance = ""; for (int i = 0; i < slength; ++i) { StringInstance += all[Random.Range(0, all.Length)]; } CustomDataInstance.CustomVector3Data = Vector3.one * Random.Range(0, 50); CustomDataInstance.CustomColorData = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f)); CustomDataInstance.CustomEnumData = (CustomEnum)Random.Range(0, 3); CustomDataInstance.InsideData.insideData = Random.Range(0, 50); ListData.Clear(); ListData.Add(new InsideCustomData(Random.Range(0, 50))); ListData.Add(new InsideCustomData(Random.Range(0, 50))); ListData.Add(new InsideCustomData(Random.Range(0, 50))); DicData.Clear(); DicData.Add("Key1", Vector3.one * Random.Range(0, 50)); DicData.Add("Key2", Vector3.one * Random.Range(0, 50)); DicData.Add("Key3", Vector3.one * Random.Range(0, 50)); CustomClassDataInstance = new CustomClassData(); int len = Random.Range(1, 5); CustomClassDataInstance.CustomClassStringData = ""; for (int i = 0; i < len; ++i) { CustomClassDataInstance.CustomClassList.Add(Random.Range(0, 50)); CustomClassDataInstance.CustomClassDictionaryData.Add("Key" + i, Random.Range(0, 50)); CustomClassDataInstance.CustomClassStringData += all[Random.Range(0, all.Length)]; } ClusterCommand c = ClusterCommand.create("666"); c.addParameters("123", 456, "555", "miao"); c.addDic <string, Vector3>("dicName", DicData); FduClusterCommandDispatcher.SendClusterCommand(c); }
//重新采集数据 void RefreshData() { ClearData(); scale = 0.0f; scaleAnimationTrigger = true; maxWeight = float.MinValue; minWeight = 0; Dictionary <string, FduClusterCommandDispatcher.ExecutorData> .Enumerator Executors = FduClusterCommandDispatcher.getExecutors(); while (Executors.MoveNext()) { nodeData node = new nodeData(); node.CommandName = Executors.Current.Key; node.ExecutorCount = Executors.Current.Value.ActionMap.Count; this.nodeDataList.Add(node); } var invokeData = ClusterCommandStatisticClass.instance.getCommandAccumulatedData(); while (invokeData.MoveNext()) { nodeData node = nodeDataList.Find(delegate(nodeData n1) { return(n1.CommandName == invokeData.Current.Key); }); if (node != null) { node.invokedTimes = invokeData.Current.Value; maxWeight = maxWeight < node.invokedTimes ? node.invokedTimes : maxWeight; minWeight = minWeight > node.invokedTimes ? node.invokedTimes : minWeight; } else { noExecutorCommandList.Add(invokeData.Current.Key); } } genTestData(); root = BuildDataTree(); if (root != null) { Divide(root, true, new Vector2(rectsPos.x, rectsPos.y), rectsPos.width, rectsPos.height); ProcessDisplayNodeData(); } }
void Start() { DataRefresh(); FduClusterCommandDispatcher.AddCommandExecutor("TestCommand", (ClusterCommand c) => { Debug.Log(((CustomClassData)c.getParameter("para1")).CustomClassList.Count); }); }
//绘制子窗口 public override void DrawSubWindow() { var leftOffset = new GUIStyle(); leftOffset.margin.left = 10; if (!Application.isPlaying) { GUI.Label(subWindowRect, new GUIContent("You can get the information of Command Executor at run time", parentWindow.hintTexture), FduEditorGUI.getTitleStyle_LevelOne()); return; } //画Box背景 GUI.Box(ExecutorScroll, ""); //views = FduClusterViewManager.getClusterViews(); //==========================================搜索与总数部分Start=================================== if (ClusterHelper.Instance != null && ClusterHelper.Instance.Server != null) { hintText = "Master Node Command Executors"; } if (ClusterHelper.Instance != null && ClusterHelper.Instance.Client != null) { hintText = "Slave Node Command Executors"; } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(leftOffset, GUILayout.Width(subWindowRect.width)); EditorGUILayout.LabelField("Command Executor Count ", FduClusterCommandDispatcher.getExecutorCount().ToString(), leftOffset); EditorGUILayout.LabelField(hintText); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(leftOffset, GUILayout.Width(subWindowRect.width)); searchText_CommandExecutor = EditorGUILayout.TextField("Search", searchText_CommandExecutor, GUILayout.Width(subWindowRect.width * 0.5f), GUILayout.Height(20)); EditorGUILayout.Space(); if (GUILayout.Button("Clear", GUILayout.Height(21))) { searchText_CommandExecutor = ""; searchingFlag = false; EditorGUI.FocusTextInControl(""); } if (GUILayout.Button("Search", GUILayout.Height(21))) { searchingFlag = true; EditorGUI.FocusTextInControl(""); } EditorGUILayout.EndHorizontal(); //==========================================搜索与总数部分End=================================== //==========================================Executor列表部分Start=================================== leftOffset.margin.left += 15; var center = new GUIStyle(); center.alignment = TextAnchor.MiddleCenter; float len1, len2, len3, len4, len5; len1 = ExecutorScroll.width * 0.3f; len2 = ExecutorScroll.width * 0.3f; len3 = ExecutorScroll.width * 0.3f; len4 = ExecutorScroll.width * 0.43f; len5 = ExecutorScroll.width * 0.1f; var labelStyle = new GUIStyle(); labelStyle.fontStyle = FontStyle.Bold; EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(leftOffset, GUILayout.Width(subWindowRect.width)); EditorGUILayout.LabelField("Executor Info", labelStyle, GUILayout.Width(len1)); EditorGUILayout.LabelField("Observed Command", labelStyle, GUILayout.Width(len2)); EditorGUILayout.LabelField("Executor Target", labelStyle, GUILayout.Width(len3)); EditorGUILayout.EndHorizontal(); if (FduClusterCommandDispatcher.getExecutorCount() <= 0) { GUI.Label(ExecutorScroll, new GUIContent("No Registed Command Executor", parentWindow.hintTexture), FduEditorGUI.getTitleStyle_LevelOne()); return; } EditorGUILayout.Space(); CommandScrollPos = EditorGUILayout.BeginScrollView(CommandScrollPos, leftOffset, GUILayout.Width(ExecutorScroll.width - 10), GUILayout.Height(ExecutorScroll.height - 10)); var Executors = FduClusterCommandDispatcher.getExecutors(); int listCount = 0; while (Executors.MoveNext()) { var subExecutors = Executors.Current.Value.ActionMap.GetEnumerator(); while (subExecutors.MoveNext()) { EditorGUILayout.BeginHorizontal(); string exeInfo = string.Format("ID:{0} Name:{1}", subExecutors.Current.Key, subExecutors.Current.Value.Method.Name); EditorGUILayout.LabelField(exeInfo, GUILayout.Width(len1)); EditorGUILayout.LabelField(Executors.Current.Key, GUILayout.Width(len2)); if (subExecutors.Current.Value.Target != null) { EditorGUILayout.LabelField(subExecutors.Current.Value.Target.ToString(), GUILayout.Width(len3)); } else { EditorGUILayout.LabelField("NULL", GUILayout.Width(len3)); } EditorGUILayout.EndHorizontal(); listCount++; } } //为了强制显示scroll view 的进度条 BeginScrollView里面的alwaysShowVertical参数没用 for (int i = listCount; i < 35; ++i) { EditorGUILayout.LabelField(""); } EditorGUILayout.EndScrollView(); //==========================================Executor列表部分End=================================== }