File: AuthoringOM\Serializer\ModifyActivitiesPropertyDescriptor.cs
Project: ndp\cdf\src\WF\Common\System.Workflow.ComponentModel.csproj (System.Workflow.ComponentModel)
namespace System.Workflow.ComponentModel.Serialization
{
    using System;
    using System.CodeDom;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.ComponentModel.Design.Serialization;
    using System.Collections;
    using System.Resources;
    using System.Workflow.ComponentModel.Design;
    using System.Collections.Generic;
    using Microsoft.CSharp;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Compiler;
    using System.CodeDom.Compiler;
    using System.IO;
    using System.Reflection;
    using System.Diagnostics;
    #region ModifyActivitiesPropertyDescriptor
 
    internal class ModifyActivitiesPropertyDescriptor : PropertyDescriptor
    {
        private PropertyInfo propInfo = null;
 
        public ModifyActivitiesPropertyDescriptor(PropertyInfo propInfo)
            : base("CanModifyActivities", new Attribute[0])
        {
            this.propInfo = propInfo;
        }
 
        public override bool CanResetValue(object component)
        {
            throw new NotImplementedException();
        }
 
        public override Type ComponentType
        {
            get
            {
                return typeof(CompositeActivity);
            }
        }
 
        public override object GetValue(object component)
        {
            return this.propInfo.GetValue(component, null);
        }
 
        public override bool IsReadOnly
        {
            get
            {
                return false;
            }
        }
 
        public override Type PropertyType
        {
            get
            {
                return typeof(bool);
            }
        }
 
        public override void ResetValue(object component)
        {
            throw new NotImplementedException();
        }
 
        public override void SetValue(object component, object value)
        {
            this.propInfo.SetValue(component, true, null);
            // Design time, allow changes
            if (component is CompositeActivity)
                (component as CompositeActivity).SetValue(CompositeActivity.CustomActivityProperty, false);
        }
 
        public override bool ShouldSerializeValue(object component)
        {
            return false;
        }
    }
    #endregion
}