示例#1
0
        public ChangesetViewModel(TfsItemCache tfsItemCache)
            : base("Changeset", typeof(ChangesetViewModel))
        {
            Repository.Instance.VMergeUIProvider.MergeWindowVisibilityChanged += (o, a) => Enabled = !Repository.Instance.VMergeUIProvider.IsMergeWindowVisible();
            Enabled                    = !Repository.Instance.VMergeUIProvider.IsMergeWindowVisible();
            _applyFilterTimer          = new DispatcherTimer();
            _applyFilterTimer.Interval = new TimeSpan(0, 0, 0, 0, 350);
            _applyFilterTimer.Tick    += (o, a) => PerformApplyFilter();

            TfsItemCache = tfsItemCache;

            ViewSelectionViewModel     = new ViewSelectionViewModel();
            Changesets                 = new ObservableCollection <TfsChangesetWrapper>();
            FilteredChangesets         = new ObservableCollection <TfsChangesetWrapper>();
            _changesetsToResetOnCancel = new List <Tuple <TfsChangesetWrapper, bool> >();
            ChangesetList              =
                new FieldMapperGridViewModel <TfsChangesetWrapper>(
                    new ChangesetPropertyAccessor(),
                    FilteredChangesets,
                    Columns);
            ChangesetList.ColumnSettingsChanged += (o, a) => DataWasModified();

            ViewSelectionViewModel.ViewSelectionChanged += OnViewSelectionChanged;

            ItemSelectedCommand      = new RelayCommand((o) => ItemSelected(o), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            ShowWorkItemViewCommand  = new RelayCommand((o) => ShowWorkItemView(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            SelectMarkedItemsCommand = new RelayCommand((o) => SelectMarkedItems(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            ViewChangesetCommand     = new RelayCommand((o) => ViewChangeset(o), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            TrackChangesetCommand    = new RelayCommand((o) => TrackChangeset(o), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            MergeCommand             = new RelayCommand((o) => Merge(o), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            ShowMergeViewCommand     = new RelayCommand((o) => ShowMergeView(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            SelectAllCommand         = new RelayCommand((o) => SelectAll(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            SaveMergeProfileCommand  = new RelayCommand((o) => SaveMergeProfile(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            RefreshCommand           = new RelayCommand((o) => Refresh(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);
            ShowLogFileWindowCommand = new RelayCommand((o) => ShowLogFileWindow(o), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);

            AttachToChangesetCache();
            AttachToProfileProvider();
            Repository.Instance.TfsBridgeProvider.ActiveProjectSelected += (o, a) =>
            {
                Changesets.Clear();
                FilteredChangesets.Clear();
                if (Repository.Instance.TfsBridgeProvider.ActiveTeamProject != null)
                {
                    Repository.Instance.BackgroundTaskManager.DelayedPost(() => { ProfileProvider_DefaultProfileChanged(null, null); return(true); });
                }
            };
        }
示例#2
0
        public WorkItemViewModel(TfsItemCache tfsItemCache)
            : base("Work Item", typeof(WorkItemViewModel))
        {
            try
            {
                Repository.Instance.VMergeUIProvider.MergeWindowVisibilityChanged += (o, a) => Enabled = !Repository.Instance.VMergeUIProvider.IsMergeWindowVisible();
                Enabled      = !Repository.Instance.VMergeUIProvider.IsMergeWindowVisible();
                TfsItemCache = tfsItemCache;

                ViewSelectionViewModel = new ViewSelectionViewModel();
                WorkItems    = new ObservableCollection <TfsWorkItemWrapper>();
                WorkItemList =
                    new FieldMapperGridViewModel <TfsWorkItemWrapper>(
                        new WorkItemPropertyAccessor(),
                        WorkItems,
                        Columns);
                WorkItemList.ColumnSettingsChanged += (o, a) => DataWasModified();

                ItemSelectedCommand      = new RelayCommand((o) => ItemSelected(o));
                ShowChangesetViewCommand = new RelayCommand((o) => ShowChangesetView());
                SelectMarkedItemsCommand = new RelayCommand((o) => SelectMarkedItems());
                ViewWorkItemCommand      = new RelayCommand((o) => ViewWorkItem(o));
                TrackWorkItemCommand     = new RelayCommand((o) => TrackWorkItem(o));
                MergeCommand             = new RelayCommand((o) => Merge(o));
                ShowMergeViewCommand     = new RelayCommand((o) => ShowMergeView());
                RefreshCommand           = new RelayCommand((o) => Refresh(), (o) => Repository.Instance.TfsBridgeProvider.TfsTeamProjectCollection != null);

                ViewSelectionViewModel.ViewSelectionChanged += OnViewSelectionChanged;

                AttachToWorkItemCache();
                AttachToProfileProvider();
                Repository.Instance.TfsBridgeProvider.ActiveProjectSelected += (o, a) =>
                {
                    WorkItems.Clear();
                    if (Repository.Instance.TfsBridgeProvider.ActiveTeamProject != null)
                    {
                        Repository.Instance.BackgroundTaskManager.DelayedPost(() => { ProfileProvider_DefaultProfileChanged(null, null); return(true); });
                    }
                };
            } catch (Exception ex)
            {
                SimpleLogger.Log(ex, false, false);
                throw;
            }
        }