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); } } }
public VsbItemMetadata AddItemInfoFromElementRecursive(RadItem item) { VsbItemMetadata info = new VsbItemMetadata(item); this.AddElementInfos(info, item, true); this.AddChildMetadata(info); return(info); }
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); } }
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; } } }
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); }
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); }
protected virtual bool AddElementInfosOverride(VsbItemMetadata info, RadElement element, bool addChildItems) { return(false); }
public void AddElementInfos(VsbItemMetadata info, RadElement element) { this.AddElementInfos(info, element, false); }