/// <summary> /// Initializes a new instance of the <see cref="ResourceViewModel" /> class. /// </summary> /// <param name="resource">The resource.</param> public ResourceViewModel(Resource resource) { Resource = resource; Children = new BindableCollection <ResourceViewModel>(); Indicator = new IndicatorViewModel(); if (resource.HasChildren != 0) { Children.Add(Placeholder); } }
/// <summary> /// Initializes a new instance of the <see cref="ResourceViewModel" /> class. /// </summary> /// <param name="runtime">The runtime.</param> /// <param name="resource">The resource.</param> /// <param name="dataContext">The data context.</param> public ResourceViewModel(IRuntimeService runtime, Resource resource, object dataContext = null) { Runtime = runtime; Resource = resource; Children = new BindableCollection <ResourceViewModel>(); Indicator = new IndicatorViewModel(); DataContext = dataContext; IsVisible = true; if (resource.HasChildren != 0) { Children.Add(Placeholder); } UpdateIndicator(); }
private ResourceViewModel ToResourceViewModel <T>(T dataObject, Action <ResourceViewModel, string> action, Func <T, EtpUri> getUri, int children = -1) where T : IDataObject { var uri = getUri(dataObject); var indicator = new IndicatorViewModel { Color = "#FF32CD32" }; if (ObjectTypes.Wellbore.EqualsIgnoreCase(uri.ObjectType)) { indicator.IsVisible = dataObject.GetWellboreStatus().GetValueOrDefault(); indicator.Tooltip = "Active"; } else if (ObjectTypes.IsGrowingDataObject(uri.ObjectType)) { indicator.IsVisible = dataObject.GetObjectGrowingStatus().GetValueOrDefault(); indicator.Tooltip = "Growing"; } return(ToResourceViewModel(uri, dataObject.Name, action, children, indicator)); }
private ResourceViewModel ToResourceViewModel(EtpUri uri, string name, Action <ResourceViewModel, string> action, int children = -1, IndicatorViewModel indicator = null) { var resource = new Resource() { Uri = uri, Name = name, ContentType = uri.ContentType, HasChildren = children }; var viewModel = new ResourceViewModel(resource); if (indicator != null) { viewModel.Indicator = indicator; } if (children != 0 && action != null) { viewModel.LoadChildren = x => { action(viewModel, x); return(_messageId++); }; } return(viewModel); }