public static PropertyList ParsePropertyList(JsonObject data) { List <PropertyListItem> listItems = PropertyListItem.ParsePropertyListItemList(data["ListItems"].GetArray()); string valueId = data["Value"].GetString(); PropertyListItem selected = listItems.FirstOrDefault((a) => a.Id == valueId); bool isVisibleInProductEditor = bool.Parse(data["IsVisibleInProductEditor"].GetString()); bool isVisibleInMyLights = bool.Parse(data["IsVisibleInMyLights"].GetString()); List <PropertyMetadataItem> metadata = null; if (data.ContainsKey("Metadata")) { metadata = PropertyMetadataItem.ParsePropertyMetadataItemList(data["Metadata"].GetArray()); } return(new PropertyList(data["Id"].GetString(), data["Caption"].GetString(), selected, listItems, isVisibleInProductEditor, isVisibleInMyLights, metadata)); }
public void SelectById(string id) { if (id == null || _listItems == null || _listItems.Count == 0) { SelectedItem = null; return; } foreach (var item in _listItems) { if (item.Id == id) { SelectedItem = item; return; } } }
public override IProperty Clone() { List <PropertyListItem> clonedItems = new List <PropertyListItem>(_listItems.Count); for (int i = 0; i < _listItems.Count; i++) { clonedItems.Add(_listItems[i].Clone()); } PropertyListItem clonedSelected = null; if (_selectedItem != null) { clonedSelected = clonedItems.FirstOrDefault((a) => a.Id == _selectedItem.Id); } return(new PropertyList(_id, _header, clonedSelected, clonedItems, _isVisibleInProductEditor, _isVisibleInMyLights, _metadata.Clone())); }
public PropertyList(string id, string header, PropertyListItem selectedItem, List <PropertyListItem> listItems, bool isVisibleInProductEditor, bool isVisibleInMyLights, List <PropertyMetadataItem> metadata) : base(id, PropertyEditorType.ComboBox, header, isVisibleInProductEditor, isVisibleInMyLights, metadata) { _selectedItem = selectedItem; _listItems = listItems; }