This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 77154

Summary: Review for File Drag and Drop Implementation
Product: platform Reporter: Stanislav Aubrecht <saubrecht>
Component: Window SystemAssignee: Stanislav Aubrecht <saubrecht>
Status: RESOLVED FIXED    
Severity: blocker Keywords: API_REVIEW_FAST
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: TASK Exception Reporter:
Bug Depends on:    
Bug Blocks: 35228, 50129    
Attachments: source code diffs

Description Stanislav Aubrecht 2006-05-31 14:36:50 UTC
This is an issue for the review of new drag and drop implementation which allows
files to be dragged from outside to the IDE and also allows files to be dragged
from the IDE to other applications.
Comment 1 Stanislav Aubrecht 2006-05-31 14:42:21 UTC
Created attachment 30706 [details]
source code diffs
Comment 2 Stanislav Aubrecht 2006-05-31 14:57:40 UTC
The overhaul of file related drag and drop implementation adds to following
features:

* drag a file from an external application and drop it to Projects view or Files
view to copy the file to a selected project folder (the same applies to
copy/paste operations)
* drag a file from an external application and drop it to editor area to open
the file in a new editor tab
* drag a file from Projects view or Files view and drop it to an external
application (e.g. file manager) to move or to copy the file to a new folder
(same applies to copy/cut/paste operations)

Full UI specification is available here:
http://core.netbeans.org/proposals/dnd-ui-spec.html

The following modules are affected:
* openide/explorer, openide/loaders - for dropping of files into Projects/Files
view. There's no new Java interface introduced, only the DataFolder.FolderNode
now supports standard DataFlavors for file drag and drop (javaFileList and URI
file list) and drag and drop support in explorer module now passes appropriate
drag events to Nodes under the cursor

* openide/loaders - for the dragging of files from the IDE. The DataObject now
adds standard file drag and drop DataFlavors when it constructs its Transferable
for dragging.

* openide/windows, utilities, openide/text, core/windows - for the opening of
dragged files in a new editor tab. Module openide/windows adds a new Java
interface org.openide.windows.ExternalDropHandler. The implementation of this
interface is available in the global Lookup (default implementation is in
utilities module) and is used by the window system to handle dragged files.
Comment 3 Jaroslav Tulach 2006-06-07 09:48:19 UTC
Missing @since tag in ExternalDropHandler
core/windows shall depend on openide/windows > 6.7, other modules as well.
Comment 4 Stanislav Aubrecht 2006-06-07 16:33:10 UTC
if there are no more comments i'll add the @since tag and i'll integrate it to
trunk tomorrow.
Comment 5 Stanislav Aubrecht 2006-06-08 11:17:25 UTC
the changes were merged to trunk

Checking in utilities/test/cfg-unit.xml;
/cvs/utilities/test/cfg-unit.xml,v  <--  cfg-unit.xml
new revision: 1.2; previous revision: 1.1
done
Checking in utilities/test/build-unit.xml;
/cvs/utilities/test/build-unit.xml,v  <--  build-unit.xml
new revision: 1.2; previous revision: 1.1
done
Checking in utilities/test/build.xml;
/cvs/utilities/test/build.xml,v  <--  build.xml
new revision: 1.2; previous revision: 1.1
done
Checking in openide/explorer/src/org/openide/explorer/view/ListView.java;
/cvs/openide/explorer/src/org/openide/explorer/view/ListView.java,v  <-- 
ListView.java
new revision: 1.9; previous revision: 1.8
done
Checking in openide/explorer/src/org/openide/explorer/view/TreeViewDropSupport.java;
/cvs/openide/explorer/src/org/openide/explorer/view/TreeViewDropSupport.java,v 
<--  TreeViewDropSupport.java
new revision: 1.5; previous revision: 1.4
done
Checking in openide/explorer/src/org/openide/explorer/view/ListViewDropSupport.java;
/cvs/openide/explorer/src/org/openide/explorer/view/ListViewDropSupport.java,v 
<--  ListViewDropSupport.java
new revision: 1.5; previous revision: 1.4
done
Checking in openide/explorer/src/org/openide/explorer/view/TreeView.java;
/cvs/openide/explorer/src/org/openide/explorer/view/TreeView.java,v  <-- 
TreeView.java
new revision: 1.11; previous revision: 1.10
done
Checking in openide/explorer/src/org/openide/explorer/view/ExplorerDnDManager.java;
/cvs/openide/explorer/src/org/openide/explorer/view/ExplorerDnDManager.java,v 
<--  ExplorerDnDManager.java
new revision: 1.2; previous revision: 1.1
done
Checking in utilities/src/META-INF/services/org.openide.windows.ExternalDropHandler;
/cvs/utilities/src/META-INF/services/org.openide.windows.ExternalDropHandler,v 
<--  org.openide.windows.ExternalDropHandler
new revision: 1.2; previous revision: 1.1
done
Checking in openide/loaders/api/apichanges.xml;
/cvs/openide/loaders/api/apichanges.xml,v  <--  apichanges.xml
new revision: 1.20; previous revision: 1.19
done
Checking in openide/text/apichanges.xml;
/cvs/openide/text/apichanges.xml,v  <--  apichanges.xml
new revision: 1.12; previous revision: 1.11
done
Checking in openide/text/manifest.mf;
/cvs/openide/text/manifest.mf,v  <--  manifest.mf
new revision: 1.13; previous revision: 1.12
done
Checking in openide/loaders/nbproject/project.xml;
/cvs/openide/loaders/nbproject/project.xml,v  <--  project.xml
new revision: 1.14; previous revision: 1.13
done
Checking in openide/loaders/nbproject/project.properties;
/cvs/openide/loaders/nbproject/project.properties,v  <--  project.properties
new revision: 1.11; previous revision: 1.10
done
Checking in core/windows/src/org/netbeans/core/windows/view/EditorView.java;
/cvs/core/windows/src/org/netbeans/core/windows/view/EditorView.java,v  <-- 
EditorView.java
new revision: 1.20; previous revision: 1.19
done
Checking in
utilities/src/org/netbeans/modules/openfile/DefaultExternalDropHandler.java;
/cvs/utilities/src/org/netbeans/modules/openfile/DefaultExternalDropHandler.java,v
 <--  DefaultExternalDropHandler.java
new revision: 1.2; previous revision: 1.1
done
Checking in utilities/src/org/netbeans/modules/openfile/OpenFile.java;
/cvs/utilities/src/org/netbeans/modules/openfile/OpenFile.java,v  <--  OpenFile.java
new revision: 1.62; previous revision: 1.61
done
Checking in openide/windows/src/org/openide/windows/ExternalDropHandler.java;
/cvs/openide/windows/src/org/openide/windows/ExternalDropHandler.java,v  <-- 
ExternalDropHandler.java
new revision: 1.2; previous revision: 1.1
done
Checking in openide/text/src/org/openide/text/QuietEditorPane.java;
/cvs/openide/text/src/org/openide/text/QuietEditorPane.java,v  <-- 
QuietEditorPane.java
new revision: 1.6; previous revision: 1.5
done
Checking in core/windows/nbproject/project.xml;
/cvs/core/windows/nbproject/project.xml,v  <--  project.xml
new revision: 1.13; previous revision: 1.12
done
Checking in openide/loaders/src/org/openide/loaders/DataNode.java;
/cvs/openide/loaders/src/org/openide/loaders/DataNode.java,v  <--  DataNode.java
new revision: 1.25; previous revision: 1.24
done
Checking in openide/loaders/src/org/openide/loaders/DataFolder.java;
/cvs/openide/loaders/src/org/openide/loaders/DataFolder.java,v  <--  DataFolder.java
new revision: 1.47; previous revision: 1.46
done
Checking in openide/loaders/manifest.mf;
/cvs/openide/loaders/manifest.mf,v  <--  manifest.mf
new revision: 1.28; previous revision: 1.27
done
Checking in openide/explorer/manifest.mf;
/cvs/openide/explorer/manifest.mf,v  <--  manifest.mf
new revision: 1.9; previous revision: 1.8
done
Checking in openide/explorer/apichanges.xml;
/cvs/openide/explorer/apichanges.xml,v  <--  apichanges.xml
new revision: 1.7; previous revision: 1.6
done
Checking in openide/windows/manifest.mf;
/cvs/openide/windows/manifest.mf,v  <--  manifest.mf
new revision: 1.8; previous revision: 1.7
done
Checking in openide/windows/apichanges.xml;
/cvs/openide/windows/apichanges.xml,v  <--  apichanges.xml
new revision: 1.4; previous revision: 1.3
done
Checking in
utilities/test/unit/src/org/netbeans/modules/openfile/DefaultExternalDropHandlerTest.java;
/cvs/utilities/test/unit/src/org/netbeans/modules/openfile/DefaultExternalDropHandlerTest.java,v
 <--  DefaultExternalDropHandlerTest.java
new revision: 1.2; previous revision: 1.1
done
Checking in openide/text/nbproject/project.xml;
/cvs/openide/text/nbproject/project.xml,v  <--  project.xml
new revision: 1.8; previous revision: 1.7
done
Checking in
openide/loaders/test/unit/src/org/openide/loaders/DataFolderPasteTypesTest.java;
/cvs/openide/loaders/test/unit/src/org/openide/loaders/DataFolderPasteTypesTest.java,v
 <--  DataFolderPasteTypesTest.java
new revision: 1.2; previous revision: 1.1
done
Checking in
openide/loaders/test/unit/src/org/openide/loaders/DragAndDropDataNodeTest.java;
/cvs/openide/loaders/test/unit/src/org/openide/loaders/DragAndDropDataNodeTest.java,v
 <--  DragAndDropDataNodeTest.java
new revision: 1.2; previous revision: 1.1
done
Checking in utilities/nbproject/project.xml;
/cvs/utilities/nbproject/project.xml,v  <--  project.xml
new revision: 1.16; previous revision: 1.15
done
Checking in utilities/nbproject/project.properties;
/cvs/utilities/nbproject/project.properties,v  <--  project.properties
new revision: 1.15; previous revision: 1.14
done