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;
        }
Ejemplo n.º 3
0
        /// <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));
                }
            }
        }
Ejemplo n.º 4
0
 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);
            }
        }
Ejemplo n.º 6
0
        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));
        }