예제 #1
0
        /// <summary>
        /// Changes visibility of InnerLog tab
        /// </summary>
        /// <param name="b"></param>
        internal void SwitchInnerLogTabVisibility(bool b)
        {
            Log9KTab t = GetTab(INNER_LOG_TAB);

            if (t == null)
            {
                Error("Не найдена вкладка для внутреннего логирования контрола логов");
                return;
            }
            if (b)
            {
                if (!Log9KTabsCollection.Contains(t))
                {
                    Log9KTabsCollection.Add(t);
                    _isInnerLogTabVisible = true;
                }
            }
            else
            {
                if (Log9KTabsCollection.Contains(t))
                {
                    Log9KTabsCollection.Remove(t);
                    _isInnerLogTabVisible = false;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Make the tab with given type active
        /// </summary>
        public void SetActiveTab(string tabType)
        {
            Log9KTab tab = GetTab(tabType);

            if (tab != null)
            {
                if (!Log9KTabsCollection.Contains(tab))
                {
                    return;
                }
                Log9KUtil.BeginInvokeInUiThread(() => {
                    CurrentTab = tab;
                });
            }
        }
예제 #3
0
        /// <summary>
        /// <para>Set order of tabs in tabs collection</para>
        /// <para>Arguments should be TabTypes and strings (for custom tabs)</para>
        /// </summary>
        /// <param name="types">Types of tabs in desired order (TabTypes and strings)</param>
        public bool SetTabOrder(params object[] types)
        {
            if (types.Length == 0)
            {
                InnerLog("Ошибка: аргумент функции SetTabOrder — длина массива равна нулю");
                return(false);
            }
            List <Log9KTab> tabsList = new List <Log9KTab>();

            foreach (object type in types)
            {
                bool isTabTypes = type is TabTypes;
                bool isString   = type is string;
                if (!(isTabTypes || isString))
                {
                    InnerLog("Ошибка: в метод SetTabOrder был передан объект не являющийся строкой/TabTypes");
                    return(false);
                }
                if (isTabTypes)
                {
                    TabTypes tabType = type as TabTypes? ?? TabTypes.INFO;
                    if (tabType == TabTypes.CUSTOM)
                    {
                        InnerLog("Для установки положения пользовательской вкладки передавайте имя вкладки в метод, а не тип CUSTOM");
                        continue;
                    }
                    Log9KTab log9Ktab = GetTab(tabType);
                    if (log9Ktab == null)
                    {
                        InnerLog("Не найдено вкладки с типом: " + tabType);
                    }
                    else
                    {
                        tabsList.Add(log9Ktab);
                    }
                }
                if (isString)
                {
                    string   tabType  = type as string;
                    Log9KTab log9Ktab = GetTab(tabType);
                    if (log9Ktab != null)
                    {
                        tabsList.Add(log9Ktab);
                    }
                    else
                    {
                        InnerLog("Ошибка: вкладки с типом: " + tabType + " не найдено");
                    }
                }
            }
            if (tabsList.Count == 0)
            {
                InnerLog("Ошибка: в методе SetTabOrder при формировании списка вкладок был получен пустой список");
                return(false);
            }
            else
            {
                Log9KTabsCollection.Clear();
                foreach (Log9KTab log9KTab in tabsList)
                {
                    Log9KTabsCollection.Add(log9KTab);
                }
                if (_isInnerLogTabVisible)
                {
                    Log9KTab innerTab = GetTab(INNER_LOG_TAB);
                    if (innerTab != null)
                    {
                        Log9KTabsCollection.Add(innerTab);
                    }
                    else
                    {
                        Error("Не найдена вкладка для логирования LogControl9K:" + INNER_LOG_TAB);
                    }
                }
                return(true);
            }
        }
예제 #4
0
 /// <summary>
 /// <para>Add new CUSTOM tab to Core's tab's collections, it also used by non-custom tab method</para>
 /// <para>Use this method for adding new CUSTOM tabs instead of directly changing collections</para>
 /// </summary>
 /// <param name="tabType"></param>
 /// <param name="tab"></param>
 private void AddNewTab(string tabType, Log9KTab tab)
 {
     _log9KTabsDictionary.Add(tabType, tab);
     Log9KTabsCollection.Add(tab);
 }