/// <summary> /// Create tab into specified column /// </summary> public static void CreateTab(TabInfo info, int columnIndex) { if (columnIndex > tabs.Count) // column index is only for existed or new column throw new ArgumentOutOfRangeException("columnIndex", "currently " + tabs.Count + " columns are created. so, you can't set this parameter as " + columnIndex + "."); if (columnIndex == tabs.Count) { // create new CreateColumn(info); } else { tabs[columnIndex].Add(info); info.FilterQuery.Activate(); } }
/// <summary> /// Create tab /// </summary> /// <param name="info">tab information</param> public static void CreateTab(TabInfo info) { CreateTab(info, _currentFocusColumn); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <param name="columnIndex"></param> /// <param name="tabIndex"></param> public static void MoveTo(TabInfo info, int columnIndex, int tabIndex) { int fci, fti; GetTabInfoIndexes(info, out fci, out fti); MoveTo(fci, fti, columnIndex, tabIndex); }
/// <summary> /// Create column /// </summary> /// <param name="info">initial created tab</param> public static void CreateColumn(TabInfo info) { tabs.Add(new ObservableSynchronizedCollection<TabInfo>(new[] { info })); info.FilterQuery.Activate(); }
/// <summary> /// Find tab info where existed. /// </summary> /// <param name="info">tab info</param> /// <param name="colIndex">column index</param> /// <param name="tabIndex">tab index</param> public static void GetTabInfoIndexes(TabInfo info, out int colIndex, out int tabIndex) { for (int ci = 0; ci < tabs.Count; ci++) { for (int ti = 0; ti < tabs[ci].Count; ti++) { if (tabs[ci][ti] == info) { colIndex = ci; tabIndex = ti; return; } } } throw new ArgumentException("specified TabInfo was not found."); }