moneyice的专栏

学以致用,用而促学

将RCP中的文字copy到操作系统剪贴板

         在RCP Password  Gate中,用户可以复制节点的密码,此功能将密码复制到操作系统的剪贴板中,方便用户粘贴到别的需要添入密码的控件中。

实现这个功能是用了一个Action,在Action中复制信息到系统剪切板中。

ClipboardCopyAction.java
01 public abstract class ClipboardCopyAction extends SelectionProviderAction {
02 
03   public ClipboardCopyAction(ISelectionProvider provider) {
04     super(provider, null);
05     setImageDescriptor(ImageShop.getDescriptor("copy"));
06   }
07 
08   public void selectionChanged(IStructuredSelection selection) {
09     boolean enable = false;
10     if (selection.size() == 1) {
11       Object o = selection.getFirstElement();
12       if (instanceof Record) {
13         enable = true;
14       }
15     }
16     setEnabled(enable);
17   }
18 
19   public void run() {
20     Clipboard cb = new Clipboard(Display.getCurrent());
21     try {
22       String textData = getTextData();
23       TextTransfer textTransfer = TextTransfer.getInstance();
24       cb.setContents(new Object[] { textData },
25           new Transfer[] { textTransfer });
26     catch (IOException ex) {
27       PwdgatePlugin.log("copy to clipboard", ex);
28     }
29   }
30 
31   public abstract String getTextData() throws IOException;
32 
33 }
Row 22,取到要复制的文字信息,R23-25,将文字复制到系统剪切板中。复制的内容有此类的子类提供。
阅读更多
文章标签: action object null
个人分类: Eclipse Plug-ins RCP SWT
上一篇在RCP中实现用托拽打开Editor
下一篇在Swing中挣扎
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭