public CIReferenceViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var entryProperty = GetEntryProperty();

            ReferencedCI = entryProperty == null ? "" : entryProperty.GetCIReferenceValue();
        }
Example #2
0
        public ListOfCIViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var entryProperty = GetEntryProperty();
            var ciSet         = (entryProperty == null ? new List <string> {
                SetOfCIViewModel.NO_CIS
            } : entryProperty.GetListOfCI());

            CiRefs          = new ObservableCollection <string>(ciSet);
            SelectedCIIndex = -1;
        }
Example #3
0
        public SetOfCIViewModel(ManifestEditorViewModel m, DescriptorProperty pd, Entry entry) : base(m, pd, entry)
        {
            var entryProperty = GetEntryProperty();
            var ciSet         = (entryProperty == null ? new HashSet <string>() : entryProperty.GetSetOfCI());

            CiRefs = new ObservableCollection <string>(ciSet);
            if (CiRefs.Count == 0)
            {
                CiRefs.Add(NO_CIS);
            }
        }
Example #4
0
        private PropertyEntryEditorViewModel GetPropertyEditor(DescriptorProperty propertyDescriptor)
        {
            if (propertyDescriptor.Name == "placeholders")
            {
                return(null);
            }

            if (propertyDescriptor.AsContainment)
            {
                return(null);
            }
            if (propertyDescriptor.IsStringEnum)
            {
                return(new EnumPropertyEntryEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsString)
            {
                return(new StringPropertyEntryEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsSetOrListOfString)
            {
                return(new ListOrSetOfStringEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsBoolean)
            {
                return(new BooleanPropertyEntryEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsMapStringString)
            {
                return(new MapStringStringEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsInteger)
            {
                return(new IntegerPropertyEntryEditorViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsSetOfCi)
            {
                return(new SetOfCIViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsListOfCi)
            {
                return(new ListOfCIViewModel(_manifestEditor, propertyDescriptor, Entry));
            }
            if (propertyDescriptor.IsCiReference)
            {
                return(new CIReferenceViewModel(_manifestEditor, propertyDescriptor, Entry));
            }

            throw new InvalidOperationException("Unhandled property type: " + propertyDescriptor.Kind);
        }
Example #5
0
        /// <summary>
        /// Initializes a new instance of the PropertyItemViewModel class.
        /// </summary>
        public PropertyItemViewModel(DescriptorProperty descriptorProperty, EntryItemViewModel parent,
                                     ManifestEditorViewModel editor)
            : base(parent)
        {
            if (descriptorProperty == null)
            {
                throw new ArgumentNullException("descriptorProperty", "descriptorProperty is null.");
            }
            if (parent == null)
            {
                throw new ArgumentNullException("parent", "parent is null.");
            }
            if (editor == null)
            {
                throw new ArgumentNullException("editor", "editor is null.");
            }

            var referencedType = descriptorProperty.ReferencedType;

            if (!descriptorProperty.AsContainment || string.IsNullOrWhiteSpace(referencedType))
            {
                throw new ArgumentException("Invalid descriptor property");
            }

            _descriptorProperty = descriptorProperty;
            _editor             = editor;
            TreeItemLabel       = descriptorProperty.Label;

            var childDescriptors = new List <Descriptor>(
                _editor.AllDescriptors.Values.Where(
                    d => !d.IsVirtual && (
                        d.Type == referencedType ||
                        d.Supertypes.Contains(referencedType) ||
                        d.Interfaces.Contains(referencedType))));

            _entryProperty = parent.Entry.GetPropertyAndCreateIfN(descriptorProperty.Name);

            IsExpanded = true;

            MenuItems = new List <MenuItemViewModel>
            {
                new MenuItemViewModel(Properties.Resources.EDITOR_NEW_CI, null, new List <MenuItemViewModel>(
                                          from descriptor in childDescriptors
                                          select new MenuItemViewModel(descriptor.Type, new DelegateCommand(() => DoAdd(descriptor)), null)
                                          ))
            };
        }
Example #6
0
        public BooleanPropertyEntryEditorViewModel(ManifestEditorViewModel manifestEditor,
                                                   DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            AvailableValues = new List <KeyValuePair <string, bool?> >
            {
                new KeyValuePair <string, bool?>(Resources.PROPERTY_BOOL_TRUE, true),
                new KeyValuePair <string, bool?>(Resources.PROPERTY_BOOL_FALSE, false),
                new KeyValuePair <string, bool?>(Resources.PROPERTY_BOOL_ND, null)
            };
            EntryProperty property = GetEntryProperty();

            if (property != null)
            {
                Value = property.GetBoolValue();
            }
        }
Example #7
0
        public EnumPropertyEntryEditorViewModel(ManifestEditorViewModel manifestEditor,
                                                DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var values = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>(Resources.PROPERTY_ENUM_ND, null)
            };

            values.AddRange(propertyDescriptor.EnumValues.Select(_ => new KeyValuePair <string, string>(_, _)));

            AvailableValues = values;

            EntryProperty property = GetEntryProperty();

            if (property != null)
            {
                Value = property.GetEnumValue();
            }
        }
Example #8
0
        public IntegerPropertyEntryEditorViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var property = GetEntryProperty();

            if (property == null)
            {
                return;
            }

            var intValue = property.GetIntValue();

            if (intValue.HasValue)
            {
                _stringValue = intValue.Value.ToString(CultureInfo.InvariantCulture);
            }
        }
Example #9
0
 public MapStringStringEditorViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
     : base(manifestEditor, propertyDescriptor, entry)
 {
     Items = new ObservableCollection <MapStringOfStringItemViewModel>();
 }
Example #10
0
 protected PropertyEntryEditorViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
 {
     ManifestEditor     = manifestEditor;
     PropertyDescriptor = propertyDescriptor;
     Entry = entry;
 }
Example #11
0
        public StringPropertyEntryEditorViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var property = GetEntryProperty();

            if (property != null)
            {
                Value = property.GetStringValue() ?? string.Empty;
            }
            else
            {
                if (propertyDescriptor != null && propertyDescriptor.DefaultValue != null)
                {
                    Value = propertyDescriptor.DefaultValue;
                }
            }
        }
        public ListOrSetOfStringEditorViewModel(ManifestEditorViewModel manifestEditor, DescriptorProperty propertyDescriptor, Entry entry)
            : base(manifestEditor, propertyDescriptor, entry)
        {
            var property = GetEntryProperty();

            if (property == null)
            {
                return;
            }

            var items = property.GetListofStringValue();

            if (items.Count > 0)
            {
                Value = string.Join(Environment.NewLine, items);
            }
        }