public RenderingItem([CanBeNull] IRenderingContainer renderingContainer, [NotNull] DatabaseUri databaseUri, [NotNull] XElement element, bool isDuplicate) : this(renderingContainer, databaseUri, element) { Assert.ArgumentNotNull(databaseUri, nameof(databaseUri)); Assert.ArgumentNotNull(element, nameof(element)); hasParameters = isDuplicate; if (!isDuplicate) { return; } UniqueId = Guid.NewGuid().ToString("B").ToUpperInvariant(); var idProperty = DynamicProperties.FirstOrDefault(p => string.Compare(p.Name, @"id", StringComparison.InvariantCultureIgnoreCase) == 0); if (idProperty != null) { var n = idProperty.Value as string; if (!string.IsNullOrEmpty(n)) { n = n.TrimEnd('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); } else { n = Name; } disableRenaming = true; idProperty.Value = GetNewControlId(n.GetSafeCodeIdentifier()); disableRenaming = false; } }
public RenderingItem([CanBeNull] IRenderingContainer renderingContainer, [NotNull] IItem item) { Assert.ArgumentNotNull(item, nameof(item)); RenderingContainer = renderingContainer; Name = item.Name; Cacheable = false; Conditions = string.Empty; DataSource = string.Empty; ItemId = item.ItemUri.ItemId.ToString(); MultiVariateTests = string.Empty; Parameters = string.Empty; PlaceholderKey = new PlaceHolderKey(string.Empty); UniqueId = Guid.NewGuid().Format(); VaryByData = false; VaryByDevice = false; VaryByLogin = false; VaryByParameters = false; VaryByQueryString = false; VaryByUser = false; PlaceHolders = string.Empty; DataSourceLocation = string.Empty; DataSourceTemplate = string.Empty; FilePath = string.Empty; ParameterTemplateId = string.Empty; Ruleset = string.Empty; SpeakCoreVersion = string.Empty; SpeakCoreVersionId = string.Empty; ParameterDictionary = new ParameterDictionary(new Dictionary <string, string>()); Icon = item.Icon; ItemUri = item.ItemUri; }
public override void GetRenderings(IRenderingContainer renderingContainer, Action <IEnumerable <RenderingItem> > completed) { Assert.ArgumentNotNull(renderingContainer, nameof(renderingContainer)); Assert.ArgumentNotNull(completed, nameof(completed)); var dialog = new SpeakFormRenderingChunkDialog { RenderingContainer = renderingContainer, DatabaseUri = renderingContainer.DatabaseUri }; if (!dialog.ShowModal()) { completed(Enumerable.Empty <RenderingItem>()); return; } var renderingItems = dialog.Renderings; if (renderingItems == null) { completed(Enumerable.Empty <RenderingItem>()); return; } completed(renderingItems); }
public override void GetRenderings(IRenderingContainer renderingContainer, Action <IEnumerable <RenderingItem> > completed) { Assert.ArgumentNotNull(renderingContainer, nameof(renderingContainer)); Assert.ArgumentNotNull(completed, nameof(completed)); var text = AppHost.Files.ReadAllText(FileName); ExecuteCompleted getLayoutCompleted = delegate(string response, ExecuteResult executeResult) { var root = response.ToXElement(); if (root == null) { completed(Enumerable.Empty <RenderingItem>()); return; } var result = Enumerable.Empty <RenderingItem>(); var layoutElement = root.Element("layout"); if (layoutElement != null) { var deviceElement = layoutElement.Elements().FirstOrDefault(d => d.HasElements); if (deviceElement != null) { result = deviceElement.Elements().Select(element => new RenderingItem(renderingContainer, renderingContainer.DatabaseUri, element)).ToList(); } } completed(result); }; ExecuteCompleted getDevicesCompleted = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } var root = response.ToXElement(); if (root == null) { return; } var deviceElement = root.Elements().FirstOrDefault(); if (deviceElement == null) { return; } var deviceId = deviceElement.GetAttributeValue("id"); text = text.Replace("<d>", "<d id=\"" + deviceId + "\">"); AppHost.Server.GetLayout(text, renderingContainer.DatabaseUri, getLayoutCompleted); }; AppHost.Server.Layouts.GetDevices(renderingContainer.DatabaseUri, getDevicesCompleted); }
public RenderingItem([CanBeNull] IRenderingContainer renderingContainer, [NotNull] DatabaseUri databaseUri, [NotNull] XElement element) { Assert.ArgumentNotNull(databaseUri, nameof(databaseUri)); Assert.ArgumentNotNull(element, nameof(element)); RenderingContainer = renderingContainer; Name = element.GetAttributeValue("name"); Cacheable = element.GetAttributeValue("cac") == @"1"; Conditions = element.GetAttributeValue("cnd"); DataSource = element.GetAttributeValue("ds"); ItemId = element.GetAttributeValue("id"); MultiVariateTests = element.GetAttributeValue("mvt"); Parameters = element.GetAttributeValue("par"); PlaceholderKey = new PlaceHolderKey(element.GetAttributeValue("ph")); UniqueId = element.GetAttributeValue("uid"); VaryByData = element.GetAttributeValue("vbd") == @"1"; VaryByDevice = element.GetAttributeValue("vbdev") == @"1"; VaryByLogin = element.GetAttributeValue("vbl") == @"1"; VaryByParameters = element.GetAttributeValue("vbp") == @"1"; VaryByQueryString = element.GetAttributeValue("vbqs") == @"1"; VaryByUser = element.GetAttributeValue("vbu") == @"1"; Ruleset = element.GetAttributeValue("rls"); ParameterDictionary = new ParameterDictionary(new Dictionary <string, string>()); PlaceHolders = element.GetAttributeValue("placeholders"); DataSourceLocation = element.GetAttributeValue("dsl"); DataSourceTemplate = element.GetAttributeValue("dst"); FilePath = element.GetAttributeValue("path"); ParameterTemplateId = element.GetAttributeValue("templateid"); ItemUri = ItemUri.Empty; Icon = new Icon(databaseUri.Site, element.GetAttributeValue("ic")); SpeakCoreVersion = element.GetAttributeValue("speakcoreversion"); SpeakCoreVersionId = element.GetAttributeValue("speakcoreversionid"); if (!string.IsNullOrEmpty(ItemId)) { ItemUri = new ItemUri(databaseUri, new ItemId(new Guid(ItemId))); } var parameterValues = new UrlString(Parameters); foreach (string key in parameterValues.Parameters.Keys) { ParameterDictionary.Parameters[key] = parameterValues.Parameters[key]; } var templateElement = element.Element("template"); if (templateElement != null) { ParseTemplate(templateElement); } }
public void Initialize([NotNull] string title, [NotNull] string selectedValue, [NotNull] IRenderingContainer container) { Assert.ArgumentNotNull(title, nameof(title)); Assert.ArgumentNotNull(selectedValue, nameof(selectedValue)); Assert.ArgumentNotNull(container, nameof(container)); Title = title; SelectedValue = selectedValue; Container = container; DatabaseUri = Container.DatabaseUri; }
public List <RenderingItem> GetItems([NotNull] IRenderingContainer container, [NotNull] DatabaseUri databaseUri, [NotNull] string text) { Assert.ArgumentNotNull(container, nameof(container)); Assert.ArgumentNotNull(databaseUri, nameof(databaseUri)); Assert.ArgumentNotNull(text, nameof(text)); if (text.StartsWith(@"Sitecore.Clipboard.Renderings:")) { text = text.Mid(30); } var root = text.ToXElement(); if (root == null) { return(null); } return(root.Elements().Select(element => new RenderingItem(container, databaseUri, element)).ToList()); }
public void Register(string key, IRenderingContainer container) { throw CreateException(nameof(IWidgetContainerManagement)); }
public void Register(string key, IRenderingContainer container) { map[key] = container; }
public static void GetRenderingContainerDataBindingValues([NotNull] this IRenderingContainer container, [NotNull] RenderingItem renderingItem, [NotNull] DynamicProperty dynamicProperty, [NotNull] List <string> values) { Assert.ArgumentNotNull(container, nameof(container)); Assert.ArgumentNotNull(renderingItem, nameof(renderingItem)); Assert.ArgumentNotNull(dynamicProperty, nameof(dynamicProperty)); Assert.ArgumentNotNull(values, nameof(values)); var primary = new List <string>(); var secondary = new List <string>(); foreach (var rendering in container.Renderings) { if (rendering == renderingItem) { continue; } var idProperty = rendering.DynamicProperties.FirstOrDefault(p => string.Compare(p.Name, @"id", StringComparison.InvariantCultureIgnoreCase) == 0); if (idProperty == null) { continue; } var name = idProperty.Value as string; if (string.IsNullOrEmpty(name)) { continue; } foreach (var property in rendering.DynamicProperties) { if (property == idProperty) { continue; } if (!property.CanRead()) { continue; } if (string.Compare(dynamicProperty.TypeName, "Checkbox", StringComparison.InvariantCultureIgnoreCase) == 0 && string.Compare(property.TypeName, "Checkbox", StringComparison.InvariantCultureIgnoreCase) != 0) { continue; } var subtype0 = dynamicProperty.Attributes["subtype"] as string ?? string.Empty; var subtype1 = property.Attributes["subtype"] as string ?? string.Empty; if (!string.IsNullOrEmpty(subtype0) && string.Compare(subtype0, subtype1, StringComparison.InvariantCultureIgnoreCase) != 0) { continue; } var text = string.Format("{{Binding {0}.{1}}}", name, property.Name); if (string.Compare(property.Name, dynamicProperty.Name, StringComparison.InvariantCultureIgnoreCase) == 0) { primary.Add(text); } else { secondary.Add(text); } } } primary.Sort(); secondary.Sort(); values.AddRange(primary); values.AddRange(secondary); }
public abstract void GetRenderings(IRenderingContainer renderingContainer, Action <IEnumerable <RenderingItem> > completed);