0

我想在我自己的视图上执行粘贴操作,以添加一些已选择并在 Eclipse 包资源管理器中使用Ctrl+复制到剪贴板的类文件。C

我(很可能是幼稚的)尝试是在我的视图中添加一个下拉监听器,不幸的是,如果我按下Ctrl+V并专注于我的视图,什么都不会发生。我对 GUI、SWT 和 Eclipse 很陌生,也许我错过了一些非常重要的东西......

如何访问包资源管理器剪贴板?或者我怎样才能让剪贴板中的东西被“拖放”到我的视图中?

4

1 回答 1

0

您需要为命令定义处理程序扩展org.eclipse.ui.edit.paste(查看平台命令框架以获取更多信息):

  <handler
        class="com.example.PasteHandler"
        commandId="org.eclipse.ui.edit.paste">
     <activeWhen>
        <with variable="activePartId">
           <equals value="com.example.MyView"></equals>
        </with>
     </activeWhen>
  </handler>

您可以使用类访问系统剪贴板Clipboard。剪贴板的内容可能是不同的类型,因此您需要检查在给定时间是否支持您期望的类型。的子类ByteArrayTransfer用于将剪贴板内容转换为合适的 Java 对象。在您的情况下,我想最好的选择是使用JavaCoreResourceTransfer使用和创建 Java 元素:

Clipboard cb = new Clipboard(Display.getCurrent());
ResourceTransfer ft = ResourceTransfer.getInstance();
IResource[] classFiles = (IResource[]) cb.getContents(ft);
if (classFiles != null)
    for (IResource file : classFiles) {
        IJavaElement je = JavaCore.create(file);
        ...
    }
于 2011-12-11T19:36:26.877 回答