Ejemplo n.º 1
0
        /// <summary>
        /// Cette méthode permet de coller un objet précédement copier ou couper.
        /// A cet effet on vérifie si le Paste vient après un Cut(si CurrentCutObject!=null) ou un Copy,
        /// puis on met dans le presse-papiers une copie de l'élément coupé ou copié.
        /// On affecte un nouveau parent à l'élément coupé/copié.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnPasteNode(object sender, RoutedEventArgs e)
        {
            Kernel.Domain.Measure parent  = GetSelectedMeasure();
            Kernel.Domain.Measure newItem = null;
            if (parent == null)
            {
                parent = this.Root;
            }

            if (CurrentCutObject != null)
            {
                if (CurrentCutObject == parent)
                {
                    CurrentCutObject = null;
                }
                else
                {
                    CurrentCutObject.parent.ForgetChild(CurrentCutObject);
                    parent.AddChild(CurrentCutObject);
                    IHierarchyObject copy = CurrentCutObject.GetCopy();
                    Kernel.Util.ClipbordUtil.SetHierarchyObject(copy);
                    CurrentCutObject = null;
                    if (Changed != null)
                    {
                        Changed();
                    }
                }
            }
            else
            {
                newItem = Kernel.Util.ClipbordUtil.GetMeasure();
                if (newItem != null)
                {
                    parent.AddChild(newItem);
                    Kernel.Util.ClipbordUtil.SetHierarchyObject(newItem.GetCopy());
                    if (Changed != null)
                    {
                        Changed();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        //Handles the TreeView's ItemDrop event
        private void OnItemDrop(object sender, EO.Wpf.ItemDropEventArgs e)
        {
            Kernel.Domain.Measure source  = (Kernel.Domain.Measure)e.SourceItem;
            Kernel.Domain.Measure target1 = (Kernel.Domain.Measure)e.TargetItem1;
            Kernel.Domain.Measure target2 = (Kernel.Domain.Measure)e.TargetItem2;
            Kernel.Domain.Measure parent  = target2 != null ? target2 : target1;

            source.parent.ForgetChild(source);
            parent.AddChild(source);
            if (target2 != null)
            {
                parent.SwichtPosition(target1, source);
            }
            e.Canceled = true;
            if (Changed != null)
            {
                Changed();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Ajoute un nouveau noeud fils au noeud passé en paramètre.
        /// </summary>
        /// <param name="model">Le noeud auquel il fau ajouter un fils</param>
        /// <returns>Le nouveau noed créé</returns>
        public virtual Kernel.Domain.Measure AddNode(Kernel.Domain.Measure parent)
        {
            Kernel.Domain.Measure child = GetNewTreeViewModel();
            if (parent != null)
            {
                parent.AddChild(child);
                parent.UpdateParents();
            }
            else
            {
                this.Root.AddChild(child);
                this.Root.SwichtPosition(defaultValue, child);
            }
            SetSelectedMeasure(child);

            if (Changed != null)
            {
                Changed();
            }
            return(child);
        }