Beispiel #1
0
    /// <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);
        }
Beispiel #3
0
        /// <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);
        }