1 21 22 package org.armedbear.j; 23 24 import java.awt.Toolkit ; 25 import java.awt.datatransfer.Clipboard ; 26 import java.awt.datatransfer.ClipboardOwner ; 27 import java.awt.datatransfer.StringSelection ; 28 import java.awt.datatransfer.Transferable ; 29 30 public final class KillRing extends Ring implements ClipboardOwner 31 { 32 private ClipboardOwner clipboardOwner; 34 public KillRing() 35 { 36 super(30); 37 } 38 39 public void copyLastKillToSystemClipboard() 40 { 41 String kill = pop(); 42 if (kill != null) 43 setClipboardContents(kill); 44 } 45 46 public void promoteLastPaste() 47 { 48 promoteLast(); 49 if (clipboardOwner == this) 52 setClipboardContents(peek()); 53 } 54 55 private void setClipboardContents(String s) 56 { 57 StringSelection ss = new StringSelection (new String (s)); 60 try { 61 Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, this); 62 clipboardOwner = this; 63 } 64 catch (IllegalStateException e) { 65 Log.debug(e); 66 } 67 } 68 69 public void lostOwnership(Clipboard clipboard, Transferable contents) 70 { 71 clipboardOwner = null; 72 } 73 } 74 | Popular Tags |