Esempio n. 1
0
 private void ApplyMetaData(PropertyFlowList propList)
 {
     foreach (ListMetaData md in mMetadata)
     {
         propList.AddMetaDataForProp(md.a1, md.a2, md.a3, md.o1);
     }
     foreach (TypeBind tb in mTypeBind)
     {
         propList.SetTypeEditor(tb.a1, tb.a2, tb.t1);
     }
 }
Esempio n. 2
0
        override public DragDropEffects ValidateDragTarget(Control toMove, Control target, DragEventArgs e)
        {
            PropertyFlowList ctrlMove   = toMove.Tag as PropertyFlowList;
            PropertyFlowList ctrlTarget = target.Tag as PropertyFlowList;

            ContainerList        targetList      = target as ContainerList;
            DynamicContainerList basidtargetList = target as DynamicContainerList;

            //to empty list //Also a basic typed super list.   Types must match
            if (basidtargetList != null && ctrlMove != null)
            {
                if (basidtargetList.mListDataObjectType == ctrlMove.SelectedObject.GetType())
                {
                    //if())
                    return(DragDropEffects.Move);
                }
            }

            //What to do if it is just another super list?
            //if (targetList != null && toMove != null)
            //{
            //   SuperListDragButton button = toMove as SuperListDragButton;
            //   if (targetList.GetType() == button.GetParentList().GetType())
            //   {
            //      return DragDropEffects.Move;
            //   }
            //}


            if (ctrlMove == null || ctrlTarget == null)
            {
                return(DragDropEffects.None);
            }

            if ((e.KeyState & 8) == 8 && (e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy)
            {
                //return DragDropEffects.Copy;
            }
            else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move)
            {
                if (ctrlMove == ctrlTarget)
                {
                    //we return move here because it makes the animation look better
                    return(DragDropEffects.Move);
                }
                if (ctrlMove.SelectedObject.GetType() == ctrlTarget.SelectedObject.GetType())
                {
                    return(DragDropEffects.Move);
                }
            }

            return(DragDropEffects.None);
        }
Esempio n. 3
0
        public override void OnDelete(ContainerListDragButton button)
        {
            PropertyFlowList flow     = button.Tag as PropertyFlowList;
            object           toDelete = flow.SelectedObject;

            mObjectList.Remove(toDelete);
            base.OnDelete(button);

            //ObjectDeleted
            if (ObjectDeleted != null)
            {
                ObjectDeleted.Invoke(flow, toDelete);
            }
        }
Esempio n. 4
0
        private ObjectEditorControl AddPropertyControl(object o)
        {
            PropertyFlowList flow = new PropertyFlowList();

            flow.WrapContents = mbWrapcontents;
            flow.mbUseLabels  = mbUseLabels;
            ApplyMetaData(flow);
            //flow.Tag = this;
            flow.SelectedObject = o;
            flow.SelectedObjectPropertyChanged += new ObjectEditorControl.PropertyChanged(flow_SelectedObjectPropertyChanged);
            flow.AnyPropertyChanged            += new ObjectEditorControl.PropertyChanged(flow_AnyObjectPropertyChanged);
            this.AddRow(flow);

            flow.Dock = DockStyle.Fill;

            mListDataObjectType = o.GetType();

            return(flow);
        }
Esempio n. 5
0
        override public void HandleDrop(DragEventArgs e, ContainerListDragButton otherButton, ContainerListDragButton thisButton)
        {
            PropertyFlowList ctrlMove   = otherButton.Tag as PropertyFlowList;
            PropertyFlowList ctrlTarget = thisButton.Tag as PropertyFlowList;

            if (e.Effect == DragDropEffects.Move)
            {
                //if (ctrlMove.SelectedObject == ctrlTarget.SelectedObject)
                if (ctrlMove.Parent == ctrlTarget.Parent)
                {
                    this.OnReOrderRequest(otherButton, thisButton);
                }
                else if (ctrlMove.SelectedObject.GetType() == ctrlTarget.SelectedObject.GetType())
                {
                    ContainerList senderParent = otherButton.GetParentList();
                    senderParent.OnTransferRequest(this, otherButton);
                    //return DragDropEffects.Move;
                }
            }
        }