using System;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSModules_DeviceProfile_Controls_LayoutBinding : CMSUserControl
{
#region "Public properties"
///
/// Gets or sets the source layout.
///
public LayoutInfo SourceLayout { get; set; }
///
/// Gets or sets the device profile.
///
public DeviceProfileInfo DeviceProfile { get; set; }
///
/// Gets the target layout for the specified device profile and source layout.
///
public LayoutInfo TargetLayout { get; private set; }
#endregion
#region "Life-cycle methods"
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
EnsureChildControls();
Initialize();
}
#endregion
#region "Private methods"
private void Initialize()
{
// Initialize source layout controls
SourceLayoutThumbnail.AlternateText = HTMLHelper.HTMLEncode(GetString("device_profile.layoutmapping.sourcelayoutthumbalt"));
SourceLayoutThumbnail.ImageUrl = GetLayoutThumbnailUrl(SourceLayout);
SourceLayoutDisplayNameLabel.Text = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(SourceLayout.LayoutDisplayName));
// Initialize target layout controls
TargetLayoutThumbnail.AlternateText = HTMLHelper.HTMLEncode(GetString("device_profile.layoutmapping.targetlayoutthumbalt"));
TargetLayout = DeviceProfileLayoutInfoProvider.GetTargetLayoutInfo(DeviceProfile, SourceLayout);
if (TargetLayout != null)
{
TargetLayoutThumbnail.ImageUrl = GetLayoutThumbnailUrl(TargetLayout);
TargetLayoutDisplayNameLabel.Text = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(TargetLayout.LayoutDisplayName));
}
else
{
TargetLayoutThumbnail.ImageUrl = GetImageUrl("CMSModules/CMS_DeviceProfile/no_target_layout.png");
TargetLayoutDisplayNameLabel.Text = HTMLHelper.HTMLEncode(GetString("device_profile.layoutmapping.sethint"));
}
// Initialize script to open target layout selection dialog
string baseUrl = URLHelper.ResolveUrl("~/CMSModules/DeviceProfile/Pages/SelectLayout.aspx");
string url = String.Format("{0}?deviceProfileId={1:D}&sourceLayoutId={2:D}&targetLayoutId={3:D}", baseUrl, DeviceProfile.ProfileID, SourceLayout.LayoutId, TargetLayout != null ? TargetLayout.LayoutId : 0);
string script = String.Format("modalDialog('{0}', 'SelectLayout', '1000', '785', null)", URLHelper.AddParameterToUrl(url, "hash", QueryHelper.GetHash(url)));
TargetLayoutItemControl.Attributes.Add("onclick", script);
}
private string GetLayoutThumbnailUrl(LayoutInfo layout)
{
string relativeUrl = null;
if (layout.LayoutThumbnailGUID != Guid.Empty)
{
relativeUrl = layout.Generalized.GetThumbnailUrl(0, 0, 64);
}
else
{
relativeUrl = GetImageUrl("Objects/CMS_Layout/notavailable.png");
}
return URLHelper.ResolveUrl(relativeUrl);
}
#endregion
}