Retiring IContentItemDriver

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-09-02 15:10:27 -07:00
parent acaf55c69f
commit 203b3e09c6
9 changed files with 0 additions and 241 deletions

View File

@@ -1,22 +0,0 @@
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.ContentManagement.Drivers;
using Orchard.Core.Contents.ViewModels;
using Orchard.Core.ContentsLocation.Models;
namespace Orchard.Core.Contents.Drivers {
public class ContentsDriver : ContentItemDriver<ContentPart> {
protected override string GetDisplayText(ContentPart item) {
return item.Is<IRoutableAspect>()
? item.As<IRoutableAspect>().Title
: base.GetDisplayText(item);
}
protected override DriverResult Display(ContentPart part, string displayType) {
var location = part.GetLocation(displayType, "secondary", null);
return Combined(
ContentItemTemplate("Items/Contents.Item").LongestMatch(displayType, "Summary", "SummaryAdmin"),
ContentPartTemplate(new PublishContentViewModel(part.ContentItem), "Parts/Contents.Publish").LongestMatch(displayType, "Summary", "SummaryAdmin").Location(location));
}
}
}

View File

@@ -82,7 +82,6 @@
<Compile Include="Common\ViewModels\TextContentFieldDisplayViewModel.cs" />
<Compile Include="Common\ViewModels\TextContentFieldEditorViewModel.cs" />
<Compile Include="Contents\Controllers\ItemController.cs" />
<Compile Include="Contents\Drivers\ContentsDriver.cs" />
<Compile Include="Contents\Extensions\MetaDataExtensions.cs" />
<Compile Include="Contents\Handlers\ContentsHandler.cs" />
<Compile Include="Contents\Permissions.cs" />
@@ -196,7 +195,6 @@
<Compile Include="Scheduling\Models\Task.cs" />
<Compile Include="Settings\DataMigrations\SettingsDataMigration.cs" />
<Compile Include="Settings\ViewModels\SiteCulturesViewModel.cs" />
<Compile Include="Settings\Drivers\SiteSettingsPartDriver.cs" />
<Compile Include="Settings\Metadata\ContentDefinitionManager.cs" />
<Compile Include="Settings\Metadata\Records\ContentFieldDefinitionRecord.cs" />
<Compile Include="Settings\Metadata\Records\ContentPartDefinitionRecord.cs" />

View File

@@ -1,20 +0,0 @@
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.Core.Settings.Models;
namespace Orchard.Core.Settings.Drivers {
[UsedImplicitly]
public class SiteSettingsPartDriver : ContentItemDriver<SiteSettingsPart> {
protected override ContentType GetContentType() {
return SiteSettingsPart.ContentType;
}
protected override DriverResult Editor(SiteSettingsPart part) {
return ContentItemTemplate("Items/Settings.Site");
}
protected override DriverResult Editor(SiteSettingsPart part, IUpdateModel updater) {
return ContentItemTemplate("Items/Settings.Site");
}
}
}

View File

@@ -1,35 +0,0 @@
using System.Web.Routing;
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.Users.Models;
namespace Orchard.Users.Drivers {
[UsedImplicitly]
public class UserPartDriver : ContentItemDriver<UserPart> {
public readonly static ContentType ContentType = new ContentType {
Name = "User",
DisplayName = "User Profile"
};
protected override bool UseDefaultTemplate { get { return true; } }
protected override ContentType GetContentType() {
return ContentType;
}
protected override string GetDisplayText(UserPart item) {
//TEMP: need a "display name" probably... showing login info likely not a best practice...
return item.UserName;
}
public override RouteValueDictionary GetEditorRouteValues(UserPart item) {
return new RouteValueDictionary {
{"Area", "Orchard.Users"},
{"Controller", "Admin"},
{"Action", "Edit"},
{"Id", item.ContentItem.Id},
};
}
}
}

View File

@@ -68,7 +68,6 @@
<Compile Include="Controllers\AccountController.cs" />
<Compile Include="Controllers\AdminController.cs" />
<Compile Include="DataMigrations\UsersDataMigration.cs" />
<Compile Include="Drivers\UserPartDriver.cs" />
<Compile Include="Models\UserPart.cs" />
<Compile Include="Handlers\UserPartHandler.cs" />
<Compile Include="Models\UserPartRecord.cs" />

View File

@@ -1,87 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Web.Routing;
using Orchard.ContentManagement.Handlers;
using Orchard.Mvc.ViewModels;
namespace Orchard.ContentManagement.Drivers {
public abstract class ContentItemDriver<TContent> : ContentPartDriver<TContent>, IContentItemDriver where TContent : ContentPart, new() {
private readonly ContentType _contentType;
protected virtual bool UseDefaultTemplate { get { return false; } }
public ContentItemDriver() {
}
public ContentItemDriver(ContentType contentType) {
_contentType = contentType;
}
IEnumerable<ContentType> IContentItemDriver.GetContentTypes() {
var contentType = GetContentType();
return contentType != null ? new[] { contentType } : Enumerable.Empty<ContentType>();
}
void IContentItemDriver.GetContentItemMetadata(GetContentItemMetadataContext context) {
var item = context.ContentItem.As<TContent>();
if (item != null) {
context.Metadata.DisplayText = GetDisplayText(item) ?? context.Metadata.DisplayText;
context.Metadata.DisplayRouteValues = GetDisplayRouteValues(item) ?? context.Metadata.DisplayRouteValues;
context.Metadata.EditorRouteValues = GetEditorRouteValues(item) ?? context.Metadata.EditorRouteValues;
context.Metadata.CreateRouteValues = GetCreateRouteValues(item) ?? context.Metadata.CreateRouteValues;
}
}
DriverResult IContentItemDriver.BuildDisplayModel(BuildDisplayModelContext context) {
var part = context.ContentItem.As<TContent>();
if (part == null) {
return null;
}
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
return Display(new ContentItemViewModel<TContent>(context.ViewModel), context.DisplayType);
}
return Display((ContentItemViewModel<TContent>)context.ViewModel, context.DisplayType);
}
DriverResult IContentItemDriver.BuildEditorModel(BuildEditorModelContext context) {
var part = context.ContentItem.As<TContent>();
if (part == null) {
return null;
}
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
return Editor(new ContentItemViewModel<TContent>(context.ViewModel));
}
return Editor((ContentItemViewModel<TContent>)context.ViewModel);
}
DriverResult IContentItemDriver.UpdateEditorModel(UpdateEditorModelContext context) {
var part = context.ContentItem.As<TContent>();
if (part == null) {
return null;
}
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
return Editor(new ContentItemViewModel<TContent>(context.ViewModel), context.Updater);
}
return Editor((ContentItemViewModel<TContent>)context.ViewModel, context.Updater);
}
protected virtual ContentType GetContentType() { return _contentType; }
protected virtual string GetDisplayText(TContent item) { return null; }
public virtual RouteValueDictionary GetDisplayRouteValues(TContent item) { return null; }
public virtual RouteValueDictionary GetEditorRouteValues(TContent item) { return null; }
public virtual RouteValueDictionary GetCreateRouteValues(TContent item) { return null; }
protected virtual DriverResult Display(ContentItemViewModel<TContent> viewModel, string displayType) { return GetDefaultItemTemplate(); }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel) { return GetDefaultItemTemplate(); }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel, IUpdateModel updater) { return GetDefaultItemTemplate(); }
public ContentItemTemplateResult<TContent> ContentItemTemplate(string templateName) {
return new ContentItemTemplateResult<TContent>(templateName);
}
private DriverResult GetDefaultItemTemplate() {
return UseDefaultTemplate
? ContentItemTemplate("Items/ContentItem")
: null;
}
}
}

View File

@@ -1,52 +0,0 @@
using System.Collections.Generic;
using JetBrains.Annotations;
using Orchard.ContentManagement.Handlers;
using Orchard.Logging;
namespace Orchard.ContentManagement.Drivers.Coordinators {
[UsedImplicitly]
public class ContentItemDriverCoordinator : ContentHandlerBase {
private readonly IEnumerable<IContentItemDriver> _drivers;
public ContentItemDriverCoordinator(IEnumerable<IContentItemDriver> drivers) {
_drivers = drivers;
Logger = NullLogger.Instance;
}
public ILogger Logger { get; set; }
public override IEnumerable<ContentType> GetContentTypes() {
var contentTypes = new List<ContentType>();
_drivers.Invoke(driver=>contentTypes.AddRange(driver.GetContentTypes()), Logger);
return contentTypes;
}
public override void GetContentItemMetadata(GetContentItemMetadataContext context) {
_drivers.Invoke(driver => driver.GetContentItemMetadata(context), Logger);
}
public override void BuildDisplayModel(BuildDisplayModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildDisplayModel(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void BuildEditorModel(BuildEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildEditorModel(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void UpdateEditorModel(UpdateEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.UpdateEditorModel(context);
if (result != null)
result.Apply(context);
}, Logger);
}
}
}

View File

@@ -1,13 +0,0 @@
using System.Collections.Generic;
using Orchard.ContentManagement.Handlers;
namespace Orchard.ContentManagement.Drivers {
public interface IContentItemDriver : IEvents {
IEnumerable<ContentType> GetContentTypes();
void GetContentItemMetadata(GetContentItemMetadataContext context);
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
DriverResult BuildEditorModel(BuildEditorModelContext context);
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
}
}

View File

@@ -187,12 +187,6 @@
</Compile>
<Compile Include="ContentManagement\Drivers\ContentFieldDriver.cs" />
<Compile Include="ContentManagement\Drivers\Coordinators\ContentFieldDriverCoordinator.cs" />
<Compile Include="ContentManagement\Drivers\ContentItemDriver.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ContentManagement\Drivers\Coordinators\ContentItemDriverCoordinator.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ContentManagement\Drivers\ContentItemTemplateResult.cs">
<SubType>Code</SubType>
</Compile>
@@ -209,9 +203,6 @@
<Compile Include="ContentManagement\Drivers\ContentLocation.cs" />
<Compile Include="ContentManagement\FieldStorage\FieldStorageProviderSelector.cs" />
<Compile Include="ContentManagement\Drivers\IContentFieldDriver.cs" />
<Compile Include="ContentManagement\Drivers\IContentItemDriver.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ContentManagement\Drivers\IContentPartDriver.cs" />
<Compile Include="ContentManagement\FieldStorage\IFieldStorage.cs" />
<Compile Include="ContentManagement\FieldStorage\IFieldStorageProvider.cs" />