protected override DriverResult Editor(LayoutTemplatePart part, dynamic shapeHelper) { var isTemplate = false; var typeDefinition = _contentDefinitionManager .GetTypeDefinition(part.ContentItem.ContentType); if (typeDefinition != null) { var LayoutTemplatePart = typeDefinition .Parts .SingleOrDefault(p => p.PartDefinition.Name == "LayoutTemplatePart"); if (LayoutTemplatePart != null) { isTemplate = LayoutTemplatePart.Settings.ContainsKey("isTemplate"); } } IEnumerable <LayoutTemplatePart> layouts = null; if (isTemplate) { layouts = _layoutService .GetLayouts(); } var stylesheets = _stylesheetService.GetAvailableStylesheets().ToList(); var classes = stylesheets .ToDictionary( s => s.VirtualPath, s => s.GetClasses()); var fonts = stylesheets .ToDictionary( s => s.VirtualPath, s => s.GetFonts()); return(ContentShape("Parts_Layout_Edit", () => shapeHelper.EditorTemplate( TemplateName: "Parts/Layout", Model: new LayoutViewModel { Layout = part, Layouts = layouts, ParentLayoutId = part.ParentLayoutId, Stylesheets = stylesheets, Stylesheet = stylesheets.FirstOrDefault(s => s.VirtualPath == part.StylesheetPath), CssClasses = classes, Fonts = fonts, LayoutElementEditors = _layoutService.GetLayoutElementEditors(), IsTemplate = isTemplate }, Prefix: Prefix))); }