From: <ba...@us...> - 2007-03-07 15:18:49
|
Revision: 88 http://trivial.svn.sourceforge.net/trivial/?rev=88&view=rev Author: baepel Date: 2007-03-07 07:18:46 -0800 (Wed, 07 Mar 2007) Log Message: ----------- comment rendre un truc simple complique ... Modified Paths: -------------- trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardReaderImpl.java trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardWriterImpl.java Modified: trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardReaderImpl.java =================================================================== --- trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardReaderImpl.java 2007-03-07 14:26:08 UTC (rev 87) +++ trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardReaderImpl.java 2007-03-07 15:18:46 UTC (rev 88) @@ -10,6 +10,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.awt.datatransfer.DataFlavor; + public class ClipboardReaderImpl implements ClipboardReader, Runnable { private static Log log = LogFactory.getLog(ClipboardReaderImpl.class); @@ -21,8 +23,10 @@ private Clipboard clipboard; - String curString; - String lastString; + Transferable curTrans; + Transferable lastTrans; + + public final DataFlavor STRING_FLAVOR = java.awt.datatransfer.DataFlavor.stringFlavor; public ClipboardReaderImpl() { clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -31,17 +35,18 @@ public void run() { while (running) { - // get current string from clipboard - Transferable trans = clipboard.getContents(null); - try { - curString = trans.getTransferData(java.awt.datatransfer.DataFlavor.stringFlavor).toString(); - // check if it has changed - if (!curString.equals(lastString)) { - lastString = curString; - distributedClipboard.setLocalContent(curString); + // get current transferable from clipboard + curTrans = clipboard.getContents(null); + if (!sameTransferables(curTrans, lastTrans)) { + if (curTrans.isDataFlavorSupported(STRING_FLAVOR)) { + try { + String curString = curTrans.getTransferData(STRING_FLAVOR).toString(); + lastTrans = curTrans; + distributedClipboard.setLocalContent(curString); + } catch (Exception e) { + e.printStackTrace(); + } } - } catch (Exception e) { - e.printStackTrace(); } try { Thread.sleep(100); @@ -72,4 +77,19 @@ stopped.wait(); } } + + private boolean sameTransferables(Transferable cur, Transferable last) { + if (last == null) { + return last == cur; + } else if (last.isDataFlavorSupported(STRING_FLAVOR) && + cur.isDataFlavorSupported(STRING_FLAVOR)) { + try { + return last.getTransferData(STRING_FLAVOR).toString().equals( + cur.getTransferData(STRING_FLAVOR).toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } + return false; + } } Modified: trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardWriterImpl.java =================================================================== --- trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardWriterImpl.java 2007-03-07 14:26:08 UTC (rev 87) +++ trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/ClipboardWriterImpl.java 2007-03-07 15:18:46 UTC (rev 88) @@ -18,10 +18,10 @@ public void writeToClipboard(String content) { StringSelection strSel = new StringSelection(content); - // not sure yet what clipboardowner is - may change in the future + // not sure yet what 'clipboardowner' is - may change in the future Transferable trans = strSel; ClipboardOwner owner = strSel; clipboard.setContents(trans, owner); } -} +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |