/// <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); }
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; }
public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model) { if (provider == null) { throw new ArgumentNullException("provider"); } this._model = model; this.Initialize(provider); }
/// <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); }
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); }
/// <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); }
/// <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); }
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); }
/// <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); }
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"); } }
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; }
public CodeDomLocalizationProvider (IServiceProvider provider, CodeDomLocalizationModel model) { throw new NotImplementedException (); }
public CodeDomLocalizationProvider (IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo [] supportedCultures) { throw new NotImplementedException (); }
public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model) { throw new NotImplementedException(); }
/// <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); }
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; }
public CodeDomLocalizationProvider(IServiceProvider provider, CodeDomLocalizationModel model, CultureInfo[] supportedCultures) { throw null; }
/// <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; }
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; }