public ConfigurationItemViewModel(Type propertyType, string name, DependencySet dependencySet, IWindowManager windowManager) { Name = name; ValueType = propertyType; var type = ComponentFactory.GetControl(propertyType); if (dependencySet.HasAttach(WpfFeatureBuilder.WpfRenderControl)) { var customControls = dependencySet.GetAttach <Dictionary <string, Type> >(WpfFeatureBuilder.WpfRenderControl); if (customControls.ContainsKey(name)) { type = customControls[name]; } } if (dependencySet.HasAttach(WpfFeatureBuilder.WpfMultiOptionFields)) { var multiSet = dependencySet.GetAttach <HashSet <string> >(WpfFeatureBuilder.WpfMultiOptionFields); if (multiSet.Contains(name)) { Value = new ConfigurationMultiValueViewModel(name, dependencySet); } } if (Value == null) { Value = new ConfigurationSingleValueViewModel(name, dependencySet); } windowManager.BeginUIThreadScope(() => { InputControl = (Control)Activator.CreateInstance(type); InputControl.DataContext = Value; }); }
public ConfigurationMultiValueViewModel(string name, DependencySet dependencySet) : base(name, dependencySet) { var attachMap = dependencySet.GetAttach <Dictionary <string, object> >(WpfFeatureBuilder.WpfExtraData); ItemSource = attachMap[name]; (ItemSource as INotifyCollectionChanged).CollectionChanged += ConfigurationMultiValueViewModel_CollectionChanged; }
/// <summary> /// Collect dependencies from a field collection /// </summary> /// <param name="fieldSet"></param> private void AddDependencies(ISet <MessageField> fieldSet) { foreach (MessageField field in fieldSet) { if (this.Type.Type == field.Type.Type && RosConstants.MessageTypes.CustomTimePrimitiveTypeSet.Contains(this.Type.Type)) { field.Type.Type = RosConstants.MessageTypes.CUSTOM_TIME_PRIMITIVE_TYPE; } if (!string.IsNullOrEmpty(field.Type.Namespace) && this.Type.Namespace != field.Type.Namespace) { DependencySet.Add(new RosType(field.Type.Namespace, field.Type.Type)); } } }
internal ManualTargetDescription([NotNull] ModuleName moduleName, [NotNull] ISource source, [CanBeNull] string fileName, [NotNull] IEnumerable<ModuleName> dependencies, [CanBeNull] IEnumerable<Message> buildMessages = null) { if (moduleName == null) throw new ArgumentNullException("moduleName"); if (source == null) throw new ArgumentNullException("source"); if (dependencies == null) throw new ArgumentNullException("dependencies"); _moduleName = moduleName; _source = source; _fileName = fileName; _dependencies = new DependencySet(moduleName); _dependencies.AddRange(dependencies); if (buildMessages != null) _buildMessages = new List<Message>(buildMessages); }
public ConfigurationSetViewModel(DependencySet dependencySet, IWindowManager windowManager) { DependencySet = dependencySet; var type = DependencySet.GetType(); ConfigurationType = type; this.WindowManager = windowManager; var nameAttr = ConfigurationType.GetCustomAttribute <ConfigurationSetNameAttribute>(); if (nameAttr != null) { Name = nameAttr.Name; } else { Name = type.GetGenericName(1); } }
public ProvidedTarget(Module module, IEnumerable<ModuleName> dependencies = null, IEnumerable<KeyValuePair<string, Symbol>> symbols = null, IEnumerable<IResourceDescriptor> resources = null, IEnumerable<Message> messages = null, IEnumerable<Message> buildMessages = null, Exception exception = null) { _module = module; _dependencies = new DependencySet(module.Name); if (dependencies != null) _dependencies.AddRange(dependencies); _symbols = SymbolStore.Create(); if (symbols != null) foreach (var entry in symbols) _symbols.Declare(entry.Key, entry.Value); _resources = new List<IResourceDescriptor>(); if (resources != null) _resources.AddRange(resources); _exception = exception; if (messages != null) _messages = new List<Message>(messages); if (buildMessages != null) { _buildMessages = new List<Message>(buildMessages); if (_messages == null) _messages = new List<Message>(_buildMessages); else _messages.AddRange(_buildMessages); } _isSuccessful = exception == null && (_messages == null || _messages.All(m => m.Severity != MessageSeverity.Error)); }