gpt4 book ai didi

java - TreeViewer 选择和剪贴板

转载 作者:行者123 更新时间:2023-11-30 09:42:50 25 4
gpt4 key购买 nike

是否可以将多个对象(表示 TreeViewer 选择)放入剪贴板?这是我的 Cut 代码。

static public void Cut(EssentialData dataInst)
{
IStructuredSelection selection = (IStructuredSelection)dataInst.getTreeViewer().getSelection();

if(selection == null)
{
System.err.println("selection received was null");
return;
}

Object[] objects = selection.toArray();

//because setContents requires a Transfer object for every object sent
List<Transfer> typesList = new ArrayList<>();

for(int i = 0; i < objects.length; i++)
typesList.add(FileEntryTransfer.getInstance());

final Clipboard cb = new Clipboard(Display.getCurrent());
cb.setContents(objects, typesList.toArray(new Transfer[]{}));
cb.dispose();

for(int i = 0; i < objects.length; i++)
dataInst.getFileManager().removeEntry((FileEntry)objects[i]);

dataInst.getTreeViewer().refresh(false);
}

我想做的是将多项选择(FileEntry 的实例)放入剪贴板。

FileEntryTransfer 是我自定义的 ByteArrayTransfer 类,我也将其用于免打扰。它运行良好,但我注意到 setContents() 实际上只向它发送一个 FileEntry 对象,而不是一组对象(这正是我想要的)。

有什么想法吗?

[edit]感谢 vanaprogeja,我解决了它

cb.setContents(new Object[]{ objects }, new Transfer[] { FileEntryTransfer.getInstance() });

最佳答案

怎么样:

cb.setContents(new Object[]{ objects },
new Transfer[] { FileEntryTransfer.getInstance() });

关于java - TreeViewer 选择和剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8498537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com