public List <IGraphicItem> GetGraphicItems(object obj)
        {
            if (mGraphicProperties.Count <= 0)
            {
                return(null);
            }

            List <IGraphicItem> graphics = new List <IGraphicItem>();

            foreach (var item in mGraphicProperties)
            {
                var property = item.GetValue(obj, null); //For now indexed property is not queried
                if (null != property)
                {
                    List <IGraphicItem> items = GraphicDataProvider.GetGraphicItemsFromObject(property);
                    if (null != items && items.Count > 0)
                    {
                        graphics.AddRange(items);
                    }
                }
            }
            if (graphics.Count > 0)
            {
                return(graphics);
            }

            return(null);
        }
        private List <PropertyInfo> GetGraphicProperties(System.Type type)
        {
            List <PropertyInfo> graphicProperties = new List <PropertyInfo>();

            PropertyInfo[] properties = type.GetProperties();
            foreach (var item in properties)
            {
                //Check if we have a data provider for this property type.
                IGraphicDataProvider provider = GraphicDataProvider.GetGraphicDataProviderForType(item.PropertyType);
                if (null != provider)
                {
                    graphicProperties.Add(item);
                }
            }

            return(graphicProperties);
        }