/// <summary> /// Generates the addable snap2. /// </summary> /// <param name="dockingId">The docking id.</param> /// <param name="controlInfo">The control info.</param> /// <returns></returns> private Snap GenerateAddableSnap2(string dockingId, Mediachase.Cms.Controls.DynamicControlInfo controlInfo) { if (CMSContext.Current.ControlPlaces == string.Empty) { return(null); } Snap snap = new Snap(); snap.DockingContainers = CMSContext.Current.ControlPlaces; snap.DockingStyle = SnapDockingStyleType.TransparentRectangle; snap.MustBeDocked = true; snap.CollapseDuration = 300; snap.ExpandDuration = 300; snap.AutoPostBackOnDock = true; snap.CurrentDockingContainer = dockingId; snap.Dock += new Snap.DockEventHandler(Snap_Dock); //Control control = Mediachase.Cms.Controls.DynamicControlFactory.Create(this.Page, controlInfo.UID); Panel panel = new Panel(); Label label = new Label(); Image image = new Image(); if (!string.IsNullOrEmpty(controlInfo.IconPath)) { image.ImageUrl = Mediachase.Commerce.Shared.CommerceHelper.GetAbsolutePath(controlInfo.IconPath); image.Height = 16; image.Width = 16; panel.Controls.Add(image); } label.Text = controlInfo.Title; panel.ID = "cntrl" + (Guid.NewGuid().ToString()).Replace("-", string.Empty); panel.Controls.Add(label); SnapContent content = new SnapContent(); content.Controls.Add(panel); snap.Content = content; //snap.Content = panel; //DV: 2007-09-12 snap.Attributes.Add("ControlUID", controlInfo.Uid); _oldSnapArray.Add(new OldSnapInfo(snap, snap.CurrentDockingContainer, snap.CurrentDockingIndex)); DockingTemp.Controls.Add(snap); string javaString = ""; //javaString += "RecordAddedControl('add','" + isModified.ClientID + "','" + snap.ClientID; //javaString += "','" + panel.ClientID + "','" + controlInfo.Uid + "','" + controlInfo.AdapterPath + "');"; javaString += " var __sh=$find('SnapHolder1_Snap'); if(__sh!=null) {__sh.RecordAddedControl('add','" + isModified.ClientID + "','" + snap.ClientID + "','" + panel.ClientID + "','" + controlInfo.Uid + "','" + controlInfo.AdapterPath + "');}"; // snap.Attributes.Add("onmouseup", "alert('begin');" + javaString + ";RecordNewDN();alert('end')"); panel.Attributes.Add("onmousedown", snap.ClientID + ".StartDragging(event);" + javaString + " if(__sh!=null) __sh.RecordNewDN();"); return(snap); }
private void SnapListAddButton_OnClick(object sender, RoutedEventArgs e) { Snap newSnap = new Snap(store.Snaps.Count, "Title", "Content"); store.AddSnap(newSnap); SnapList.SelectedIndex = SnapList.Items.Count - 1; SnapList.ScrollIntoView(SnapList.SelectedItem); SnapText.Text = SnapList.Items.Count + " Snaps"; SnapContent.Focus(FocusState.Programmatic); }
/// <summary> /// Creates the design wrapper. /// </summary> /// <param name="ctrl">The CTRL.</param> /// <param name="dn">The dn.</param> /// <returns></returns> protected virtual Control CreateDesignWrapper(Control ctrl, DynamicNode dn) { ComponentArt.Web.UI.Snap snap = new ComponentArt.Web.UI.Snap(); snap.DockingContainers = CMSContext.Current.ControlPlaces; snap.DockingStyle = SnapDockingStyleType.TransparentRectangle; snap.MustBeDocked = true; snap.CollapseDuration = 300; snap.ExpandDuration = 300; Panel wControl = new Panel(); snap.ID = dn.NodeUID; Image moveImg = new Image(); Image moveDelete = new Image(); Image propertyImg = new Image(); wControl.Attributes.Add("ActionSet", "NoneMenu"); wControl.Style.Add("position", "relative"); wControl.Style.Add("z-index", "1"); wControl.ID = dn.NodeUID + "_wControl"; moveImg.Attributes.Add("ActionBtn", "Move"); moveDelete.Attributes.Add("ActionBtn", "Delete"); moveImg.CssClass = "imgMove"; moveDelete.CssClass = "imgDelete"; propertyImg.CssClass = "imgProperty"; snap.CurrentDockingContainer = dn.ControlPlaceId; snap.CurrentDockingIndex = dn.ControlPlaceIndex; //add move button moveImg.ID = dn.NodeUID + "_move"; moveImg.Attributes.Add("onmousedown", this.ClientID + "_" + snap.ClientID + ".StartDragging(event);"); moveImg.ImageUrl = Mediachase.Commerce.Shared.CommerceHelper.GetAbsolutePath("/Images/move.gif"); //add delete button //moveDelete.Attributes.Add("onclick", snap.ClientID + ".Collapse();MakeModified('del','" + PlaceHolderManager.GetCurrent(this.Page).hfDeletetedId + "','" + snap.ID + "');"); moveDelete.ID = dn.NodeUID + "_deleted"; //moveDelete.Attributes.Add("onclick", this.ClientID + "_" + snap.ClientID + ".Collapse(); FillDeleteSnapInfo('" + PlaceHolderManager.GetCurrent(this.Page).hfDeletetedId + "','" + dn.NodeUID + "'); "); moveDelete.Attributes.Add("onclick", this.ClientID + "_" + snap.ClientID + ".Collapse(); var _sh=$find('SnapHolder1_Snap'); if(_sh!=null) _sh.FillDeleteSnapInfo('" + PlaceHolderManager.GetCurrent(this.Page).hfDeletetedId + "','" + dn.NodeUID + "'); "); moveDelete.ImageUrl = Mediachase.Commerce.Shared.CommerceHelper.GetAbsolutePath("/Images/delete.gif"); wControl.Controls.Add(moveImg); wControl.Controls.Add(moveDelete); string command = CreatePropertiesCommand(dn.NodeUID, dn.FactoryControlUID); if (!String.IsNullOrEmpty(command) && ctrl.GetType().FullName != "ASP.structure_base_controls_inlinebase_inlineeditor_ascx" && ctrl.GetType().FullName != "ASP.structure_base_controls_popupbase_popupeditor_ascx") { wControl.Attributes.Add("ondblclick", command); } SnapContent content = new SnapContent(); content.Controls.Add(wControl); snap.Content = content; //add property page call //wControl.Attributes.Add("onclick", String.Format("EditControlHandler('{0}', '{1}');", PlaceHolderManager.GetCurrent(this.Page).hfEdited.ClientID, dn.NodeUID)); wControl.Attributes.Add("onclick", String.Format(" var _sh=$find('SnapHolder1_Snap'); if(_sh!=null) _sh.EditControlHandler('{0}', '{1}');", PlaceHolderManager.GetCurrent(this.Page).hfEdited.ClientID, dn.NodeUID)); wControl.Controls.Add(ctrl); // <---- crash dn.AssignedControl = snap; return(snap); }