Пример #1
0
        private void OnPropertyReferenceSceneChange(PropertyReferenceSceneChange e)
        {
            if (e.PropertyChanged == null || e.PropertyChanged.Count != 1 || e.Target == null)
            {
                return;
            }
            SceneElement targetElement = e.Target as SceneElement;

            if (targetElement == null)
            {
                return;
            }
            IPropertyId nameProperty = targetElement.NameProperty;

            if (nameProperty == null || !e.PropertyKey.Equals((object)nameProperty))
            {
                return;
            }
            Breadcrumb breadcrumb = this.FindBreadcrumb(targetElement);

            if (breadcrumb == null)
            {
                return;
            }
            breadcrumb.RefreshName();
        }
Пример #2
0
        private void RefreshBreadcrumbTrail()
        {
            ObservableCollection <Breadcrumb>   newTrail      = new ObservableCollection <Breadcrumb>();
            Dictionary <SceneViewModel, object> newViewModels = new Dictionary <SceneViewModel, object>();

            if (this.ActiveSceneViewModel != null)
            {
                this.ActiveSceneViewModel.EditContextManager.MultiViewModelEditContextWalker.Walk(false, (MultiHistoryCallback)((context, selectedElementPath, ownerPropertyKey, isGhosted) =>
                {
                    newViewModels[context.ViewModel] = (object)null;
                    newTrail.Add(new Breadcrumb(this.ActiveSceneViewModel, context, selectedElementPath, isGhosted));
                    return(false);
                }));
                for (int index = 0; index < newTrail.Count; ++index)
                {
                    Breadcrumb breadcrumb1 = newTrail[index];
                    if ((index != 0 ? newTrail[index - 1] : (Breadcrumb)null) != null)
                    {
                        breadcrumb1.HasPreviousBreadcrumb = true;
                    }
                    Breadcrumb breadcrumb2 = index != newTrail.Count - 1 ? newTrail[index + 1] : (Breadcrumb)null;
                    if (breadcrumb2 != null)
                    {
                        breadcrumb1.HasNextBreadcrumb = true;
                        if (breadcrumb2.LocalViewModel != breadcrumb1.LocalViewModel)
                        {
                            breadcrumb1.NextBreadcrumbIsCrossDocument = true;
                        }
                    }
                }
            }
            this.Trail      = newTrail;
            this.ViewModels = newViewModels;
        }
Пример #3
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }
            Breadcrumb breadcrumb = obj as Breadcrumb;

            if (breadcrumb != null && this.activeViewModel == breadcrumb.activeViewModel && (object.Equals((object)this.editContext, (object)breadcrumb.editContext) && object.Equals((object)this.selectedElementPath, (object)breadcrumb.selectedElementPath)) && (this.isGhosted == breadcrumb.isGhosted && this.nextBreadcrumbIsCrossDocument == breadcrumb.nextBreadcrumbIsCrossDocument && this.hasNextBreadcrumb == breadcrumb.hasNextBreadcrumb))
            {
                return(this.hasPreviousBreadcrumb == breadcrumb.hasPreviousBreadcrumb);
            }
            return(false);
        }