public void StepInto(ProjectBuild projectBuild)
        {
            if (projectBuild == null)
            {
                throw new ArgumentNullException(nameof(projectBuild));
            }

            this.stack.Clear();
            ProjectBuild[] path = this.rootProjectBuild.GetPathTo(projectBuild) ?? new[] { this.rootProjectBuild, projectBuild };
            foreach (ProjectBuild p in path)
            {
                this.stack.Push(p);
            }

            this.UpdateBreadcrumb();
            this.UpdateBuildTimelineListBox(projectBuild);

            BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault();

            if (firstBt != null)
            {
                this.BuildTimelineListBox.SelectedItem = firstBt;
                this.BuildTimelineListBox.UpdateLayout();
                ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt);
                listBoxItem.Focus();
            }
        }
        private void StepOut()
        {
            if (this.stack.Count <= 1)
            {
                return;
            }

            BuildBase previousBuild = this.stack.Pop();

            this.UpdateBreadcrumb();
            this.UpdateBuildTimelineListBox(this.stack.Peek());

            BuildTimeline previousBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().SingleOrDefault(x => x.Build == previousBuild);

            if (previousBt == null)
            {
                previousBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault();
            }

            this.BuildTimelineListBox.SelectedItem = previousBt;
            this.BuildTimelineListBox.UpdateLayout();
            ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(previousBt);

            listBoxItem.Focus();
        }
        private void StepInto()
        {
            BuildTimeline bt = this.BuildTimelineListBox.SelectedItem as BuildTimeline;

            if (bt == null || bt.Build.Kind != BuildKind.Project)
            {
                return;
            }

            ProjectBuild build = (ProjectBuild)bt.Build;

            this.stack.Push(build);
            this.UpdateBreadcrumb();
            this.UpdateBuildTimelineListBox(build);

            BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault();

            if (firstBt != null)
            {
                this.BuildTimelineListBox.SelectedItem = firstBt;
                this.BuildTimelineListBox.UpdateLayout();
                ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt);
                listBoxItem.Focus();
            }
        }
        public void SetRootProjectBuild(ProjectBuild rootProjectBuild)
        {
            if (rootProjectBuild == null)
            {
                throw new ArgumentNullException(nameof(rootProjectBuild));
            }

            this.rootProjectBuild = rootProjectBuild;

            this.stack.Clear();
            this.stack.Push(this.rootProjectBuild);
            this.UpdateBreadcrumb();
            this.UpdateBuildTimelineListBox(this.rootProjectBuild);

            BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault();

            if (firstBt != null)
            {
                this.BuildTimelineListBox.SelectedItem = firstBt;
                this.BuildTimelineListBox.UpdateLayout();
                ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt);
                listBoxItem?.Focus();
            }
        }
예제 #5
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            BuildTimeline bt = (BuildTimeline)value;

            return(PathGeometryHelper.CreateRectangle(bt.ParentStartedAt, bt.ParentCompletedAt, bt.StartedAt, bt.CompletedAt));
        }