private static PlacementInfo FindPlacementImpl(ShapeTable shapeTable, IShape shape, string differentiator, string displayType) { ShapeDescriptor descriptor; var shapeType = shape.Metadata.Type; if (shapeTable.Descriptors.TryGetValue(shapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Shape = shape, DisplayType = displayType, Differentiator = differentiator }; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return null; }
protected async Task BindPlacementAsync(IBuildShapeContext context) { var theme = await _themeManager.GetThemeAsync(); var shapeTable = _shapeTableManager.GetShapeTable(theme.Id); context.FindPlacement = (partShapeType, differentiator, displayType) => { ShapeDescriptor descriptor; if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Shape = context.Shape }; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return null; }; }
protected async Task BindPlacementAsync(IBuildShapeContext context) { var theme = await _themeManager.GetThemeAsync(); var shapeTable = _shapeTableManager.GetShapeTable(theme.Id); context.FindPlacement = (partShapeType, differentiator, defaultLocation) => { ShapeDescriptor descriptor; if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Shape = context.Shape }; // define which location should be used if none placement is hit descriptor.DefaultPlacement = defaultLocation; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return new PlacementInfo { Location = defaultLocation, Source = String.Empty }; }; }
private PlacementInfo DefaultPlacementAction(ShapePlacementContext context) { // A null default placement means no default placement is specified if(DefaultPlacement == null) { return null; } return new PlacementInfo { Location = DefaultPlacement }; }
protected PlacementInfo DefaultPlacementAction(ShapePlacementContext context) { // A null default placement means no default placement is specified if (DefaultPlacement == null) { return null; } return new PlacementInfo { Location = DefaultPlacement }; }
private void BindPlacement(BuildShapeContext context, string displayType, string stereotype) { context.FindPlacement = (partShapeType, differentiator, defaultLocation) => { var workContext = _workContextAccessor.GetContext(_requestContext.HttpContext); var theme = workContext.CurrentTheme; var shapeTable = _shapeTableLocator.Value.Lookup(theme.Id); var request = _requestContext.HttpContext.Request; ShapeDescriptor descriptor; if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Content = context.ContentItem, ContentType = context.ContentItem.ContentType, Stereotype = stereotype, DisplayType = displayType, Differentiator = differentiator, Path = VirtualPathUtility.AppendTrailingSlash(_virtualPathProvider.ToAppRelative(request.Path)) // get the current app-relative path, i.e. ~/my-blog/foo }; // define which location should be used if none placement is hit descriptor.DefaultPlacement = defaultLocation; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return new PlacementInfo { Location = defaultLocation, Source = String.Empty }; }; }
private void BindPlacement(BuildShapeContext context, string displayType, string stereotype, string bindingType) { context.FindPlacement = (partShapeType, differentiator, defaultLocation) => { var workContext = _workContextAccessor.GetContext(_requestContext.HttpContext); var theme = workContext.CurrentTheme; var shapeTable = _shapeTableLocator.Value.Lookup(theme.Id); ShapeDescriptor descriptor; if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Content = context.ContentItem, ContentType = context.ContentItem.ContentType, Stereotype = stereotype, DisplayType = displayType, BindingType = bindingType, Differentiator = differentiator, Path = GetPath() }; // define which location should be used if none placement is hit descriptor.DefaultPlacement = defaultLocation; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return new PlacementInfo { Location = defaultLocation, Source = String.Empty }; }; }
private void BindPlacement(ModelShapeContext context, string displayType, string stereotype) { context.FindPlacement = (partShapeType, differentiator, defaultLocation) => { var theme = _themeService.Value.GetRequestTheme(_requestContext); var shapeTable = _shapeTableManager.GetShapeTable(theme.Id); var request = _requestContext.HttpContext.Request; ShapeDescriptor descriptor; if (shapeTable.Descriptors.TryGetValue(partShapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Stereotype = stereotype, DisplayType = displayType, Differentiator = differentiator, Path = VirtualPathUtility.AppendTrailingSlash(VirtualPathUtility.ToAppRelative(request.Path)) // get the current app-relative path, i.e. ~/my-blog/foo }; var placement = descriptor.Placement(placementContext); if (placement != null) { placement.Source = placementContext.Source; return placement; } } return new PlacementInfo { Location = defaultLocation, Source = String.Empty }; }; }
private PlacementInfo DefaultPlacementAction(ShapePlacementContext context) { return(new PlacementInfo { Location = DefaultPlacement }); }
public bool WasDisplayed(UpdateEditorContext context) { ShapeDescriptor descriptor; if (context.ShapeTable.Descriptors.TryGetValue(_shapeType, out descriptor)) { var placementContext = new ShapePlacementContext { Content = context.ContentItem, ContentType = context.ContentItem.ContentType, Differentiator = _differentiator, DisplayType = null, Path = context.Path }; var placementInfo = descriptor.Placement(placementContext); var location = placementInfo.Location; if (String.IsNullOrEmpty(location) || location == "-") { return false; } var editorGroup = _groupId; if (String.IsNullOrEmpty(editorGroup)) { editorGroup = placementInfo.GetGroup() ?? ""; } var contextGroup = context.GroupId ?? ""; if (!String.Equals(editorGroup, contextGroup, StringComparison.OrdinalIgnoreCase)) { return false; } } return true; }
private PlacementInfo DefaultPlacementAction(ShapePlacementContext context) { return new PlacementInfo { Location = DefaultPlacement }; }