/// <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);
            }
        }
Exemple #2
0
        /// <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);
        }