/// <summary>
        /// Remove a sculpture
        /// </summary>
        /// <param name="s">sculpture</param>
        public void Remove(SculptureObject s)
        {
            Accessor a = new Accessor(Project.SculpturesName, s.Unique);

            this.Hierarchy.Find(Project.SculpturesName).Remove(a);
            this.SculptureObjects.Remove(s);
        }
        /// <summary>
        /// Add an instance
        /// given a specific path to organize project's element
        /// </summary>
        /// <param name="s">instance</param>
        /// <param name="path">path</param>
        public void Add(SculptureObject s, string path)
        {
            this.SculptureObjects.Add(s);
            string u = this.Unique.ComputeNewString();

            s.Unique = u;
            Accessor a = new Accessor(Project.SculpturesName, u);

            this.Hierarchy.Find(Project.SculpturesName).Find(path.Split('/')).AddLeaf(a);
        }
        /// <summary>
        /// Import selected sculptures from an existing project
        /// </summary>
        /// <param name="src">project source</param>
        /// <param name="dest">project destination</param>
        private static void ImportSculptures(Project src, Project dest)
        {
            Tree <string, Accessor> t = new Tree <string, Accessor>(src.Hierarchy.Find(Project.SculpturesName));
            BindingList <KeyValuePair <IEnumerable <string>, Accessor> > b = new BindingList <KeyValuePair <IEnumerable <string>, Accessor> >();
            Node <string, Accessor> destNode = dest.Hierarchy.Find(Project.SculpturesName);

            t.EnumerateSelected(b);
            foreach (KeyValuePair <IEnumerable <string>, Accessor> kv in b)
            {
                SculptureObject srcSculpture = kv.Value.GetObject(src);
                dest.Add(srcSculpture, String.Join("/", kv.Key.Skip(1).ToArray()));
            }
        }
예제 #4
0
 /// <summary>
 /// Copy constructor
 /// </summary>
 /// <param name="obj">object source to copy</param>
 private SculptureObject(SculptureObject obj)
 {
     this.Title = ExtensionMethods.CloneThis(obj.Title);
     foreach (CadreModel cm in obj.Cadres)
     {
         this.Cadres.Add(cm.Clone() as CadreModel);
     }
     foreach (GeneratedSculpture gs in obj.Generated)
     {
         this.Generated.Add(gs.Clone() as GeneratedSculpture);
     }
     foreach (DistanceCadreModel d in obj.Distances)
     {
         this.Distances.Add(d.Clone() as DistanceCadreModel);
     }
 }
        private void treeView1_DoubleClick(object sender, EventArgs e)
        {
            TreeNode currentSelection = this.treeView1.GetNodeAt(this.treeView1.PointToClient(MousePosition));

            if (currentSelection != null)
            {
                this.treeView1.SelectedNode = currentSelection;
            }
            if (this.treeView1.SelectedNode != null)
            {
                if (this.treeView1.SelectedNode.Tag != null)
                {
                    // sauvegarde selected node
                    this.prv_currentNodeContext = this.treeView1.SelectedNode;
                    if (this.treeView1.SelectedNode.Tag is Library.MasterPage)
                    {
                        Library.MasterPage mp     = this.treeView1.SelectedNode.Tag as Library.MasterPage;
                        MasterPageView     window = new MasterPageView(mp.Name);
                        window.Text          = String.Format(Translate("MasterPageTitle"), mp.Name);
                        window.FormClosed   += window_FormClosed;
                        window.MdiParent     = this;
                        window.MasterPage    = mp;
                        window.WindowState   = FormWindowState.Normal;
                        window.StartPosition = FormStartPosition.Manual;
                        window.Top           = 0;
                        window.Left          = 0;
                        window.Show();
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.MasterObject)
                    {
                        Library.MasterObject mo     = this.treeView1.SelectedNode.Tag as Library.MasterObject;
                        MasterObjectView     window = new MasterObjectView(mo.Title);
                        window.Text          = String.Format(Translate("MasterObjectTitle"), mo.Title);
                        window.FormClosed   += window_FormClosed;
                        window.MdiParent     = this;
                        window.MasterObject  = mo;
                        window.WindowState   = FormWindowState.Normal;
                        window.StartPosition = FormStartPosition.Manual;
                        window.Top           = 0;
                        window.Left          = 0;
                        window.Show();
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.SculptureObject)
                    {
                        Library.SculptureObject so     = this.treeView1.SelectedNode.Tag as Library.SculptureObject;
                        SculptureView           window = new SculptureView();
                        window.Text            = String.Format(Translate("SculptureTitle"), so.Title);
                        window.FormClosed     += window_FormClosed;
                        window.MdiParent       = this;
                        window.SculptureObject = so;
                        if (window.SculptureObject.Cadres.Count == 0)
                        {
                            window.SculptureObject.Cadres.Add(new CadreModel());
                        }
                        window.CurrentCadreModel.CurrentObject = window.SculptureObject.Cadres[0];
                        window.WindowState   = FormWindowState.Normal;
                        window.StartPosition = FormStartPosition.Manual;
                        window.Top           = 0;
                        window.Left          = 0;
                        window.Show();
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.HTMLTool)
                    {
                        Library.HTMLTool t    = this.treeView1.SelectedNode.Tag as Library.HTMLTool;
                        ToolView         view = new ToolView(t.Title);
                        view.Text          = String.Format(Translate("ToolTitle"), t.Title);
                        view.FormClosed   += window_FormClosed;
                        view.MdiParent     = this;
                        view.HTMLTool      = t;
                        view.WindowState   = FormWindowState.Normal;
                        view.StartPosition = FormStartPosition.Manual;
                        view.Top           = 0;
                        view.Left          = 0;
                        view.Show();
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.HTMLObject)
                    {
                        HTMLObject obj = this.treeView1.SelectedNode.Tag as Library.HTMLObject;
                        if (!String.IsNullOrEmpty(obj.MasterObjectName))
                        {
                            ObjectView view = new ObjectView(obj.Title);
                            view.Text          = String.Format(Translate("ObjectTitle"), obj.Title);
                            view.FormClosed   += window_FormClosed;
                            view.MdiParent     = this;
                            view.HTMLObject    = obj;
                            view.WindowState   = FormWindowState.Normal;
                            view.StartPosition = FormStartPosition.Manual;
                            view.Top           = 0;
                            view.Left          = 0;
                            view.Show();
                        }
                        else
                        {
                            SimpleObjectView view = new SimpleObjectView(obj.Title);
                            view.Text          = String.Format(Translate("ObjectTitle"), obj.Title);
                            view.FormClosed   += window_FormClosed;
                            view.MdiParent     = this;
                            view.HTMLObject    = obj;
                            view.WindowState   = FormWindowState.Normal;
                            view.StartPosition = FormStartPosition.Manual;
                            view.Top           = 0;
                            view.Left          = 0;
                            view.Show();
                        }
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.Page)
                    {
                        Page     p    = this.treeView1.SelectedNode.Tag as Library.Page;
                        PageView view = new PageView(p.Name);
                        view.Text          = String.Format(Translate("PageTitle"), p.Name);
                        view.FormClosed   += window_FormClosed;
                        view.MdiParent     = this;
                        view.Page          = p;
                        view.WindowState   = FormWindowState.Normal;
                        view.StartPosition = FormStartPosition.Manual;
                        view.Top           = 0;
                        view.Left          = 0;
                        view.Show();
                    }
                    else if (this.treeView1.SelectedNode.Tag is Library.Configuration)
                    {
                        ConfigView cv = new ConfigView();
                        cv.FormClosed += window_FormClosed;
                        cv.Datas       = (this.treeView1.SelectedNode.Tag as Library.Configuration).Elements;
                        cv.ShowDialog();
                    }
                    else if (this.treeView1.SelectedNode.Tag is List <string> )
                    {
                        if (this.treeView1.SelectedNode.Name == "JavaScriptUrls")
                        {
                            JavaScriptUrls ju = new JavaScriptUrls();
                            ju.FormClosed += window_FormClosed;
                            ju.Datas       = (this.treeView1.SelectedNode.Tag as List <string>);
                            ju.ShowDialog();
                        }
                        else if (this.treeView1.SelectedNode.Name == "CSSUrls")
                        {
                            CSSUrls cu = new CSSUrls();
                            cu.FormClosed += window_FormClosed;
                            cu.Datas       = (this.treeView1.SelectedNode.Tag as List <string>);
                            cu.ShowDialog();
                        }
                    }
                }
            }
        }