diff --git a/src/Skybrud.LinkPicker/LinkPickerItem.cs b/src/Skybrud.LinkPicker/LinkPickerItem.cs
index c6dbe51..4efc166 100644
--- a/src/Skybrud.LinkPicker/LinkPickerItem.cs
+++ b/src/Skybrud.LinkPicker/LinkPickerItem.cs
@@ -1,7 +1,11 @@
using System;
+using AutoMapper.Mappers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Skybrud.LinkPicker.Extensions.Json;
+using Skybrud.LinkPicker.Json.Converters;
+using umbraco.cms.helpers;
+using Umbraco.Core.Models;
namespace Skybrud.LinkPicker {
@@ -62,6 +66,23 @@ public bool IsValid {
internal LinkPickerItem() { }
+ ///
+ /// Initializes a new link picker item.
+ ///
+ /// The ID of the content or media item.
+ /// The name (text) of the link.
+ /// The URL of the link.
+ /// The target of the link.
+ /// The mode of the link - either ,
+ /// or .
+ public LinkPickerItem(int id, string name, string url, string target, LinkPickerMode mode) {
+ Id = id;
+ Name = name;
+ Url = url;
+ Target = target;
+ Mode = mode;
+ }
+
#endregion
#region Static methods
@@ -103,6 +124,35 @@ public static LinkPickerItem Parse(JObject obj) {
}
+ public static LinkPickerItem GetFromContent(IPublishedContent content) {
+ if (content == null) throw new ArgumentNullException("content");
+ return new LinkPickerItem {
+ Id = content.Id,
+ Name = content.Name,
+ Url = content.Url,
+ Mode = LinkPickerMode.Content
+ };
+ }
+
+ public static LinkPickerItem GetFromMedia(IPublishedContent media) {
+ if (media == null) throw new ArgumentNullException("media");
+ return new LinkPickerItem {
+ Id = media.Id,
+ Name = media.Name,
+ Url = media.Url,
+ Mode = LinkPickerMode.Media
+ };
+ }
+
+ public static LinkPickerItem GetFromUrl(string url, string name = null, string target = null) {
+ if (String.IsNullOrWhiteSpace(url)) throw new ArgumentNullException("url");
+ return new LinkPickerItem {
+ Name = name + "",
+ Url = url,
+ Mode = LinkPickerMode.Url
+ };
+ }
+
#endregion
}