/// <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; } } }
/// <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; }); } }
/// <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); } }
/// <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); }