Changeset 7048 for lang/scala
- Timestamp:
- 02/23/08 00:45:35 (9 months ago)
- Location:
- lang/scala/sandbox
- Files:
-
- 3 modified
-
lib/scala-sandbox.jar (modified) (previous)
-
src/jp/ne/cappuccino/keisuken/scl/awt/ClipBoard.scala (modified) (3 diffs)
-
webpages/lib/scala-sandbox.jar (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
lang/scala/sandbox/src/jp/ne/cappuccino/keisuken/scl/awt/ClipBoard.scala
r7035 r7048 1 1 package jp.ne.cappuccino.keisuken.scl.awt 2 2 3 import java.awt.{Toolkit} 4 import java.io._ 3 5 import java.awt.datatransfer._ 4 6 … … 15 17 } 16 18 17 def flavorListener(proc: FlavorEvent => Unit): FlavorListener = 18 new FlavorAdapter(proc) 19 def copy( 20 clipboard: Clipboard, 21 contents: Transferable, owner: ClipboardOwner): Unit = 22 clipboard.setContents(contents, owner) 19 23 20 def flavorsChanged( 21 clipboard: Clipboard, proc: FlavorEvent => Unit): Unit = 22 clipboard.addFlavorListener(flavorListener(proc)) 24 def copy(contents: Transferable, owner: ClipboardOwner): Unit = 25 copy(systemClipboard, contents, owner) 26 27 @throws(classOf[UnsupportedFlavorException]) 28 @throws(classOf[IOException]) 29 def paste(clipboard: Clipboard, flavor: DataFlavor): java.lang.Object = 30 clipboard.getData(flavor) 31 32 @throws(classOf[UnsupportedFlavorException]) 33 @throws(classOf[IOException]) 34 def paste(flavor: DataFlavor): java.lang.Object = 35 paste(systemClipboard, flavor) 36 37 def systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard() 38 def systemSelection = Toolkit.getDefaultToolkit().getSystemSelection() 39 40 def stringFlavor: DataFlavor = DataFlavor.stringFlavor 41 def imageFlavor: DataFlavor = DataFlavor.imageFlavor 42 def fileListFlavor: DataFlavor = DataFlavor.javaFileListFlavor 43 44 def add( 45 clipboard: Clipboard, listener: FlavorListener): FlavorListener = { 46 clipboard.addFlavorListener(listener) 47 listener 48 } 49 50 def add( 51 clipboard: Clipboard, proc: FlavorEvent => Unit): FlavorListener = 52 add(clipboard, new FlavorAdapter(proc)) 53 54 def add(proc: FlavorEvent => Unit): FlavorListener = 55 add(systemClipboard, proc) 56 57 def remove( 58 clipboard: Clipboard, listener: FlavorListener): Unit = 59 clipboard.removeFlavorListener(listener) 60 61 def remove(listener: FlavorListener): Unit = 62 remove(systemClipboard, listener) 23 63 24 64 def clipboardOwner( … … 26 66 new ClipboardOwnerAdapter(proc) 27 67 68 /** 69 * Sample codes. 70 */ 28 71 def main(args: Array[String]) { 29 val clipboard = new Clipboard("foo") 30 val textPlainFlavor = DataFlavor.getTextPlainUnicodeFlavor() 31 flavorsChanged(clipboard, e => println(e)) 32 clipboard.setContents( 72 val listener = add(e => println("flavors changed: " + e)) 73 val lock = "abc" 74 copy( 33 75 new StringSelection("Hello, world!"), 34 clipboardOwner((clipboard, contents) => 35 println("clipboard=" + clipboard + ",contents=" + contents)) 36 ) 37 Thread.sleep(10000) 76 clipboardOwner({(clipboard, contents) => 77 println("clipboard=" + clipboard + ",contents=" + contents) 78 remove(listener) 79 lock.notify 80 }) 81 ) 82 try { 83 lock.wait 84 } catch { 85 case e: Exception => {} 86 } 87 try { 88 println("data=" + paste(stringFlavor)) 89 } catch { 90 case e: Exception => println(e) 91 } 38 92 } 39 93 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)