Exemple #1
0
        /// <summary>
        /// 处理表头
        /// </summary>
        protected virtual void RenderHead()
        {
            GUILayout.BeginScrollView(new Vector2(posv.x, 0), false, false, GUIStyle.none, GUIStyle.none,
                                      new GUILayoutOption[] { GUILayout.Height(Data.currentEditorSetting.TableHeadHeight) });

            GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(),
                                      new GUILayoutOption[] { GUILayout.Width(position.width) });

            //TODO Set Order
            foreach (var item in Data.CurrentClassFieldsCache)
            {
                if (GUILayout.Button(
                        string.IsNullOrEmpty(item.config_editor_setting.Display)
                        ? item.field_info.Name
                        : item.config_editor_setting.Display, EditorGUIStyle.GetTagButtonStyle(),
                        new GUILayoutOption[]
                {
                    GUILayout.Width(GetResizeWidth(item.config_editor_setting.Width,
                                                   item.config_editor_setting.MaxWidth))
                }))
                {
                    HeadButton_Click(item.field_info.Name);
                }

                GUILayout.Space(Data.currentEditorSetting.ColumnSpan);
            }

            RenderExtensionHead();

            if (current_windowType == WindowType.CALLBACK)
            {
                GUILayout.Label(Language.Select, EditorGUIStyle.GetTagButtonStyle(),
                                GUILayout.Width(Data.currentEditorSetting.ExtensionHeadTagWith));
            }
            else if (current_windowType == WindowType.INPUT)
            {
                GUILayout.Label(Language.Operation, EditorGUIStyle.GetTagButtonStyle(),
                                GUILayout.Width(Data.currentEditorSetting.ExtensionHeadTagWith));
            }
            else
            {
                GUILayout.Label(Language.Operation, EditorGUIStyle.GetTagButtonStyle(),
                                GUILayout.Width(Data.currentEditorSetting.ExtensionHeadTagWith));
            }

            GUILayout.EndHorizontal();
            GUILayout.EndScrollView();
        }
Exemple #2
0
        /// <summary>
        /// 处理表主体
        /// </summary>
        protected virtual void RenderTable()
        {
            posv = GUILayout.BeginScrollView(posv, false, false, EditorGUIStyle.GetHorizontalScrollbarStyle(),
                                             GUIStyle.none, EditorGUIStyle.GetTableGroupBoxStyle());

            if (!string.IsNullOrEmpty(Data.currentEditorSetting.SearchResourceName))
            {
                Data.currentEditorSetting.ItemMaxCount = Data.LinesCache.Count(x =>
                                                                               x.SearchKey.ToLower().Contains(Data.currentEditorSetting.SearchResourceName.ToLower().Trim()));

                Finallylist = Data.LinesCache
                              .Where(x => x.SearchKey.ToLower().Contains(Data.currentEditorSetting.SearchResourceName.ToLower().Trim()))
                              .Skip(Data.currentEditorSetting.PageIndex * Data.currentEditorSetting.PageAmount)
                              .Take(Data.currentEditorSetting.PageAmount).ToList();
            }
            else
            {
                Data.currentEditorSetting.ItemMaxCount = Data.LinesCache.Count;
                Finallylist = Data.LinesCache
                              .Skip(Data.currentEditorSetting.PageIndex * Data.currentEditorSetting.PageAmount)
                              .Take(Data.currentEditorSetting.PageAmount).ToList();
            }

            //遍历搜索结果
            for (int i = 0; i < Finallylist.Count; i++)
            {
                var lineData = Finallylist[i];

                if (deleteList.Contains(lineData.HashCode))
                {
                    continue;
                }

                //Select effect diaplay
                if (current_windowType == WindowType.CALLBACK && SelectDisplayEffectList.Contains(lineData.HashCode))
                {
                    GUI.backgroundColor = Color.green;
                }
                else
                {
                    GUI.backgroundColor = Color.white;
                }


                GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle());

                foreach (var column in lineData.ColumnInfo)
                {
                    if (ErrorLine.Contains(lineData.HashCode))
                    {
                        GUI.color = Color.red;
                    }
                    RenderRawColumn(column, lineData);
                    GUI.color = Color.white;

                    GUILayout.Space(Data.currentEditorSetting.ColumnSpan);
                }

                RenderExtensionButton(lineData.RawData);
                GUILayout.Space(Data.currentEditorSetting.ColumnSpan);

                RenderFunctionButton(lineData.RawData);
                GUILayout.Space(Data.currentEditorSetting.ColumnSpan);

                GUILayout.EndHorizontal();
                GUILayout.Space(5);
            }

            GUILayout.Space(15);
            GUILayout.EndScrollView();
        }
Exemple #3
0
        /// <summary>
        /// 分页算法
        /// </summary>
        protected virtual void Page()
        {
            GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(),
                                      new GUILayoutOption[] { GUILayout.Width(position.width) });
            int maxIndex =
                Mathf.FloorToInt((Data.currentEditorSetting.ItemMaxCount - 1) / (float)Data.currentEditorSetting.PageAmount);

            if (maxIndex < Data.currentEditorSetting.PageIndex)
            {
                Data.currentEditorSetting.PageIndex = 0;
            }

            GUILayout.Label(string.Format(Language.PageInfoFormate, Data.currentEditorSetting.PageIndex + 1, maxIndex + 1),
                            GUILayout.Width(100));
            GUILayout.Label(Language.OnePageMaxNumber, EditorGUIStyle.GetPageLabelGuiStyle(), GUILayout.Width(80));
            int.TryParse(GUILayout.TextField(Data.currentEditorSetting.PageAmount.ToString(), GUILayout.Width(40)),
                         out Data.currentEditorSetting.PageAmount);


            if (GUILayout.Button(Language.Jump, EditorGUIStyle.GetJumpButtonGuiStyle(), GUILayout.Width(40)))
            {
                if (jumpTo - 1 < 0)
                {
                    jumpTo = 0;
                }

                if (jumpTo - 1 > maxIndex)
                {
                    jumpTo = maxIndex;
                }

                Data.currentEditorSetting.PageIndex = jumpTo - 1;
            }

            jumpTo = EditorGUILayout.IntField(jumpTo, GUILayout.Width(40));

            if (GUILayout.Button(Language.Previous, GUI.skin.GetStyle("ButtonLeft"), GUILayout.Height(16)))
            {
                if (Data.currentEditorSetting.PageIndex - 1 < 0)
                {
                    Data.currentEditorSetting.PageIndex = 0;
                }
                else
                {
                    Data.currentEditorSetting.PageIndex -= 1;
                }
            }

            if (GUILayout.Button(Language.Next, GUI.skin.GetStyle("ButtonRight"), GUILayout.Height(16)))
            {
                if (Data.currentEditorSetting.PageIndex + 1 > maxIndex)
                {
                    Data.currentEditorSetting.PageIndex = maxIndex;
                }
                else
                {
                    Data.currentEditorSetting.PageIndex++;
                }
            }

            //处理缩放
            if (!Data.currentEditorSetting.HideResizeSlider)
            {
                Data.currentEditorSetting.Resize =
                    (int)GUILayout.HorizontalSlider(Data.currentEditorSetting.Resize, 1, 5, GUILayout.Width(70));
            }

            GUILayout.EndHorizontal();
        }