Zetbox.Client.Presentables.ObjectEditor.WorkspaceViewModel.OnDrop C# (CSharp) Method

OnDrop() public method

public OnDrop ( object data ) : bool
data object
return bool
        public virtual bool OnDrop(object data)
        {
            if (data is IDataObject[])
            {
                var lst = (IDataObject[])data;
                foreach (var obj in lst)
                {
                    ShowObject(obj);
                }

                return true;
            }
            if (data is string[])
            {
                var files = (string[])data;
                var objects = new List<IDataObject>();
                foreach (var file in files)
                {
                    try
                    {
                        var xml = new System.Xml.XmlDocument();
                        xml.Load(file);
                        if (xml.DocumentElement.LocalName == "ZetboxPackaging")
                        {
                            objects.AddRange(Zetbox.App.Packaging.Importer.LoadFromXml(DataContext, file).OfType<IDataObject>());
                        }
                    }
                    catch (Exception ex)
                    {
                        // not an xml...
                        Zetbox.API.Utils.Logging.Client.Error("Unable to import file.", ex);
                    }
                }

                if (objects.Count > 0)
                {
                    foreach (var obj in objects)
                    {
                        ShowObject(obj, activate: false);
                    }

                    ViewModelFactory.CreateDelayedTask(this, () =>
                    {
                        this.SelectedItem = DataObjectViewModel.Fetch(ViewModelFactory, DataContext, this, objects.First());
                    }).Trigger();
                }
                return true;
            }
            return false;
        }