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 }