File: System\Activities\Core\Presentation\SequenceDesigner.xaml.cs
Project: ndp\cdf\src\NetFx40\Tools\System.Activities.Core.Presentation\System.Activities.Core.Presentation.csproj (System.Activities.Core.Presentation)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
 
namespace System.Activities.Core.Presentation
{
    using System.Activities.Presentation.Metadata;
    using System.Activities.Presentation.Model;
    using System.Activities.Presentation.View;
    using System.Activities.Presentation.View.OutlineView;
    using System.Activities.Statements;
    using System.ComponentModel;
 
    partial class SequenceDesigner
    {
        const string ExpandViewStateKey = "IsExpanded";
 
        public SequenceDesigner()
        {
            this.InitializeComponent();
        }
 
        protected override void OnModelItemChanged(object newItem)
        {
            // Make sequence designer always expand by default, but only if the user didnt explicitly specify collapsed or expanded.
            ViewStateService viewStateService = this.Context.Services.GetService<ViewStateService>();
            if (viewStateService != null)
            {
                bool? isExpanded = (bool?)viewStateService.RetrieveViewState((ModelItem)newItem, ExpandViewStateKey);
                if (isExpanded == null)
                {
                    viewStateService.StoreViewState((ModelItem)newItem, ExpandViewStateKey, true);
                }
            }
            base.OnModelItemChanged(newItem);
 
        }
 
        public static void RegisterMetadata(AttributeTableBuilder builder)
        {
            Type type = typeof(Sequence);
            builder.AddCustomAttributes(type, new DesignerAttribute(typeof(SequenceDesigner)));
            builder.AddCustomAttributes(type, type.GetProperty("Activities"), BrowsableAttribute.No);
            builder.AddCustomAttributes(type, type.GetProperty("Variables"), BrowsableAttribute.No);
            builder.AddCustomAttributes(type, type.GetProperty("Activities"), new ShowPropertyInOutlineViewAttribute() { CurrentPropertyVisible = false });
        }
    }
}