private void RemoveTabsByIndexes(IEnumerable <int> removedTabsIndexes) { var tabs = new Queue <ITabSourceItem>(Tabs.Count); List <ITabSourceItem> currentTabs = Tabs.ToList(); foreach (int index in removedTabsIndexes) { tabs.Enqueue(Tabs[index]); } while (tabs.Count > 0) { ITabSourceItem removedTabItems = tabs.Dequeue(); removedTabItems.Dispose(); currentTabs.Remove(removedTabItems); } this.Tabs = new ObservableCollection <ITabSourceItem>(currentTabs); this.SelectedTabIndex = PredictNextValidTabIndex(removedTabsIndexes, selectedTabIndex); this.RaisePropertyChanged("Tabs"); this.closeAllButThisCommand.RaiseCanExecuteChanged(); }
private void AddNewTabItem(ITabSourceItem item) { this.Tabs.Add(item); this.SelectedTabIndex = this.Tabs.Count - 1; this.closeAllButThisCommand.RaiseCanExecuteChanged(); }
private void OnTabCloseCommand(ITabSourceItem tabSourceItem) { tabSourceItem.Dispose(); this.Tabs.Remove(tabSourceItem); this.closeAllButThisCommand.RaiseCanExecuteChanged(); }
private void OnLoadCommandExecuted(IComparisonSessionModel newSession) { ITabSourceItem tabItem = newSession.GetTabSourceItem(); tabItem.LoadContent(); this.AddNewTabItem(tabItem); }
public void CancelCurrentOperation() { if (selectedTabIndex > -1 && selectedTabIndex < Tabs.Count) { ITabSourceItem tabItem = this.Tabs[selectedTabIndex]; tabItem.CancelProgress(); tabItem.Dispose(); } }
private void OnCloseAllButThisExecuted(ITabSourceItem tabItem) { var removedIndex = new List <int>(Tabs.Count); for (int i = 0; i < Tabs.Count; i++) { if (Tabs[i] != tabItem) { removedIndex.Add(i); } } this.RemoveTabsByIndexes(removedIndex); }
public override DataTemplate SelectTemplate(object item, DependencyObject container) { ITabSourceItem tabSourceItem = item as ITabSourceItem; if (tabSourceItem == null) { return(base.SelectTemplate(item, container)); } switch (tabSourceItem.TabKind) { case TabKind.DirectoryBrowse: case TabKind.AssemblyBrowse: return(this.AssemblyBrowseTemplate); case TabKind.JustAssembly: return(this.JustAssemblyTemplate); default: return(base.SelectTemplate(item, container)); } }
private bool OnCloseAllButThisCanExecute(ITabSourceItem arg) { return(this.Tabs.Count > 1); }
public ExcelExporter(ITabSourceItem tab) { _tab = tab; _assemblies = new List <string>(); LoadNodes(); }