Changeset 7055

Show
Ignore:
Timestamp:
02/23/08 04:31:31 (6 years ago)
Author:
keisuken
Message:

Drag and Dop library add.

Location:
lang/scala/sandbox
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/scala/sandbox/build.xml

    r7035 r7055  
    116116      fork="true" 
    117117      classname="jp.ne.cappuccino.keisuken.scl.awt.ClipBoard" 
     118      classpath="${classpath}" /> 
     119  </target> 
     120 
     121  <target name="test-keisuken-dnd" depends="compile"> 
     122    <java 
     123      fork="true" 
     124      classname="jp.ne.cappuccino.keisuken.scl.awt.DnD" 
    118125      classpath="${classpath}" /> 
    119126  </target> 
  • lang/scala/sandbox/src/jp/ne/cappuccino/keisuken/scl/awt/ClipBoard.scala

    r7048 r7055  
    1515    def lostOwnership(clipboard: Clipboard, contents: Transferable) = 
    1616      proc(clipboard, contents) 
     17  } 
     18 
     19  class Transfer( 
     20    flavors: Array[DataFlavor], 
     21    getTransferData: DataFlavor => java.lang.Object, 
     22    data: java.lang.Object) 
     23    extends Transferable with ClipboardOwner 
     24  { 
     25 
     26    def getTransferDataFlavors(): Array[DataFlavor] = 
     27      flavors.toArray 
     28 
     29    def isDataFlavorSupported(flavor: DataFlavor): Boolean = { 
     30      for(dataFlavor <- flavors) 
     31        if(flavor == dataFlavor) return true 
     32      return false 
     33    } 
     34 
     35    @throws(classOf[UnsupportedFlavorException]) 
     36    @throws(classOf[IOException]) 
     37    def getTransferData(flavor: DataFlavor): Object = getTransferData(flavor) 
     38 
     39    def lostOwnership(clipboard: Clipboard, contents: Transferable): Unit = 
     40      println( 
     41        "Transfer.lostOwnership: clipboard=" + 
     42        clipboard + ",contents=" + contents 
     43      ) 
    1744  } 
    1845 
     
    7097   */ 
    7198  def main(args: Array[String]) { 
    72     val listener = add(e => println("flavors changed: " + e)) 
    7399    val lock = "abc" 
     100    val listener = add({e => 
     101      println("flavors changed: " + e) 
     102      lock.synchronized {lock.notify} 
     103    }) 
    74104    copy( 
    75105      new StringSelection("Hello, world!"), 
    76       clipboardOwner({(clipboard, contents) => 
    77         println("clipboard=" + clipboard + ",contents=" + contents) 
    78         remove(listener) 
    79         lock.notify 
    80       }) 
     106      clipboardOwner((clipboard, contents) => 
     107        println("lost owner: clipboard=" + clipboard + ",contents=" + contents) 
     108      ) 
    81109    ) 
    82     try { 
    83       lock.wait 
    84     } catch { 
    85       case e: Exception => {} 
     110    lock.synchronized { 
     111      lock.wait(1000) 
    86112    } 
    87113    try {