Exemplo n.º 1
0
 public void RegisterDropTarget(IDropTarget dropTarget)
 {
     if (!DropTargets.Contains(dropTarget))
     {
         DropTargets.Add(dropTarget);
     }
 }
Exemplo n.º 2
0
 public void RemoveDropTarget(IDropTarget dropTarget)
 {
     if (!DropTargets.Contains(dropTarget))
     {
         throw new Exception("Элемент не найден");
     }
     DropTargets.Remove(dropTarget);
 }
Exemplo n.º 3
0
 public void RegisterDropTarget(IDropTarget dropTarget, params string[] allowedDropGroupNames)
 {
     if (!DropTargets.Contains(dropTarget))
     {
         DropTargets.Add(dropTarget);
     }
     foreach (var item in allowedDropGroupNames)
     {
         dropTarget.AllowedDropGroupNames.Add(item);
     }
 }
Exemplo n.º 4
0
        private IDropTarget FindParentAllowedTarget(IDropTarget dropTarget)
        {
            DependencyObject parent = dropTarget.Instanse.Parent;

            while (parent != null)
            {
                var parentDropTarget = parent as IDropTarget;
                if ((parentDropTarget != null) && DropTargets.Contains(parentDropTarget) &&
                    IsAcceptableTarget(parentDropTarget))
                {
                    return(parentDropTarget);
                }
                parent = VisualTreeHelper.GetParent(parent);
            }
            return(null);
        }
Exemplo n.º 5
0
 private void DragDropForm_DragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent("FileDrop"))
     {
         var str = e.Data.GetData("FileDrop") as string[];
         DropTargets.AddRange(str);
         foreach (var file in DropTargets)
         {
             try
             {
                 // Move files to destination
                 // Works for 7zip, Winrar which unpack the items in the temp folder
                 var destName = Path.GetFileName(file.TrimEnd(Path.PathSeparator));
                 Directory.Move(file, Path.Combine(dropPath, destName));
             }
             catch (Exception ex)
             {
                 Debug.WriteLine(ex);
             }
         }
     }
     this.Close();
 }
Exemplo n.º 6
0
        public MainViewModel()
        {
            GithubToken = Settings.Default.GithubToken;

            _allTargets = GetType().Assembly.GetExportedTypes()
                          .Where(t => !t.IsAbstract)
                          .Where(t => typeof(DropTargetBase).IsAssignableFrom(t))
                          .OrderBy(x => x.Name)
                          .Select(t => (DropTargetBase)Activator.CreateInstance(t))
                          .ToList();


            this.WhenAnyValue(x => x.HoveredUrl).Subscribe(x =>
            {
                using (_dropTargets.SuppressChangeNotifications())
                {
                    _dropTargets.Clear();
                    _dropTargets.AddRange(_allTargets.Where(t => t.CanProcess(x)));
                }
                State = DropTargets.Any() ? MainState.Expanded : MainState.Collapsed;
            });

            Quit = ReactiveCommand.CreateAsyncTask(x =>
            {
                Application.Current.Shutdown();
                return(Task.FromResult(Unit.Default));
            });

            SaveSettings = ReactiveCommand.CreateAsyncTask(x =>
            {
                Settings.Default.GithubToken = GithubToken;
                Settings.Default.Save();
                State = MainState.Collapsed;
                return(Task.FromResult(Unit.Default));
            });
        }
Exemplo n.º 7
0
 public void ClearDropTargets()
 {
     DropTargets.Clear();
 }