Esempio n. 1
0
        /// <summary>
        ///  Creates a new adapter and attaches it to the serialization manager.  This
        ///  will add itself as a serializer for resources into the serialization manager, and,
        ///  if not already added, will add itself as an extender provider to the roost component
        ///  and provide the Language and Localizable properties.  The latter piece is only
        ///  supplied if CodeDomLocalizationModel is not �none�.
        /// </summary>
        public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
        {
            ArgumentNullException.ThrowIfNull(provider);

            _model = model;
            Initialize(provider);
        }
            public override bool EnterMethodInvocationExpression(MethodInvocationExpression node)
            {
                if (this.model == CodeDomLocalizationModel.PropertyReflection)
                {
                    return(false);
                }

                MemberReferenceExpression member = node.Target as MemberReferenceExpression;

                if (member != null)
                {
                    ReferenceExpression refex = member.Target as ReferenceExpression;
                    if (refex != null && refex.Name.Equals("resources", StringComparison.InvariantCulture))
                    {
                        if (member.Name.Equals("ApplyResources", StringComparison.InvariantCulture))
                        {
                            this.model = CodeDomLocalizationModel.PropertyReflection;
                        }
                        else if (member.Name.Equals("GetString", StringComparison.InvariantCulture))
                        {
                            this.model = CodeDomLocalizationModel.PropertyAssignment;
                        }
                    }
                }
                return(false);
            }
Esempio n. 3
0
        internal ResourcePropertyMemberCodeDomSerializer(MemberCodeDomSerializer serializer, CodeDomLocalizationProvider.LanguageExtenders extender, CodeDomLocalizationModel model)
        {
            Debug.Assert(extender is not null, "Extender should have been created by now.");

            _serializer = serializer;
            _extender   = extender;
            _model      = model;
        }
Esempio n. 4
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
 {
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     this._model = model;
     this.Initialize(provider);
 }
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
 {
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     this._model = model;
     this.Initialize(provider);
 }
Esempio n. 6
0
        /// <summary>
        ///  Creates a new adapter and attaches it to the serialization manager.  This
        ///  will add itself as a serializer for resources into the serialization manager, and,
        ///  if not already added, will add itself as an extender provider to the roost component
        ///  and provide the Language and Localizable properties.  The latter piece is only
        ///  supplied if CodeDomLocalizationModel is not �none�.
        /// </summary>
        public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures)
        {
            ArgumentNullException.ThrowIfNull(provider);
            ArgumentNullException.ThrowIfNull(supportedCultures);

            _model             = model;
            _supportedCultures = (CultureInfo[])supportedCultures.Clone();
            Initialize(provider);
        }
Esempio n. 7
0
        private object GetMemberCodeDomSerializer(IDesignerSerializationManager manager, object currentSerializer, System.Type objectType, System.Type serializerType)
        {
            CodeDomLocalizationModel none = this._model;

            if (!typeof(PropertyDescriptor).IsAssignableFrom(objectType))
            {
                return(null);
            }
            if (currentSerializer == null)
            {
                return(null);
            }
            if (currentSerializer is ResourcePropertyMemberCodeDomSerializer)
            {
                return(null);
            }
            if ((this._extender == null) || !this._extender.GetLocalizable(null))
            {
                return(null);
            }
            PropertyDescriptor descriptor = manager.Context[typeof(PropertyDescriptor)] as PropertyDescriptor;

            if ((descriptor == null) || !descriptor.IsLocalizable)
            {
                none = CodeDomLocalizationModel.None;
            }
            if (this._memberSerializers == null)
            {
                this._memberSerializers = new Hashtable();
            }
            if (this._nopMemberSerializers == null)
            {
                this._nopMemberSerializers = new Hashtable();
            }
            object obj2 = null;

            if (none == CodeDomLocalizationModel.None)
            {
                obj2 = this._nopMemberSerializers[currentSerializer];
            }
            else
            {
                obj2 = this._memberSerializers[currentSerializer];
            }
            if (obj2 == null)
            {
                obj2 = new ResourcePropertyMemberCodeDomSerializer((MemberCodeDomSerializer)currentSerializer, this._extender, none);
                if (none == CodeDomLocalizationModel.None)
                {
                    this._nopMemberSerializers[currentSerializer] = obj2;
                    return(obj2);
                }
                this._memberSerializers[currentSerializer] = obj2;
            }
            return(obj2);
        }
Esempio n. 8
0
        /// <summary>
        ///  Creates a new adapter and attaches it to the serialization manager.  This
        ///  will add itself as a serializer for resources into the serialization manager, and,
        ///  if not already added, will add itself as an extender provider to the roost component
        ///  and provide the Language and Localizable properties.  The latter piece is only
        ///  supplied if CodeDomLocalizationModel is not �none�.
        /// </summary>
        public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
        {
            if (provider is null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            _model = model;
            Initialize(provider);
        }
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures)
 {
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     if (supportedCultures == null)
     {
         throw new ArgumentNullException("supportedCultures");
     }
     this._model = model;
     this._supportedCultures = (CultureInfo[]) supportedCultures.Clone();
     this.Initialize(provider);
 }
Esempio n. 10
0
        /// <summary>
        ///  Returns a code dom serializer
        /// </summary>
        private object GetCodeDomSerializer(IDesignerSerializationManager manager, object currentSerializer, Type objectType, Type serializerType)
        {
            if (currentSerializer is null)
            {
                return(null);
            }

            // Always do default processing for the resource manager.
            if (typeof(ResourceManager).IsAssignableFrom(objectType))
            {
                return(null);
            }

            // Here's how this works.  We have two different types of serializers to offer :  a
            // serializer that writes out code like this:
            //
            //      this.Button1.Text = rm.GetString("Button1_Text");
            //
            // And one that writes out like this:
            //
            //      rm.ApplyResources(Button1, "Button1");
            //
            // The first serializer is used for serializable objects that have no serializer of their
            // own, and for localizable properties when the CodeDomLocalizationModel is set to PropertyAssignment.
            // The second serializer is used only for localizing properties when the CodeDomLocalizationModel
            // is set to PropertyReflection

            // Compute a localization model based on the property, localization mode,
            // and what (if any) serializer already exists
            CodeDomLocalizationModel model = CodeDomLocalizationModel.None;
            object modelObj = manager.Context[typeof(CodeDomLocalizationModel)];

            if (modelObj is not null)
            {
                model = (CodeDomLocalizationModel)modelObj;
            }

            //Nifty, but this causes everything to be loc'd because our provider
            //comes in before the default one
            //if (model == CodeDomLocalizationModel.None && currentSerializer is null) {
            //    model = CodeDomLocalizationModel.PropertyAssignment;
            //}

            if (model != CodeDomLocalizationModel.None)
            {
                return(new LocalizationCodeDomSerializer(model, currentSerializer));
            }

            return(null);
        }
Esempio n. 11
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures)
 {
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     if (supportedCultures == null)
     {
         throw new ArgumentNullException("supportedCultures");
     }
     this._model             = model;
     this._supportedCultures = (CultureInfo[])supportedCultures.Clone();
     this.Initialize(provider);
 }
Esempio n. 12
0
        /// <summary>
        ///  Creates a new adapter and attaches it to the serialization manager.  This
        ///  will add itself as a serializer for resources into the serialization manager, and,
        ///  if not already added, will add itself as an extender provider to the roost component
        ///  and provide the Language and Localizable properties.  The latter piece is only
        ///  supplied if CodeDomLocalizationModel is not �none�.
        /// </summary>
        public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures)
        {
            if (provider is null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            if (supportedCultures is null)
            {
                throw new ArgumentNullException(nameof(supportedCultures));
            }

            _model             = model;
            _supportedCultures = (CultureInfo[])supportedCultures.Clone();
            Initialize(provider);
        }
 public override object VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data)
 {
     if (this.model != CodeDomLocalizationModel.PropertyReflection && this.inInitMethod)
     {
         IdentifierExpression iex = memberReferenceExpression.TargetObject as IdentifierExpression;
         if (iex != null && iex.Identifier == "resources")
         {
             if (memberReferenceExpression.MemberName == "ApplyResources")
             {
                 this.model = CodeDomLocalizationModel.PropertyReflection;
             }
             else if (memberReferenceExpression.MemberName == "GetString")
             {
                 this.model = CodeDomLocalizationModel.PropertyAssignment;
             }
         }
     }
     return(null);
 }
Esempio n. 14
0
 public override void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression)
 {
     if (this.model != CodeDomLocalizationModel.PropertyReflection)
     {
         IdentifierExpression iex = memberReferenceExpression.Target as IdentifierExpression;
         if (iex != null && iex.Identifier == "resources")
         {
             if (memberReferenceExpression.MemberName == "ApplyResources")
             {
                 this.model = CodeDomLocalizationModel.PropertyReflection;
             }
             else if (memberReferenceExpression.MemberName == "GetString")
             {
                 this.model = CodeDomLocalizationModel.PropertyAssignment;
             }
         }
     }
     base.VisitMemberReferenceExpression(memberReferenceExpression);
 }
        protected override void Initialize()
        {
            CodeDomLocalizationModel model = FormsDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.DefaultLocalizationModel;

            if (FormsDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.KeepLocalizationModel)
            {
                // Try to find out the current localization model of the designed form
                CodeDomLocalizationModel existingModel = this.GetCurrentLocalizationModelFromDesignedFile();
                if (existingModel != CodeDomLocalizationModel.None)
                {
                    LoggingService.Debug("Determined existing localization model, using that: " + existingModel.ToString());
                    model = existingModel;
                }
                else
                {
                    LoggingService.Debug("Could not determine existing localization model, using default: " + model.ToString());
                }
            }
            else
            {
                LoggingService.Debug("Using default localization model: " + model.ToString());
            }

            CodeDomLocalizationProvider   localizationProvider = new CodeDomLocalizationProvider(designerLoaderHost, model);
            IDesignerSerializationManager manager = (IDesignerSerializationManager)designerLoaderHost.GetService(typeof(IDesignerSerializationManager));

            manager.AddSerializationProvider(new SharpDevelopSerializationProvider());
            manager.AddSerializationProvider(localizationProvider);
            base.Initialize();

            IComponentChangeService componentChangeService = (IComponentChangeService)this.GetService(typeof(IComponentChangeService));

            if (componentChangeService != null)
            {
                LoggingService.Debug("Forms designer: Adding ComponentAdded handler for nested container setup");
                componentChangeService.ComponentAdded += ComponentContainerSetUp;
            }
            else
            {
                LoggingService.Warn("Forms designer: Cannot add ComponentAdded handler for nested container setup because IComponentChangeService is unavailable");
            }
        }
Esempio n. 16
0
 private object GetCodeDomSerializer(IDesignerSerializationManager manager, object currentSerializer, System.Type objectType, System.Type serializerType)
 {
     if (currentSerializer != null)
     {
         if (typeof(ResourceManager).IsAssignableFrom(objectType))
         {
             return(null);
         }
         CodeDomLocalizationModel none = CodeDomLocalizationModel.None;
         object obj2 = manager.Context[typeof(CodeDomLocalizationModel)];
         if (obj2 != null)
         {
             none = (CodeDomLocalizationModel)obj2;
         }
         if (none != CodeDomLocalizationModel.None)
         {
             return(new LocalizationCodeDomSerializer(none, currentSerializer));
         }
     }
     return(null);
 }
 internal ResourcePropertyMemberCodeDomSerializer(MemberCodeDomSerializer serializer, CodeDomLocalizationProvider.LanguageExtenders extender, CodeDomLocalizationModel model)
 {
     this._serializer = serializer;
     this._extender = extender;
     this._model = model;
 }
Esempio n. 18
0
			public override void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression)
			{
				if (this.model != CodeDomLocalizationModel.PropertyReflection) {
					IdentifierExpression iex = memberReferenceExpression.Target as IdentifierExpression;
					if (iex != null && iex.Identifier == "resources") {
						if (memberReferenceExpression.MemberName == "ApplyResources") {
							this.model = CodeDomLocalizationModel.PropertyReflection;
						} else if (memberReferenceExpression.MemberName == "GetString") {
							this.model = CodeDomLocalizationModel.PropertyAssignment;
						}
					}
				}
				base.VisitMemberReferenceExpression(memberReferenceExpression);
			}
Esempio n. 19
0
		public CodeDomLocalizationProvider (IServiceProvider provider, CodeDomLocalizationModel model)
		{
			throw new NotImplementedException ();
		}
Esempio n. 20
0
		public CodeDomLocalizationProvider (IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo [] supportedCultures)
		{
			throw new NotImplementedException ();
		}
Esempio n. 21
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
 {
     throw new NotImplementedException();
 }
Esempio n. 22
0
        /// <summary>
        ///  Returns a code dom serializer for members.
        /// </summary>
        private object GetMemberCodeDomSerializer(IDesignerSerializationManager manager, object currentSerializer, Type objectType, Type serializerType)
        {
            CodeDomLocalizationModel model = _model;

            if (!typeof(PropertyDescriptor).IsAssignableFrom(objectType))
            {
                return(null);
            }

            // Ok, we got a property descriptor.  If we're being localized
            // we provide a different type of serializer.  But, we only
            // do this if we were given a current serializer.  Otherwise
            // we don't know how to perform the serialization.
            // We can only provide a custom serializer if we have an existing one
            // to base off of.
            if (currentSerializer is null)
            {
                return(null);
            }

            // If we've already provided this serializer, don't do it again
            if (currentSerializer is ResourcePropertyMemberCodeDomSerializer)
            {
                return(null);
            }

            // We only care if we're localizable
            if (_extender is null || !_extender.GetLocalizable(null))
            {
                return(null);
            }

            // Fish the property out of the context to see if the property is localizable.
            PropertyDescriptor serializingProperty = manager.Context[typeof(PropertyDescriptor)] as PropertyDescriptor;

            if (serializingProperty is null || !serializingProperty.IsLocalizable)
            {
                model = CodeDomLocalizationModel.None;
            }

            if (_memberSerializers is null)
            {
                _memberSerializers = new Hashtable();
            }

            if (_nopMemberSerializers is null)
            {
                _nopMemberSerializers = new Hashtable();
            }

            object newSerializer;

            if (model == CodeDomLocalizationModel.None)
            {
                newSerializer = _nopMemberSerializers[currentSerializer];
            }
            else
            {
                newSerializer = _memberSerializers[currentSerializer];
            }

            if (newSerializer is null)
            {
                newSerializer = new ResourcePropertyMemberCodeDomSerializer((MemberCodeDomSerializer)currentSerializer, _extender, model);

                if (model == CodeDomLocalizationModel.None)
                {
                    _nopMemberSerializers[currentSerializer] = newSerializer;
                }
                else
                {
                    _memberSerializers[currentSerializer] = newSerializer;
                }
            }

            return(newSerializer);
        }
Esempio n. 23
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo [] supportedCultures)
 {
     throw new NotImplementedException();
 }
 // Constructors
 public CodeDomLocalizationProvider(System.IServiceProvider provider, CodeDomLocalizationModel model)
 {
 }
	public CodeDomLocalizationProvider(System.IServiceProvider provider, CodeDomLocalizationModel model, System.Globalization.CultureInfo[] supportedCultures) {}
	// Constructors
	public CodeDomLocalizationProvider(System.IServiceProvider provider, CodeDomLocalizationModel model) {}
			public override object VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data)
			{
				if (this.model != CodeDomLocalizationModel.PropertyReflection && this.inInitMethod) {
					IdentifierExpression iex = memberReferenceExpression.TargetObject as IdentifierExpression;
					if (iex != null && iex.Identifier == "resources") {
						if (memberReferenceExpression.MemberName == "ApplyResources") {
							this.model = CodeDomLocalizationModel.PropertyReflection;
						} else if (memberReferenceExpression.MemberName == "GetString") {
							this.model = CodeDomLocalizationModel.PropertyAssignment;
						}
					}
				}
				return null;
			}
 public CodeDomLocalizationProvider(System.IServiceProvider provider, CodeDomLocalizationModel model, System.Globalization.CultureInfo[] supportedCultures)
 {
 }
 internal LocalizationCodeDomSerializer(CodeDomLocalizationModel model, object currentSerializer)
 {
     this._model = model;
     this._currentSerializer = currentSerializer as CodeDomSerializer;
 }
Esempio n. 30
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures)
 {
     throw null;
 }
Esempio n. 31
0
 /// <summary>
 ///  Only we can create an instance of this. Everyone else accesses it though
 ///  static properties.
 /// </summary>
 internal LocalizationCodeDomSerializer(CodeDomLocalizationModel model, object currentSerializer)
 {
     _model             = model;
     _currentSerializer = currentSerializer as CodeDomSerializer;
 }
Esempio n. 32
0
 public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model)
 {
     throw null;
 }
			public override bool EnterMethodInvocationExpression(MethodInvocationExpression node)
			{
				if (this.model == CodeDomLocalizationModel.PropertyReflection) return false;
				
				MemberReferenceExpression member = node.Target as MemberReferenceExpression;
				if (member != null) {
					ReferenceExpression refex = member.Target as ReferenceExpression;
					if (refex != null && refex.Name.Equals("resources", StringComparison.InvariantCulture)) {
						if (member.Name.Equals("ApplyResources", StringComparison.InvariantCulture)) {
							this.model = CodeDomLocalizationModel.PropertyReflection;
						} else if (member.Name.Equals("GetString", StringComparison.InvariantCulture)) {
							this.model = CodeDomLocalizationModel.PropertyAssignment;
						}
					}
				}
				return false;
			}
 internal ResourcePropertyMemberCodeDomSerializer(MemberCodeDomSerializer serializer, CodeDomLocalizationProvider.LanguageExtenders extender, CodeDomLocalizationModel model)
 {
     this._serializer = serializer;
     this._extender   = extender;
     this._model      = model;
 }