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

1736人阅读 评论(0) 收藏 举报

         在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,将文字复制到系统剪切板中。复制的内容有此类的子类提供。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:475600次
    • 积分:5522
    • 等级:
    • 排名:第4764名
    • 原创:86篇
    • 转载:2篇
    • 译文:35篇
    • 评论:119条
    最新评论
    xprogramming