using System;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using CMS.CMSHelper;
using CMS.ExtendedControls;
using CMS.GlobalHelper;
using CMS.UIControls;
public partial class CMSModules_Content_Controls_SplitView_SplitView : CMSUserControl
{
#region "Variables"
private string mBlankUrl = "about:blank";
#endregion
#region "Properties"
///
/// Frame1 URL.
///
public string Frame1Url
{
get;
set;
}
///
/// Frame2 URL.
///
public string Frame2Url
{
get;
set;
}
///
/// Toolbar URL.
///
public string ToolbarUrl
{
get;
set;
}
///
/// Separator URL.
///
public string SeparatorUrl
{
get;
set;
}
///
/// Toolbar height.
///
public int ToolbarHeight
{
get;
set;
}
///
/// Blank URL.
///
public string BlankUrl
{
get
{
return mBlankUrl;
}
set
{
mBlankUrl = value;
}
}
///
/// Split mode.
///
protected SplitModeEnum SplitMode
{
get
{
return CMSContext.SplitMode;
}
}
///
/// Indicates if the split mode should be displayed.
///
protected bool DisplaySplitMode
{
get
{
return CMSContext.DisplaySplitMode;
}
}
///
/// Indicates if the scrollbars should be synchronized.
///
protected bool SynchronizeScrollbar
{
get
{
return CMSContext.SplitModeSyncScrollbars;
}
}
#endregion
#region "Methods"
protected void Page_Load(object sender, EventArgs e)
{
// Init split script
if (DisplaySplitMode)
{
// Resolve URLs
string frame1Url = ResolveUrl(Frame1Url);
string frame2Url = ResolveUrl(Frame2Url);
frame2Url = URLHelper.AddParameterToUrl(frame2Url, "compare", "1");
string toolbarUrl = ResolveUrl(ToolbarUrl);
string separatorUrl = ResolveUrl(SeparatorUrl);
switch (SplitMode)
{
// Horizontal or insignificant mode
case SplitModeEnum.Horizontal:
mainFrameset.Attributes["rows"] = "*," + ToolbarHeight + ",*";
toolbarframe.Attributes["src"] = toolbarUrl;
frame1.Attributes["src"] = frame1Url;
verticalFrameset.Attributes["cols"] = "0%,0%,100%";
frame1Vertical.Attributes["src"] = BlankUrl;
frameSeparator.Attributes["src"] = BlankUrl;
frame2.Attributes["src"] = frame2Url;
break;
// Vertical mode
case SplitModeEnum.Vertical:
mainFrameset.Attributes["rows"] = "0%," + ToolbarHeight + ",*";
toolbarframe.Attributes["src"] = toolbarUrl;
frame1.Attributes["src"] = BlankUrl;
verticalFrameset.Attributes["cols"] = "*,12,*";
frame1Vertical.Attributes["src"] = frame1Url;
frameSeparator.Attributes["src"] = separatorUrl;
frame2.Attributes["src"] = frame2Url;
break;
// Default mode
default:
plcSplit.Visible = false;
mainFrameset.Attributes["rows"] = "*";
frame1.Attributes["src"] = Frame1Url;
frame2.Attributes["src"] = BlankUrl;
frame1Vertical.Attributes["src"] = BlankUrl;
frameSeparator.Attributes["src"] = BlankUrl;
toolbarframe.Attributes["src"] = BlankUrl;
break;
}
string syncScrollbars = SynchronizeScrollbar ? "1" : "0";
string displaySplitMode = DisplaySplitMode ? "1" : "0";
// Register Init script - FSP_Init(frm1Url, frm2Url, emptyUrl, sepUrl, mainFrmId, frm1Id, frm1VId, frm2Id, vFrmId, frmSId, tHeight, mode, synchronize)
StringBuilder initScript = new StringBuilder();
initScript.Append("FSP_Init('", frame1Url, "','", frame2Url, "','", BlankUrl, "','", separatorUrl, "','", mainFrameset.ClientID, "','", frame1.ClientID, "','",
frame1Vertical.ClientID, "','", frame2.ClientID, "','", verticalFrameset.ClientID, "','", frameSeparator.ClientID, "','", ToolbarHeight, "','",
Convert.ToInt32(SplitMode), "',", syncScrollbars, ",", displaySplitMode, ");");
// Register js scripts
ScriptHelper.RegisterApplicationConstants(Page);
ScriptHelper.RegisterJQueryCookie(Page);
ScriptHelper.RegisterScriptFile(Page, "~/CMSModules/Content/Controls/SplitView/SplitView.js");
ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), "FSP_initFrames", ScriptHelper.GetScript(initScript.ToString()));
if (CultureHelper.IsUICultureRTL())
{
ControlsHelper.ReverseFrames(verticalFrameset);
}
}
}
#endregion
}