コード例 #1
0
        internal static void FilterDependencyProperties(IServiceProvider serviceProvider, Activity activity)
        {
            IExtenderListService service = serviceProvider.GetService(typeof(IExtenderListService)) as IExtenderListService;

            if (service != null)
            {
                Dictionary <string, DependencyProperty> dictionary = new Dictionary <string, DependencyProperty>();
                foreach (DependencyProperty property in activity.MetaDependencyProperties)
                {
                    dictionary.Add(property.Name, property);
                }
                List <string> list = new List <string>();
                foreach (IExtenderProvider provider in service.GetExtenderProviders())
                {
                    if (!provider.CanExtend(activity))
                    {
                        ProvidePropertyAttribute[] customAttributes = provider.GetType().GetCustomAttributes(typeof(ProvidePropertyAttribute), true) as ProvidePropertyAttribute[];
                        foreach (ProvidePropertyAttribute attribute in customAttributes)
                        {
                            list.Add(attribute.PropertyName);
                        }
                    }
                }
                foreach (string str in list)
                {
                    if (dictionary.ContainsKey(str))
                    {
                        activity.RemoveProperty(dictionary[str]);
                    }
                }
            }
        }
コード例 #2
0
        private void EnsureDesignerExtender()
        {
            bool flag = true;
            IExtenderListService service = base.GetService(typeof(IExtenderListService)) as IExtenderListService;

            if (service != null)
            {
                foreach (IExtenderProvider provider in service.GetExtenderProviders())
                {
                    if (provider.GetType() == typeof(FreeFormDesignerPropertyExtender))
                    {
                        flag = false;
                        break;
                    }
                }
            }
            if (flag)
            {
                IExtenderProviderService service2 = base.GetService(typeof(IExtenderProviderService)) as IExtenderProviderService;
                if (service2 != null)
                {
                    service2.AddExtenderProvider(new FreeFormDesignerPropertyExtender());
                    TypeDescriptor.Refresh(base.Activity);
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Add an extender provider for the Weekday property
        /// </summary>
        /// <param name="activity"></param>
        protected override void Initialize(Activity activity)
        {
            base.Initialize(activity);

            IExtenderListService iels = base.GetService(typeof(IExtenderListService)) as IExtenderListService;

            if (null != iels)
            {
                bool extenderExists = false;

                foreach (IExtenderProvider provider in iels.GetExtenderProviders())
                {
                    if (provider.GetType() == typeof(WeekdayExtenderProvider))
                    {
                        extenderExists = true;
                        break;
                    }
                }
                if (!extenderExists)
                {
                    IExtenderProviderService ieps = base.GetService(typeof(IExtenderProviderService)) as IExtenderProviderService;
                    if (null != ieps)
                    {
                        ieps.AddExtenderProvider(new WeekdayExtenderProvider());
                    }
                }
            }
        }
コード例 #4
0
        protected override void Initialize(Activity activity)
        {
            base.Initialize(activity);

            IExtenderListService extenderListService = (IExtenderListService)GetService(typeof(IExtenderListService));

            if (extenderListService != null)
            {
                bool foundCAGExtender = false;
                foreach (IExtenderProvider extenderProvider in extenderListService.GetExtenderProviders())
                {
                    if (extenderProvider.GetType() == typeof(ConditionPropertyProviderExtender))
                    {
                        foundCAGExtender = true;
                    }
                }

                if (!foundCAGExtender)
                {
                    IExtenderProviderService extenderProviderService = (IExtenderProviderService)GetService(typeof(IExtenderProviderService));
                    if (extenderProviderService != null)
                    {
                        extenderProviderService.AddExtenderProvider(new ConditionPropertyProviderExtender());
                    }
                }
            }
        }
        protected override void Initialize(Activity activity)
        {
            base.Initialize(activity);
            IExtenderListService service = (IExtenderListService)base.GetService(typeof(IExtenderListService));

            if (service != null)
            {
                bool flag = false;
                foreach (IExtenderProvider provider in service.GetExtenderProviders())
                {
                    if (provider.GetType() == typeof(ConditionPropertyProviderExtender))
                    {
                        flag = true;
                    }
                }
                if (!flag)
                {
                    IExtenderProviderService service2 = (IExtenderProviderService)base.GetService(typeof(IExtenderProviderService));
                    if (service2 != null)
                    {
                        service2.AddExtenderProvider(new ConditionPropertyProviderExtender());
                    }
                }
            }
        }
コード例 #6
0
        internal static void FilterDependencyProperties(IServiceProvider serviceProvider, Activity activity)
        {
            IExtenderListService extenderListService = serviceProvider.GetService(typeof(IExtenderListService)) as IExtenderListService;

            if (extenderListService != null)
            {
                Dictionary <string, DependencyProperty> dependencyProperyies = new Dictionary <string, DependencyProperty>();
                foreach (DependencyProperty property in activity.MetaDependencyProperties)
                {
                    dependencyProperyies.Add(property.Name, property);
                }

                List <string> disallowedProperties = new List <string>();
                foreach (IExtenderProvider extenderProvider in extenderListService.GetExtenderProviders())
                {
                    if (!extenderProvider.CanExtend(activity))
                    {
                        ProvidePropertyAttribute[] propertyAttributes = extenderProvider.GetType().GetCustomAttributes(typeof(ProvidePropertyAttribute), true) as ProvidePropertyAttribute[];
                        foreach (ProvidePropertyAttribute propertyAttribute in propertyAttributes)
                        {
                            disallowedProperties.Add(propertyAttribute.PropertyName);
                        }
                    }
                }

                foreach (string propertyName in disallowedProperties)
                {
                    if (dependencyProperyies.ContainsKey(propertyName))
                    {
                        activity.RemoveProperty(dependencyProperyies[propertyName]);
                    }
                }
            }
        }
コード例 #7
0
        public void ExtenderProviderService_GetExtenderProviders_Invoke_ReturnsEmpty()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderListService listService = Assert.IsAssignableFrom <IExtenderListService>(service);

            Assert.Empty(listService.GetExtenderProviders());
        }
コード例 #8
0
        public void ExtenderProviderService_RemoveExtenderProvider_InvokeWithoutProviders_Nop()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderListService     listService     = Assert.IsAssignableFrom <IExtenderListService>(service);
            IExtenderProviderService providerService = Assert.IsAssignableFrom <IExtenderProviderService>(service);
            var mockExtenderProvider = new Mock <IExtenderProvider>(MockBehavior.Strict);

            providerService.RemoveExtenderProvider(mockExtenderProvider.Object);
            Assert.Empty(listService.GetExtenderProviders());
        }
コード例 #9
0
        public void ExtenderProviderService_RemoveExtenderProvider_InvokeWithProviders_Success()
        {
            var    surface = new DesignSurface();
            object service = surface.GetService(typeof(IExtenderListService));
            IExtenderListService     listService     = Assert.IsAssignableFrom <IExtenderListService>(service);
            IExtenderProviderService providerService = Assert.IsAssignableFrom <IExtenderProviderService>(service);
            var mockExtenderProvider1 = new Mock <IExtenderProvider>(MockBehavior.Strict);
            var mockExtenderProvider2 = new Mock <IExtenderProvider>(MockBehavior.Strict);

            providerService.AddExtenderProvider(mockExtenderProvider1.Object);
            providerService.AddExtenderProvider(mockExtenderProvider2.Object);

            providerService.RemoveExtenderProvider(mockExtenderProvider1.Object);
            Assert.Equal(new IExtenderProvider[] { mockExtenderProvider2.Object }, listService.GetExtenderProviders());

            // Remove again.
            providerService.RemoveExtenderProvider(mockExtenderProvider1.Object);
            Assert.Equal(new IExtenderProvider[] { mockExtenderProvider2.Object }, listService.GetExtenderProviders());

            // Remove other.
            providerService.RemoveExtenderProvider(mockExtenderProvider2.Object);
            Assert.Empty(listService.GetExtenderProviders());
        }
コード例 #10
0
ファイル: MenuExtender.cs プロジェクト: speecyy/xrefresh
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService wfes = (IWindowsFormsEditorService)provider.GetService(
                typeof(IWindowsFormsEditorService));

            if (wfes == null || context == null)
            {
                return(null);
            }

            ImageList imageList = null;
            Component component = (Component)context.Instance;

            IExtenderListService extenderListService = (IExtenderListService)component.Site.GetService(typeof(IExtenderListService));

            if (extenderListService != null)
            {
                IExtenderProvider[] extenders = extenderListService.GetExtenderProviders();
                for (int i = 0; i < extenders.Length; i++)
                {
                    if (extenders[i].GetType().FullName == "MenuExtender.MenuExtender")
                    {
                        MenuExtender menuExtender = (MenuExtender)extenders[i];
                        imageList = menuExtender.ImageList;
                    }
                }
            }

            ImageSelector imageSelector = new ImageSelector(imageList, (int)value, wfes);

            wfes.DropDownControl(imageSelector);

            int imageIndex = -1;

            if (imageSelector.SelectedItems.Count != 0)
            {
                try
                {
                    imageIndex = (int)Convert.ToInt32(imageSelector.SelectedItems[0].Text);
                }
                catch
                {
                    imageIndex = -1;
                }
            }
            return(imageIndex);
        }
コード例 #11
0
ファイル: MenuItemRender.cs プロジェクト: A10000666666/Mine
        public override void PaintValue(PaintValueEventArgs pe)
        {
            int imageIndex = -1;

            if (pe.Value != null)
            {
                try
                {
                    imageIndex = (int)Convert.ToUInt16(pe.Value.ToString());
                }
                catch
                {
                    imageIndex = -1;
                }
            }

            if (pe.Context.Instance == null || imageIndex < 0)
            {
                return;
            }

            ImageList imageList = null;
            Component component = (Component)pe.Context.Instance;

            IExtenderListService extenderListService = (IExtenderListService)component.Site.GetService(typeof(IExtenderListService));

            if (extenderListService != null)
            {
                IExtenderProvider[] extenders = extenderListService.GetExtenderProviders();
                for (int i = 0; i < extenders.Length; i++)
                {
                    if (extenders[i].GetType().FullName == "MenuItemRenderer.MenuItemRenderer")
                    {
                        MenuItemRender menuExtender = (MenuItemRender)extenders[i];
                        imageList = menuExtender.ImageList;
                    }
                }
            }
            if (imageList == null ||
                imageList.Images.Empty ||
                imageIndex >= imageList.Images.Count)
            {
                return;
            }

            pe.Graphics.DrawImage(imageList.Images[imageIndex], pe.Bounds);
        }
コード例 #12
0
        private static bool SetGenerateMemberProperty(
         IExtenderListService service,
         IComponent component,
         bool value)
        {
            IExtenderProvider provider = null;
            IExtenderProvider[] providers = service.GetExtenderProviders();
            foreach (IExtenderProvider item in providers)
            {
                if (item.GetType().FullName ==
                       "System.ComponentModel.Design.Serialization.CodeDomDesignerLoader+ModifiersExtenderProvider")
                {
                    provider = item;
                    break;
                }
            }

            if (provider == null) return false;

            MethodInfo methodInfo =
               provider.GetType().GetMethod(
                  "SetGenerateMember", BindingFlags.Public |
                                       BindingFlags.Instance);

            if (methodInfo != null)
            {
                methodInfo.Invoke(
                   provider, new object[]
                            {
                               component,
                               value
                            });
                return true;
            }

            return false;
        }
コード例 #13
0
        private void x391093a02bb10339()
        {
            IExtenderListService service = (IExtenderListService)this.GetService(typeof(IExtenderListService));

            if (false)
            {
                int num;
                if ((uint)num >= 0U)
                {
                    return;
                }
            }
            else
            {
                goto label_15;
            }
label_2:
            MethodInfo method;

            if (method == null)
            {
                if (true)
                {
                    return;
                }
                goto label_15;
            }
            else
            {
                goto label_9;
            }
label_8:
            if (true)
            {
                goto label_2;
            }
label_9:
            IExtenderProvider extenderProvider;

            method.Invoke((object)extenderProvider, new object[2]
            {
                (object)this.Component,
                (object)false
            });
            int index;

            if ((uint)index >= 0U)
            {
                return;
            }
            goto label_8;
label_15:
            IExtenderProvider[] extenderProviders = service.GetExtenderProviders();
            index = 0;
            if ((uint)index > uint.MaxValue)
            {
                return;
            }
            for (; index < extenderProviders.Length; ++index)
            {
                extenderProvider = extenderProviders[index];
                while (extenderProvider.GetType().FullName == "System.ComponentModel.Design.Serialization.CodeDomDesignerLoader+ModifiersExtenderProvider")
                {
                    method = extenderProvider.GetType().GetMethod("SetGenerateMember", BindingFlags.Instance | BindingFlags.Public);
                    if ((uint)index + (uint)index >= 0U)
                    {
                        goto label_8;
                    }
                }
            }
        }