public override void BuildEditor(BuildEditorContext context) { _drivers.Invoke(driver => { var result = driver.BuildEditor(context); if (result != null) result.Apply(context); }, Logger); }
public override void Apply(BuildEditorContext context) { foreach (var result in _results) { // copy the ContentPart which was used to render this result to its children // so they can assign it to the concrete shapes if (result.ContentPart == null && ContentPart != null) { result.ContentPart = ContentPart; } // copy the ContentField which was used to render this result to its children // so they can assign it to the concrete shapes if (result.ContentField == null && ContentField != null) { result.ContentField = ContentField; } result.Apply(context); } }
public dynamic BuildEditor(IContent content, string groupId) { var contentTypeDefinition = content.ContentItem.TypeDefinition; string stereotype; if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) stereotype = "Content"; var actualShapeType = stereotype + "_Edit"; dynamic itemShape = CreateItemShape(actualShapeType); itemShape.ContentItem = content.ContentItem; var context = new BuildEditorContext(itemShape, content, groupId, _shapeFactory); BindPlacement(context, null, stereotype); _handlers.Value.Invoke(handler => handler.BuildEditor(context), Logger); return context.Shape; }
public BuildEditorContext BuildEditorContext(IContent content, string groupId) { var contentTypeDefinition = content.ContentItem.TypeDefinition; string stereotype; if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) stereotype = DefaultStereotype; var actualShapeType = stereotype + "_Edit"; var itemShape = CreateItemShape(actualShapeType); itemShape.ContentItem = content.ContentItem; // Adding an alternate for [Stereotype]_Edit__[ContentType] e.g. Content-Menu.Edit. ((IShape)itemShape).Metadata.Alternates.Add(actualShapeType + "__" + content.ContentItem.ContentType); var context = new BuildEditorContext(itemShape, content, groupId, _shapeFactory); BindPlacement(context, null, stereotype); return context; }
public string BuildEditor(IContent content) { var contentTypeDefinition = content.ContentItem.TypeDefinition; string stereotype; //if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) // stereotype = "Content"; //var actualShapeType = stereotype + "_Edit"; //dynamic itemShape = CreateItemShape(actualShapeType); //itemShape.ContentItem = content.ContentItem; // adding an alternate for [Stereotype]_Edit__[ContentType] e.g. Content-Menu.Edit //((IShape)itemShape).Metadata.Alternates.Add(actualShapeType + "__" + content.ContentItem.ContentType); var context = new BuildEditorContext(content); //BindPlacement(context, null, stereotype); _handlers.Value.Invoke(handler => handler.BuildEditor(context), Logger); return string.Empty; }
public dynamic BuildEditor(IContent content, string groupId) { var contentTypeDefinition = content.ContentItem.TypeDefinition; string stereotype; if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) stereotype = "Content"; var actualShapeType = stereotype + "_Edit"; dynamic itemShape = CreateItemShape(actualShapeType); itemShape.ContentItem = content.ContentItem; // adding an alternate for [Stereotype]_Edit__[ContentType] e.g. Content-Menu.Edit ((IShape)itemShape).Metadata.Alternates.Add(actualShapeType + "__" + content.ContentItem.ContentType); var context = new BuildEditorContext(itemShape, content, groupId, _shapeFactory); BindPlacement(context, null, stereotype); _handlers.Value.Invoke(handler => handler.BuildEditor(context), Logger); return context.Shape; }
public override void Apply(BuildEditorContext context) { foreach (var result in _results) { result.Apply(context); } }
private IEnumerable<DriverResultPlacement> ExtractPlacement(DriverResult result, BuildShapeContext context) { if (result is CombinedResult) { foreach (var subResult in ((CombinedResult)result).GetResults()) { foreach (var placement in ExtractPlacement(subResult, context)) { yield return placement; } } } else if (result is ContentShapeResult) { var contentShapeResult = (ContentShapeResult)result; var placement = context.FindPlacement( contentShapeResult.GetShapeType(), contentShapeResult.GetDifferentiator(), contentShapeResult.GetLocation() ); string zone = placement.Location; string position = String.Empty; // if no placement is found, it's hidden, e.g., no placement was found for the specific ContentType/DisplayType if (placement.Location != null) { var delimiterIndex = placement.Location.IndexOf(':'); if (delimiterIndex >= 0) { zone = placement.Location.Substring(0, delimiterIndex); position = placement.Location.Substring(delimiterIndex + 1); } } var content = _contentManager.New(context.ContentItem.ContentType); dynamic itemShape = CreateItemShape("Content_Edit"); itemShape.ContentItem = content; if (context is BuildDisplayContext) { var newContext = new BuildDisplayContext(itemShape, content, "Detail", "", context.New); BindPlacement(newContext, "Detail", "Content"); contentShapeResult.Apply(newContext); } else { var newContext = new BuildEditorContext(itemShape, content, "", context.New); BindPlacement(newContext, null, "Content"); contentShapeResult.Apply(newContext); } yield return new DriverResultPlacement { Shape = itemShape.Content, ShapeResult = contentShapeResult, PlacementSettings = new PlacementSettings { ShapeType = contentShapeResult.GetShapeType(), Zone = zone, Position = position, Differentiator = contentShapeResult.GetDifferentiator() ?? String.Empty } }; } }
public IEnumerable<DriverResultPlacement> GetEditorPlacement(string contentType) { var content = _contentManager.New(contentType); dynamic itemShape = CreateItemShape("Content_Edit"); itemShape.ContentItem = content; var context = new BuildEditorContext(itemShape, content, String.Empty, _shapeFactory); BindPlacement(context, null, "Content"); var placementSettings = new List<DriverResultPlacement>(); _contentPartDrivers.Invoke(driver => { var result = driver.BuildEditor(context); if (result != null) { placementSettings.AddRange(ExtractPlacement(result, context)); } }, Logger); _contentFieldDrivers.Invoke(driver => { var result = driver.BuildEditorShape(context); if (result != null) { placementSettings.AddRange(ExtractPlacement(result, context)); } }, Logger); foreach (var placementSetting in placementSettings) { yield return placementSetting; } }
protected override void BuildEditorShape(BuildEditorContext context) { var experimentalSettings = context.ContentItem.TypeDefinition.Settings.GetModel<Settings.ExperimentalSettings>(); if (experimentalSettings.ShowDebugLinks) context.Shape.Zones["Recap"].Add(new ShowDebugLink { ContentItem = context.ContentItem }, "9999"); }
public override void Apply(BuildEditorContext context) { ApplyImplementation(context, null); }
public void ApplyEditors(BuildEditorContext driverContext, SocketParentContext parentContext = null) { var rootShape = driverContext.Shape; var content = driverContext.Content; var displayType = ""; var groupId = driverContext.GroupId; var updateContext = driverContext as UpdateEditorContext; var updater = updateContext == null ? null : updateContext.Updater; // Discover if this item has been displayed further up the chain. This prevents recursion. if (parentContext != null && CheckRecursion(content, parentContext,displayType)) { _origami.Build( _origami.Builder(new RecursionPreventedModel(content)) .WithMode("Display") .WithDisplayType(displayType) .WithStereotype("Sockets") .WithContentType(content.ContentItem.ContentType) .WithParent(parentContext.ModelContext) .WithParadigms(parentContext.ModelContext.Paradigms) , rootShape); return; } var context = new SocketsModel(content, displayType, parentContext); var prefix = "Sockets"; if (parentContext != null && !String.IsNullOrWhiteSpace(parentContext.Prefix)) { prefix = parentContext.Prefix + "." + prefix; } // ApplyParadigms(rootShape, context); // var paradigms = context..DefaultParadigms.Split(',', StringSplitOptions.RemoveEmptyEntries); var builder = _origami.Builder(context) .WithMode("Editor") .WithUpdater(updater, prefix) .WithDisplayType(displayType) .WithStereotype("Sockets") .WithContentType(content.ContentItem.ContentType) .WithGroup(groupId); if (parentContext!=null) { builder.WithParent(parentContext.ModelContext) .WithParadigms(parentContext.ModelContext.Paradigms); } _origami.Build(builder,rootShape); }
public override void Apply(BuildEditorContext context) { var templateShape = context.New.EditorTemplate(TemplateName: TemplateName, Model: Model, Prefix: Prefix); context.Shape.Zones[Zone].Add(templateShape, Position); }
public virtual void BuildEditor(BuildEditorContext context) { }
public virtual void Apply(BuildEditorContext context) { }
public void BuildEditor(BuildEditorContext context) { }
protected virtual void BuildEditorShape(BuildEditorContext context) { }
protected override void BuildEditorShape(BuildEditorContext context, TContent instance) { }