mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-06 12:00:04 +02:00
Merge remote-tracking branch
'origin/GT-3403-dragonmacher-front-end-copy-name' (fixes #1257)
This commit is contained in:
commit
49a9f145c1
1 changed files with 18 additions and 12 deletions
|
@ -36,7 +36,7 @@ public class DataTreeDragNDropHandler implements GTreeDragNDropHandler {
|
|||
public static DataFlavor localDomainFileFlavor = createLocalTreeFlavor();
|
||||
|
||||
public static DataFlavor[] allSupportedFlavors =
|
||||
{ localDomainFileTreeFlavor, localDomainFileFlavor };
|
||||
{ localDomainFileTreeFlavor, localDomainFileFlavor, DataFlavor.stringFlavor };
|
||||
|
||||
// create a data flavor that is an List of GTreeNodes
|
||||
private static DataFlavor createLocalTreeNodeFlavor() {
|
||||
|
@ -146,12 +146,17 @@ public class DataTreeDragNDropHandler implements GTreeDragNDropHandler {
|
|||
return removeDuplicates(transferNodes);
|
||||
}
|
||||
else if (flavor == localDomainFileFlavor) {
|
||||
// filter the list of nodes to get just file nodes, and convert each node to its
|
||||
// corresponding domainFile
|
||||
return transferNodes.stream().//
|
||||
filter(DomainFileNode.class::isInstance).//
|
||||
map(node -> ((DomainFileNode) node).getDomainFile()).//
|
||||
collect(Collectors.toList());
|
||||
// filter for file nodes and convert each node to its corresponding domainFile
|
||||
return transferNodes.stream()
|
||||
.filter(DomainFileNode.class::isInstance)
|
||||
.map(node -> ((DomainFileNode) node).getDomainFile())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
else if (flavor == DataFlavor.stringFlavor) {
|
||||
// allow users to copy the names of nodes
|
||||
return transferNodes.stream()
|
||||
.map(node -> node.getName())
|
||||
.collect(Collectors.joining("\n"));
|
||||
}
|
||||
throw new AssertException("Called with a flavor that we didn't say we supported");
|
||||
}
|
||||
|
@ -160,10 +165,10 @@ public class DataTreeDragNDropHandler implements GTreeDragNDropHandler {
|
|||
|
||||
List<GTreeNode> folderNodes = getDomainFolderNodes(allNodes);
|
||||
|
||||
// check each file--if it has a parent in the list, then it is not needed as a separate entry
|
||||
return allNodes.stream().//
|
||||
filter(node -> !isChildOfFolders(folderNodes, node)).//
|
||||
collect(Collectors.toList());
|
||||
// if a file has a parent in the list, then it is not needed as a separate entry
|
||||
return allNodes.stream()
|
||||
.filter(node -> !isChildOfFolders(folderNodes, node))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<GTreeNode> getDomainFolderNodes(List<GTreeNode> nodeList) {
|
||||
|
@ -189,7 +194,8 @@ public class DataTreeDragNDropHandler implements GTreeDragNDropHandler {
|
|||
return false;
|
||||
}
|
||||
|
||||
public static void addActiveDataFlavorHandler(DataFlavor flavor, DataTreeFlavorHandler handler) {
|
||||
public static void addActiveDataFlavorHandler(DataFlavor flavor,
|
||||
DataTreeFlavorHandler handler) {
|
||||
activeProjectDropFlavorHandlerMap.put(flavor, handler);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue