home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / macos / MacClipboard.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  3.8 KB  |  102 lines

  1. package sun.awt.macos;
  2.  
  3. import java.awt.datatransfer.Clipboard;
  4. import java.awt.datatransfer.ClipboardOwner;
  5. import java.awt.datatransfer.DataFlavor;
  6. import java.awt.datatransfer.Transferable;
  7. import java.awt.datatransfer.UnsupportedFlavorException;
  8. import java.io.ByteArrayInputStream;
  9. import java.io.ByteArrayOutputStream;
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.io.ObjectInputStream;
  13. import java.io.ObjectOutputStream;
  14. import java.io.StringBufferInputStream;
  15.  
  16. public class MacClipboard extends Clipboard {
  17.    static final String TEXT_RESTYPE = "TEXT";
  18.    static final String OBJECT_RESTYPE = "JSOB";
  19.  
  20.    public MacClipboard(String var1) {
  21.       super(var1);
  22.    }
  23.  
  24.    public synchronized Transferable getContents(Object var1) {
  25.       MacClipboardContents var2 = new MacClipboardContents();
  26.       String[] var3 = getScrapTypes();
  27.  
  28.       for(int var4 = 0; var4 < var3.length; ++var4) {
  29.          String var5 = var3[var4];
  30.          if (var5.equals("TEXT")) {
  31.             String var6 = getStringFromScrap("TEXT");
  32.             var2.addTransferData(DataFlavor.stringFlavor, var6);
  33.             var2.addTransferData(DataFlavor.plainTextFlavor, new StringBufferInputStream(var6));
  34.          } else if (var5.equals("JSOB")) {
  35.             try {
  36.                byte[] var10 = getBytesFromScrap("JSOB");
  37.                ByteArrayInputStream var8 = new ByteArrayInputStream(var10);
  38.                ObjectInputStream var9 = new ObjectInputStream(var8);
  39.                Object var13 = var9.readObject();
  40.                DataFlavor var7 = new DataFlavor(var13.getClass(), var13.getClass().getName());
  41.                var2.addTransferData(var7, var13);
  42.             } catch (IOException var11) {
  43.                System.err.println("IOException in MacClipboard: " + var11);
  44.             } catch (ClassNotFoundException var12) {
  45.                System.err.println("ClassNotFoundException in MacClipboard: " + var12);
  46.             }
  47.          }
  48.       }
  49.  
  50.       return var2;
  51.    }
  52.  
  53.    public synchronized void setContents(Transferable var1, ClipboardOwner var2) {
  54.       if (super.owner != null && super.owner != var2) {
  55.          super.owner.lostOwnership(this, super.contents);
  56.       }
  57.  
  58.       super.owner = var2;
  59.       super.contents = var1;
  60.       DataFlavor[] var3 = var1.getTransferDataFlavors();
  61.       boolean var4 = true;
  62.  
  63.       for(int var5 = 0; var5 < var3.length; ++var5) {
  64.          DataFlavor var6 = var3[var5];
  65.  
  66.          try {
  67.             if (var6.getMimeType().toLowerCase().startsWith("text/")) {
  68.                InputStream var7 = (InputStream)var1.getTransferData(var6);
  69.                byte[] var8 = new byte[var7.available()];
  70.                var7.read(var8);
  71.                putBytesOnScrap("TEXT", var8, var4);
  72.                var4 = false;
  73.             } else if (var6.getRepresentationClass().getName().equals("java.lang.String")) {
  74.                putStringOnScrap("TEXT", (String)var1.getTransferData(var6), var4);
  75.                var4 = false;
  76.             } else if (var6.getMimeType().toLowerCase().startsWith("application/x-javaserializedobject")) {
  77.                ByteArrayOutputStream var11 = new ByteArrayOutputStream();
  78.                ObjectOutputStream var12 = new ObjectOutputStream(var11);
  79.                var12.writeObject(var1.getTransferData(var6));
  80.                putBytesOnScrap("JSOB", var11.toByteArray(), var4);
  81.                var4 = false;
  82.             }
  83.          } catch (IOException var9) {
  84.             System.err.println("IOException in MacClipboard: " + var9);
  85.          } catch (UnsupportedFlavorException var10) {
  86.             System.err.println("UnsupportedFlavorException in MacClipboard: " + var10);
  87.          }
  88.       }
  89.  
  90.    }
  91.  
  92.    static native String[] getScrapTypes();
  93.  
  94.    static native void putStringOnScrap(String var0, String var1, boolean var2);
  95.  
  96.    static native void putBytesOnScrap(String var0, byte[] var1, boolean var2);
  97.  
  98.    static native String getStringFromScrap(String var0);
  99.  
  100.    static native byte[] getBytesFromScrap(String var0);
  101. }
  102.