TreeViewer选择和剪贴板 [英] TreeViewer selections and the Clipboard
问题描述
是否可以在剪贴板中放置多个对象(代表TreeViewer
选择)?这是我的剪切代码.
Is it possible to place more than one object (which represent TreeViewer
selections) into the clipboard? Here's my Cut code.
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
的实例)放置到剪贴板中.
What I'm trying to do is place multiple selections, which are instances of FileEntry
, into the clipboard.
FileEntryTransfer
是我的自定义ByteArrayTransfer
类,我也将其用于DND.它运作良好,但我注意到setContents()
实际上只向它发送一个FileEntry
对象,而不是对象数组(这正是我想要的).
FileEntryTransfer
is my custom ByteArrayTransfer
class that I also use for DND. It works well, but I noticed that setContents()
actually sends it only one FileEntry
object as opposed to an array of objects (which is what I want).
有什么想法吗?
[edit]感谢vanaprogeja,我用
[edit]Thanks to vanaprogeja, I sovled it with
cb.setContents(new Object[]{ objects }, new Transfer[] { FileEntryTransfer.getInstance() });
推荐答案
怎么样:
cb.setContents(new Object[]{ objects },
new Transfer[] { FileEntryTransfer.getInstance() });
这篇关于TreeViewer选择和剪贴板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!