Exemplo n.º 1
0
        public void AddElementInfos(VsbItemMetadata info, RadElement element, bool addChildItems)
        {
            foreach (RadElement child in element.Children)
            {
                if (this.AddElementInfosOverride(info, child, addChildItems))
                {
                    continue;
                }

                if (!child.VsbVisible)
                {
                    this.AddElementInfos(info, child, addChildItems);
                    continue;
                }

                if (!this.IsContainerElement(child))
                {
                    info.AddChildMetadata(this.CreateChildElementMetadata(child));
                    this.AddElementInfos(info, child, addChildItems);
                }
                else if (addChildItems)
                {
                    RadItem childItem = child as RadItem;
                    if (childItem == null)
                    {
                        continue;
                    }

                    VsbItemMetadata childInfo = this.CreateChildMetadata(childItem);
                    info.AddChildMetadata(childInfo);
                    this.AddElementInfos(childInfo, child, true);
                }
            }
        }
Exemplo n.º 2
0
        public VsbItemMetadata AddItemInfoFromElementRecursive(RadItem item)
        {
            VsbItemMetadata info = new VsbItemMetadata(item);

            this.AddElementInfos(info, item, true);
            this.AddChildMetadata(info);

            return(info);
        }
Exemplo n.º 3
0
        private void TryAddItemMetadataState(VsbItemMetadata itemMetadata, string targetItemThemeRole, string stateToMerge)
        {
            foreach (VsbItemMetadata currentItemMetadata in itemMetadata.ChildItemInfos)
            {
                if (currentItemMetadata.ItemThemeRole == targetItemThemeRole &&
                    !currentItemMetadata.StateExists(stateToMerge) &&
                    currentItemMetadata.StateManager.VerifyState(stateToMerge))
                {
                    currentItemMetadata.AddVisibleState(stateToMerge);
                }

                this.TryAddItemMetadataState(currentItemMetadata, targetItemThemeRole, stateToMerge);
            }
        }
Exemplo n.º 4
0
        public void RemoveRelationForItem(VsbItemMetadata metadata, BuilderRegistrationType registrationType)
        {
            StyleBuilderRegistration registration = this.GetStyleBuilderRegistration(metadata);

            if (registration == null)
            {
                throw new InvalidOperationException("Could not add relation for Item " + metadata.ItemThemeRole + " because no style registration is available.");
            }

            foreach (RadStylesheetRelation relation in registration.StylesheetRelations)
            {
                if (relation.RegistrationType == registrationType &&
                    metadata.ElementThemeType.FullName == relation.ElementType)
                {
                    registration.StylesheetRelations.Remove(relation);
                    break;
                }
            }
        }
Exemplo n.º 5
0
        public void AddRelationForItem(VsbItemMetadata metadata, BuilderRegistrationType registrationType)
        {
            StyleBuilderRegistration registration = this.GetStyleBuilderRegistration(metadata);

            if (registration == null)
            {
                throw new InvalidOperationException("Could not add relation for Item " + metadata.ItemThemeRole + " because no style registration is available.");
            }

            string controlType = string.Empty;

            if (registrationType == BuilderRegistrationType.ElementTypeControlType ||
                registrationType == BuilderRegistrationType.ElementNameControlType)
            {
                controlType = this.PreviewTreeHandler.ThemeClassName;
            }

            registration.AddStylesheetRelation(registrationType, metadata.ElementThemeType.FullName, controlType, string.Empty, string.Empty);
        }
Exemplo n.º 6
0
        public RadStylesheetRelation FindRelation(VsbItemMetadata metadata, BuilderRegistrationType registrationType)
        {
            StyleBuilderRegistration registration = this.GetStyleBuilderRegistration(metadata);

            if (registration == null)
            {
                return(null);
            }

            foreach (RadStylesheetRelation relation in registration.StylesheetRelations)
            {
                if (relation.RegistrationType == registrationType &&
                    metadata.ElementThemeType.FullName == relation.ElementType)
                {
                    return(relation);
                }
            }

            return(null);
        }
Exemplo n.º 7
0
 protected virtual bool AddElementInfosOverride(VsbItemMetadata info, RadElement element, bool addChildItems)
 {
     return(false);
 }
Exemplo n.º 8
0
 public void AddElementInfos(VsbItemMetadata info, RadElement element)
 {
     this.AddElementInfos(info, element, false);
 }