예제 #1
0
        public override void EnsureVisibleContainedDesigner(ActivityDesigner containedDesigner)
        {
            if (containedDesigner == null)
            {
                throw new ArgumentNullException("containedDesigner");
            }

            //we could be collapsed, make sure the view itself is visible
            this.Expanded = true;

            ActivityDesigner activeDesigner = ActiveDesigner;

            if (containedDesigner != activeDesigner && containedDesigner != this)
            {
                DesignerView viewToActivate             = null;
                ReadOnlyCollection <DesignerView> views = ValidatedViews;

                //Go thru the views and check if the child designer is one of the views
                foreach (DesignerView view in views)
                {
                    if (containedDesigner == view.AssociatedDesigner)
                    {
                        viewToActivate = view;
                        break;
                    }
                }

                //This means that the child designer is in our main flow
                if (viewToActivate == null)
                {
                    viewToActivate = views[0];
                }

                ActiveView = viewToActivate;

                //Invoking a verb might change the shown view so we map again
                CompositeActivityDesigner activeCompositeDesigner = ActiveDesigner as CompositeActivityDesigner;
                if (activeCompositeDesigner != null)
                {
                    if (activeCompositeDesigner != this)
                    {
                        activeCompositeDesigner.EnsureVisibleContainedDesigner(containedDesigner);
                    }
                    else
                    {
                        base.EnsureVisibleContainedDesigner(containedDesigner);
                    }
                }
            }
        }
        public override void EnsureVisibleContainedDesigner(ActivityDesigner containedDesigner)
        {
            if (containedDesigner == null)
            {
                throw new ArgumentNullException("containedDesigner");
            }
            this.Expanded = true;
            ActivityDesigner activeDesigner = this.ActiveDesigner;

            if ((containedDesigner != activeDesigner) && (containedDesigner != this))
            {
                DesignerView view = null;
                ReadOnlyCollection <DesignerView> validatedViews = this.ValidatedViews;
                foreach (DesignerView view2 in validatedViews)
                {
                    if (containedDesigner == view2.AssociatedDesigner)
                    {
                        view = view2;
                        break;
                    }
                }
                if (view == null)
                {
                    view = validatedViews[0];
                }
                this.ActiveView = view;
                CompositeActivityDesigner designer2 = this.ActiveDesigner as CompositeActivityDesigner;
                if (designer2 != null)
                {
                    if (designer2 != this)
                    {
                        designer2.EnsureVisibleContainedDesigner(containedDesigner);
                    }
                    else
                    {
                        base.EnsureVisibleContainedDesigner(containedDesigner);
                    }
                }
            }
        }