示例#1
0
        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();
        }
示例#2
0
        private void AddNewTabItem(ITabSourceItem item)
        {
            this.Tabs.Add(item);

            this.SelectedTabIndex = this.Tabs.Count - 1;

            this.closeAllButThisCommand.RaiseCanExecuteChanged();
        }
示例#3
0
        private void OnTabCloseCommand(ITabSourceItem tabSourceItem)
        {
            tabSourceItem.Dispose();

            this.Tabs.Remove(tabSourceItem);

            this.closeAllButThisCommand.RaiseCanExecuteChanged();
        }
示例#4
0
        private void OnLoadCommandExecuted(IComparisonSessionModel newSession)
        {
            ITabSourceItem tabItem = newSession.GetTabSourceItem();

            tabItem.LoadContent();

            this.AddNewTabItem(tabItem);
        }
示例#5
0
        public void CancelCurrentOperation()
        {
            if (selectedTabIndex > -1 && selectedTabIndex < Tabs.Count)
            {
                ITabSourceItem tabItem = this.Tabs[selectedTabIndex];

                tabItem.CancelProgress();

                tabItem.Dispose();
            }
        }
示例#6
0
        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));
            }
        }
示例#8
0
 private bool OnCloseAllButThisCanExecute(ITabSourceItem arg)
 {
     return(this.Tabs.Count > 1);
 }
 public ExcelExporter(ITabSourceItem tab)
 {
     _tab        = tab;
     _assemblies = new List <string>();
     LoadNodes();
 }