mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
GT-3461 - fix for recent drag-n-drop break
This commit is contained in:
parent
cf0c434d51
commit
638befbfd1
3 changed files with 19 additions and 18 deletions
|
@ -155,10 +155,6 @@ public class DataTypeManagerPlugin extends ProgramPlugin
|
||||||
|
|
||||||
editorManager = new DataTypeEditorManager(this);
|
editorManager = new DataTypeEditorManager(this);
|
||||||
|
|
||||||
CodeViewerService codeViewerService = tool.getService(CodeViewerService.class);
|
|
||||||
if (codeViewerService != null) {
|
|
||||||
codeViewerService.addProgramDropProvider(new DataDropOnBrowserHandler(this));
|
|
||||||
}
|
|
||||||
tool.addPopupActionProvider(this);
|
tool.addPopupActionProvider(this);
|
||||||
tool.setMenuGroup(new String[] { SyncRefreshAction.MENU_NAME }, "SYNC");
|
tool.setMenuGroup(new String[] { SyncRefreshAction.MENU_NAME }, "SYNC");
|
||||||
tool.setMenuGroup(new String[] { UpdateAction.MENU_NAME }, "SYNC");
|
tool.setMenuGroup(new String[] { UpdateAction.MENU_NAME }, "SYNC");
|
||||||
|
|
|
@ -21,22 +21,25 @@ public class GhidraDataFlavorHandlerService {
|
||||||
|
|
||||||
public GhidraDataFlavorHandlerService() {
|
public GhidraDataFlavorHandlerService() {
|
||||||
|
|
||||||
try {
|
//
|
||||||
DataFlavor linuxFileUrlFlavor =
|
// Note: the order of the file drop flavors/handlers is intentional. We wish to process
|
||||||
new DataFlavor("application/x-java-serialized-object;class=java.lang.String");
|
// objects first which we know to be transfered from within the current JVM. After
|
||||||
DataTreeDragNDropHandler.addActiveDataFlavorHandler(linuxFileUrlFlavor,
|
// that, then process objects given to us from the OS or another JVM.
|
||||||
new LinuxFileUrlHandler());
|
//
|
||||||
}
|
|
||||||
catch (ClassNotFoundException cnfe) {
|
|
||||||
// should never happen as it is using java.lang.String
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalTreeNodeHandler localNodeHandler = new LocalTreeNodeHandler();
|
LocalTreeNodeHandler localNodeHandler = new LocalTreeNodeHandler();
|
||||||
DataTreeDragNDropHandler.addActiveDataFlavorHandler(
|
DataTreeDragNDropHandler.addActiveDataFlavorHandler(
|
||||||
DataTreeDragNDropHandler.localDomainFileTreeFlavor, localNodeHandler);
|
DataTreeDragNDropHandler.localDomainFileTreeFlavor, localNodeHandler);
|
||||||
DataTreeDragNDropHandler.addActiveDataFlavorHandler(DataFlavor.javaFileListFlavor,
|
|
||||||
new JavaFileListHandler());
|
|
||||||
DataTreeDragNDropHandler.addActiveDataFlavorHandler(
|
DataTreeDragNDropHandler.addActiveDataFlavorHandler(
|
||||||
VersionInfoTransferable.localVersionInfoFlavor, new LocalVersionInfoHandler());
|
VersionInfoTransferable.localVersionInfoFlavor, new LocalVersionInfoHandler());
|
||||||
|
DataTreeDragNDropHandler.addActiveDataFlavorHandler(DataFlavor.javaFileListFlavor,
|
||||||
|
new JavaFileListHandler());
|
||||||
|
|
||||||
|
DataFlavor linuxFileUrlFlavor =
|
||||||
|
new DataFlavor("application/x-java-serialized-object;class=java.lang.String",
|
||||||
|
"String file URL");
|
||||||
|
DataTreeDragNDropHandler.addActiveDataFlavorHandler(linuxFileUrlFlavor,
|
||||||
|
new LinuxFileUrlHandler());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ import java.awt.datatransfer.DataFlavor;
|
||||||
import java.awt.dnd.*;
|
import java.awt.dnd.*;
|
||||||
import java.awt.event.ContainerEvent;
|
import java.awt.event.ContainerEvent;
|
||||||
import java.awt.event.ContainerListener;
|
import java.awt.event.ContainerListener;
|
||||||
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.swing.CellRendererPane;
|
import javax.swing.CellRendererPane;
|
||||||
|
@ -40,8 +40,10 @@ import ghidra.util.CascadedDropTarget;
|
||||||
* in order to properly support drag/drop with all components.
|
* in order to properly support drag/drop with all components.
|
||||||
*/
|
*/
|
||||||
public class FileOpenDropHandler implements DropTargetHandler, Droppable, ContainerListener {
|
public class FileOpenDropHandler implements DropTargetHandler, Droppable, ContainerListener {
|
||||||
private static HashMap<DataFlavor, FileOpenDataFlavorHandler> handlers =
|
|
||||||
new HashMap<DataFlavor, FileOpenDataFlavorHandler>();
|
// note: we wish to maintain insertion order
|
||||||
|
private static LinkedHashMap<DataFlavor, FileOpenDataFlavorHandler> handlers =
|
||||||
|
new LinkedHashMap<DataFlavor, FileOpenDataFlavorHandler>();
|
||||||
|
|
||||||
private DropTgtAdapter dropTargetAdapter;
|
private DropTgtAdapter dropTargetAdapter;
|
||||||
private DropTarget globalDropTarget;
|
private DropTarget globalDropTarget;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue