Exemple #1
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 #2
0
        /// <summary>
        /// 扩展功能按钮栏
        /// </summary>
        /// <param name="lineData"></param>
        protected virtual void RenderFunctionButton(T lineData)
        {
            if (current_windowType == WindowType.CALLBACK)
            {
                if (GUILayout.Button(Language.Select, GUI.skin.GetStyle("ButtonLeft"),
                                     GUILayout.Width(Data.currentEditorSetting.KitButtonWidth * 2)))
                {
                    //要确认当前是何种模式
                    if (select_model == SelectModel.MUTI)
                    {
                        SelectDisplayEffectList.Add(lineData.GetHashCode());
                        select_callback(selector_raw_list, lineData);
                        ShowNotification(new GUIContent(string.Format(Language.SuccessAdd, JsonUtility.ToJson(lineData))));
                    }
                    else
                    {
                        single_select_callback(selector_raw_single, lineData, selector_raw_field_single);
                        Close();
                    }
                }

                if (GUILayout.Button(Language.Close, GUI.skin.GetStyle("ButtonRight"),
                                     GUILayout.Width(Data.currentEditorSetting.KitButtonWidth * 2)))
                {
                    Close();
                    return;
                }
            }

            if (current_windowType != WindowType.CALLBACK)
            {
                if (GUILayout.Button(Language.Copy, GUI.skin.GetStyle("ButtonLeft"),
                                     new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) }))
                {
                    PasteItem = DeepClone(lineData);
                }

                if (GUILayout.Button(Language.Delete, GUI.skin.GetStyle("ButtonMid"),
                                     new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) }))
                {
                    deleteList.Add(lineData.GetHashCode());
                    ShowNotification(new GUIContent(Language.Success));
                }

                if (GUILayout.Button(Language.Verfiy, GUI.skin.GetStyle("ButtonMid"),
                                     new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) }))
                {
                    VerfiyLineData(lineData);
                }

                if (GUILayout.Button(Language.Paste, GUI.skin.GetStyle("ButtonRight"),
                                     new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) }))
                {
                    if (PasteItem != null)
                    {
                        //Bug fix : 从指定位置删除插入
                        var insertPos = Data.config_current.ConfigList.IndexOf(lineData);
                        Data.config_current.ConfigList.Remove(lineData);
                        //PasteItem.SetID(item.GetID());//修改为函数插入
                        Data.config_current.ConfigList.Insert(insertPos, DeepClone(PasteItem));
                    }
                }
            }
        }