public TriStateTreeNode AddChild(AddModes mode, params object[] args)
        {
            TriStateTreeNode node = null;

            switch (mode)
            {
            case AddModes.Key_Text_RelName_RelObj:
                node      = new TriStateTreeNode(args[1].ToString(), args[2] as String, args[3]);
                node.Name = args[0].ToString();
                AddNode(node);
                break;

            case AddModes.Key_Text_ImageIndex_SelImgIndex_RelName_RelObj:
                node = new TriStateTreeNode(args[1].ToString(), args[4] as String, args[5]);

                //node = new TriStateTreeNode(text, relObjName, relObj);
                node.Name               = args[0].ToString(); //key;
                node.ImageIndex         = (int)args[2];       // imageIndex;
                node.SelectedImageIndex = (int)args[3];       // selectedImageIndex;
                AddNode(node);
                //return node;
                break;

            case AddModes.Key_Text_ImageIndex_RelName_RelObj:
                node = new TriStateTreeNode(args[1].ToString(), args[3] as String, args[4]);
                //node = new TriStateTreeNode(text, relObjName, relObj);
                node.Name               = args[0].ToString(); // key;
                node.ImageIndex         = (int)args[2];       //  imageIndex;
                node.SelectedImageIndex = (int)args[2];       // imageIndex;
                AddNode(node);
                break;

            case AddModes.Key_Text_ImageKey_RelName_RelObj:
                node = new TriStateTreeNode(args[1].ToString(), args[3] as String, args[4]);
                //node = new TriStateTreeNode(text, relObjName, relObj);
                node.Name             = args[0].ToString(); // key;
                node.ImageKey         = args[2].ToString(); // imageKey;
                node.SelectedImageKey = args[2].ToString(); // imageKey;
                AddNode(node);
                break;

            case AddModes.Key_Text_ImageKey_SelImgKey_RelName_RelObj:
                node                  = new TriStateTreeNode(args[1].ToString(), args[4] as String, args[5]);
                node.Name             = args[0].ToString(); //key
                node.ImageKey         = args[2].ToString(); // imageKey;
                node.SelectedImageKey = args[3].ToString(); // selimageKey;
                AddNode(node);
                break;

            case AddModes.Text_RelName_RelObj:
                node            = new TriStateTreeNode(args[0].ToString(), args[1] as String, args[2]);//text, relObjName, relObj);
                node.CheckState = CheckState.Unchecked;
                AddNode(node);
                break;
            }
            return(node);
        }
Esempio n. 2
0
        /// <summary>
        /// Constructor setting the <see cref="ContextElement"/>, <see cref="ElementsToAdd"/>
        /// and <see cref="AddMode"/> of the action.
        /// Optionally also sets the <see cref="Description"/> of the action
        /// </summary>
        /// <param name="contextElement">The context <see cref="XElement"/></param>
        /// <param name="elementsToAdd">The <see cref="XElement"/>s to add</param>
        /// <param name="addMode">The <see cref="AddMode"/></param>
        /// <param name="description">The optional description</param>
        public AddElementsAction(XElement contextElement, IEnumerable <XElement> elementsToAdd, AddModes addMode, string description = "Add entries")
        {
            ContextElement     = contextElement;
            this.elementsToAdd = new List <XElement>(elementsToAdd);
            Description        = description;
            AddMode            = addMode;
            switch (addMode)
            {
            case AddModes.AddAsChildren:
                CanExecute = contextElement != null;
                break;

            case AddModes.InsertBefore:
                CanExecute = contextElement?.Parent != null;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(addMode), addMode, null);
            }
        }