ATMLCommonLibrary.controls.capability.CapabilityListControl.lvCapabilities_DragDrop C# (CSharp) Метод

lvCapabilities_DragDrop() приватный Метод

private lvCapabilities_DragDrop ( object sender, DragEventArgs de ) : void
sender object
de DragEventArgs
Результат void
        private void lvCapabilities_DragDrop(object sender, DragEventArgs de)
        {
            if (de.Data.GetDataPresent(DataFormats.Text))
            {
                TSFType tsf = TSFType.Deserialize((string) de.Data.GetData(DataFormats.Text));
                var capability = new Capability();
                capability.name = tsf.name;
                object item = tsf.model.Item;
                if (item is Signal)
                {
                    var signal = (Signal) item;
                    XmlElement elm = XmlUtils.Object2XmlElement(item);
                    capability.SignalDescription = new Extension();
                    if (capability.SignalDescription.Any == null)
                        capability.SignalDescription.Any = new List<XmlElement>();
                    capability.SignalDescription.Any.Add(elm);
                    capability.Interface = new Interface();

                    if (signal.In != null)
                    {
                        String[] ins = signal.In.Split(' ');
                        foreach (String i in ins)
                        {
                            var p = new Port();
                            p.name = i;
                            p.direction = PortDirection.Input;
                            p.directionSpecified = true;
                            capability.Interface.Ports.Add(p);
                        }
                    }
                    if (signal.Out != null)
                    {
                        String[] outs = signal.Out.Split(' ');
                        foreach (String o in outs)
                        {
                            var p = new Port();
                            p.name = o;
                            p.direction = PortDirection.Output;
                            p.directionSpecified = true;
                            if (capability.Interface.Ports == null)
                                capability.Interface.Ports = new List<Port>();
                            capability.Interface.Ports.Add(p);
                        }
                    }

                    var form = new CapabilityForm(_instrumentDescription);
                    form.Capability = capability;
                    if (DialogResult.OK == form.ShowDialog())
                    {
                        String reference = EMPTYCHAR;
                        String uuid = EMPTYCHAR;
                        capability = form.Capability;
                        _capabilityItems.Add(capability);
                        var lvi = new ListViewItem(reference);
                        lvi.SubItems.Add(capability.name);
                        lvi.SubItems.Add(uuid);
                        lvi.Tag = capability;
                        Items.Add(lvi);
                    }
                }
            }
        }