     }
     
 }
+
+extension DropView {
+    override func rightMouseDown(theEvent: NSEvent) {
+        mouse?.dropViewDidRightClick(self, event: theEvent)
+    }
+}

    func dropViewDidDropFileToView(dropView: DropView, paths: [Path])
    func dropViewDidDragValidFileIntoView(dropView: DropView) // Should be called when folder enters drag areas.
    func dropViewDidDragInvalidFileIntoView(dropView: DropView)
    func dropViewDidDragFileOutOfView(dropView: DropView) // should be called file already in drag area, but we drag it out to delete it. May not be nessecary.
}


class DropView: NSView {

    var delegate: DropViewDelegate?
    
    // MARK:- Initializers
    
    override init(frame frameRect: NSRect) {

    override func draggingEntered(sender: NSDraggingInfo) -> NSDragOperation {
        let paths = sender.draggingPasteboard().propertyListForType(NSFilenamesPboardType) as! [String]
        let acceptDrag = delegate?.dropViewShouldAcceptDraggedPath(self, paths: paths) ?? false
        if acceptDrag {
            sender.numberOfValidItemsForDrop = delegate?.dropViewNumberOfAcceptableItems(self, items: paths)
                                               ?? sender.numberOfValidItemsForDrop
            delegate?.dropViewDidDragValidFileIntoView(self)
            return NSDragOperation.Copy
        } else {
