Java Code Examples for java.awt.datatransfer.DataFlavor#getSubType()
The following examples show how to use
java.awt.datatransfer.DataFlavor#getSubType() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DataTransferer.java From hottub with GNU General Public License v2.0 | 6 votes |
/** * Tests only whether the flavor's MIME type supports the charset * parameter. Must only be called for flavors with a primary type of * "text". */ public static boolean doesSubtypeSupportCharset(DataFlavor flavor) { if (dtLog.isLoggable(PlatformLogger.Level.FINE)) { if (!"text".equals(flavor.getPrimaryType())) { dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed"); } } String subType = flavor.getSubType(); if (subType == null) { return false; } Object support = textMIMESubtypeCharsetSupport.get(subType); if (support != null) { return (support == Boolean.TRUE); } boolean ret_val = (flavor.getParameter("charset") != null); textMIMESubtypeCharsetSupport.put (subType, (ret_val) ? Boolean.TRUE : Boolean.FALSE); return ret_val; }
Example 2
Source File: DataTransferer.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
/** * Tests only whether the flavor's MIME type supports the charset * parameter. Must only be called for flavors with a primary type of * "text". */ public static boolean doesSubtypeSupportCharset(DataFlavor flavor) { if (dtLog.isLoggable(PlatformLogger.Level.FINE)) { if (!"text".equals(flavor.getPrimaryType())) { dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed"); } } String subType = flavor.getSubType(); if (subType == null) { return false; } Object support = textMIMESubtypeCharsetSupport.get(subType); if (support != null) { return (support == Boolean.TRUE); } boolean ret_val = (flavor.getParameter("charset") != null); textMIMESubtypeCharsetSupport.put (subType, (ret_val) ? Boolean.TRUE : Boolean.FALSE); return ret_val; }
Example 3
Source File: DataTransferer.java From openjdk-8-source with GNU General Public License v2.0 | 6 votes |
/** * Tests only whether the flavor's MIME type supports the charset * parameter. Must only be called for flavors with a primary type of * "text". */ public static boolean doesSubtypeSupportCharset(DataFlavor flavor) { if (dtLog.isLoggable(PlatformLogger.Level.FINE)) { if (!"text".equals(flavor.getPrimaryType())) { dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed"); } } String subType = flavor.getSubType(); if (subType == null) { return false; } Object support = textMIMESubtypeCharsetSupport.get(subType); if (support != null) { return (support == Boolean.TRUE); } boolean ret_val = (flavor.getParameter("charset") != null); textMIMESubtypeCharsetSupport.put (subType, (ret_val) ? Boolean.TRUE : Boolean.FALSE); return ret_val; }
Example 4
Source File: DataFlavorUtil.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * Tests only whether the flavor's MIME type supports the charset parameter. * Must only be called for flavors with a primary type of "text". */ public static boolean doesSubtypeSupportCharset(DataFlavor flavor) { String subType = flavor.getSubType(); if (subType == null) { return false; } Boolean support = textMIMESubtypeCharsetSupport.get(subType); if (support != null) { return support; } boolean ret_val = (flavor.getParameter("charset") != null); textMIMESubtypeCharsetSupport.put(subType, ret_val); return ret_val; }
Example 5
Source File: DataTransferer.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
/** * Tests only whether the flavor's MIME type supports the charset * parameter. Must only be called for flavors with a primary type of * "text". */ public static boolean doesSubtypeSupportCharset(DataFlavor flavor) { if (dtLog.isLoggable(PlatformLogger.Level.FINE)) { if (!"text".equals(flavor.getPrimaryType())) { dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed"); } } String subType = flavor.getSubType(); if (subType == null) { return false; } Object support = textMIMESubtypeCharsetSupport.get(subType); if (support != null) { return (support == Boolean.TRUE); } boolean ret_val = (flavor.getParameter("charset") != null); textMIMESubtypeCharsetSupport.put (subType, (ret_val) ? Boolean.TRUE : Boolean.FALSE); return ret_val; }
Example 6
Source File: XDataTransferer.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
/** * Translates either a byte array or an input stream which contain * platform-specific image data in the given format into an Image. */ protected Image platformImageBytesToImage( byte[] bytes, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return standardImageBytesToImage(bytes, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation from " + nativeFormat + " is not supported."); } }
Example 7
Source File: XDataTransferer.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
/** * Translates either a byte array or an input stream which contain * platform-specific image data in the given format into an Image. */ protected Image platformImageBytesToImage( byte[] bytes, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return standardImageBytesToImage(bytes, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation from " + nativeFormat + " is not supported."); } }
Example 8
Source File: XDataTransferer.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
/** * Translates either a byte array or an input stream which contain * platform-specific image data in the given format into an Image. */ protected Image platformImageBytesToImage( byte[] bytes, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return standardImageBytesToImage(bytes, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation from " + nativeFormat + " is not supported."); } }
Example 9
Source File: XDataTransferer.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
protected byte[] imageToPlatformBytes(Image image, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return imageToStandardBytes(image, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation to " + nativeFormat + " is not supported."); } }
Example 10
Source File: XDataTransferer.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
protected byte[] imageToPlatformBytes(Image image, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return imageToStandardBytes(image, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation to " + nativeFormat + " is not supported."); } }
Example 11
Source File: XDataTransferer.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Translates either a byte array or an input stream which contain * platform-specific image data in the given format into an Image. */ protected Image platformImageBytesToImage( byte[] bytes, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return standardImageBytesToImage(bytes, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation from " + nativeFormat + " is not supported."); } }
Example 12
Source File: XDataTransferer.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Translates either a byte array or an input stream which contain * platform-specific image data in the given format into an Image. */ protected Image platformImageBytesToImage( byte[] bytes, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return standardImageBytesToImage(bytes, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation from " + nativeFormat + " is not supported."); } }
Example 13
Source File: XDataTransferer.java From hottub with GNU General Public License v2.0 | 5 votes |
protected byte[] imageToPlatformBytes(Image image, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return imageToStandardBytes(image, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation to " + nativeFormat + " is not supported."); } }
Example 14
Source File: XDataTransferer.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
protected byte[] imageToPlatformBytes(Image image, long format) throws IOException { String mimeType = null; if (format == PNG_ATOM.getAtom()) { mimeType = "image/png"; } else if (format == JFIF_ATOM.getAtom()) { mimeType = "image/jpeg"; } else { // Check if an image MIME format. try { String nat = getNativeForFormat(format); DataFlavor df = new DataFlavor(nat); String primaryType = df.getPrimaryType(); if ("image".equals(primaryType)) { mimeType = df.getPrimaryType() + "/" + df.getSubType(); } } catch (Exception e) { // Not an image MIME format. } } if (mimeType != null) { return imageToStandardBytes(image, mimeType); } else { String nativeFormat = getNativeForFormat(format); throw new IOException("Translation to " + nativeFormat + " is not supported."); } }
Example 15
Source File: XDataTransferer.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
public LinkedHashSet<String> getPlatformMappingsForFlavor(DataFlavor df) { LinkedHashSet<String> natives = new LinkedHashSet<>(1); if (df == null) { return natives; } String charset = df.getParameter("charset"); String baseType = df.getPrimaryType() + "/" + df.getSubType(); String mimeType = baseType; if (charset != null && DataTransferer.isFlavorCharsetTextType(df)) { mimeType += ";charset=" + charset; } // Add a mapping to the MIME native whenever the representation class // doesn't require translation. if (df.getRepresentationClass() != null && (df.isRepresentationClassInputStream() || df.isRepresentationClassByteBuffer() || byte[].class.equals(df.getRepresentationClass()))) { natives.add(mimeType); } if (DataFlavor.imageFlavor.equals(df)) { String[] mimeTypes = ImageIO.getWriterMIMETypes(); if (mimeTypes != null) { for (int i = 0; i < mimeTypes.length; i++) { Iterator writers = ImageIO.getImageWritersByMIMEType(mimeTypes[i]); while (writers.hasNext()) { ImageWriter imageWriter = (ImageWriter)writers.next(); ImageWriterSpi writerSpi = imageWriter.getOriginatingProvider(); if (writerSpi != null && writerSpi.canEncodeImage(getDefaultImageTypeSpecifier())) { natives.add(mimeTypes[i]); break; } } } } } else if (DataTransferer.isFlavorCharsetTextType(df)) { // stringFlavor is semantically equivalent to the standard // "text/plain" MIME type. if (DataFlavor.stringFlavor.equals(df)) { baseType = "text/plain"; } for (String encoding : DataTransferer.standardEncodings()) { if (!encoding.equals(charset)) { natives.add(baseType + ";charset=" + encoding); } } // Add a MIME format without specified charset. if (!natives.contains(baseType)) { natives.add(baseType); } } return natives; }
Example 16
Source File: XDataTransferer.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
public List getPlatformMappingsForFlavor(DataFlavor df) { List natives = new ArrayList(1); if (df == null) { return natives; } String charset = df.getParameter("charset"); String baseType = df.getPrimaryType() + "/" + df.getSubType(); String mimeType = baseType; if (charset != null && DataTransferer.isFlavorCharsetTextType(df)) { mimeType += ";charset=" + charset; } // Add a mapping to the MIME native whenever the representation class // doesn't require translation. if (df.getRepresentationClass() != null && (df.isRepresentationClassInputStream() || df.isRepresentationClassByteBuffer() || byteArrayClass.equals(df.getRepresentationClass()))) { natives.add(mimeType); } if (DataFlavor.imageFlavor.equals(df)) { String[] mimeTypes = ImageIO.getWriterMIMETypes(); if (mimeTypes != null) { for (int i = 0; i < mimeTypes.length; i++) { Iterator writers = ImageIO.getImageWritersByMIMEType(mimeTypes[i]); while (writers.hasNext()) { ImageWriter imageWriter = (ImageWriter)writers.next(); ImageWriterSpi writerSpi = imageWriter.getOriginatingProvider(); if (writerSpi != null && writerSpi.canEncodeImage(getDefaultImageTypeSpecifier())) { natives.add(mimeTypes[i]); break; } } } } } else if (DataTransferer.isFlavorCharsetTextType(df)) { // stringFlavor is semantically equivalent to the standard // "text/plain" MIME type. if (DataFlavor.stringFlavor.equals(df)) { baseType = "text/plain"; } for (String encoding : DataTransferer.standardEncodings()) { if (!encoding.equals(charset)) { natives.add(baseType + ";charset=" + encoding); } } // Add a MIME format without specified charset. if (!natives.contains(baseType)) { natives.add(baseType); } } return natives; }
Example 17
Source File: XDataTransferer.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
public LinkedHashSet<String> getPlatformMappingsForFlavor(DataFlavor df) { LinkedHashSet<String> natives = new LinkedHashSet<>(1); if (df == null) { return natives; } String charset = df.getParameter("charset"); String baseType = df.getPrimaryType() + "/" + df.getSubType(); String mimeType = baseType; if (charset != null && DataTransferer.isFlavorCharsetTextType(df)) { mimeType += ";charset=" + charset; } // Add a mapping to the MIME native whenever the representation class // doesn't require translation. if (df.getRepresentationClass() != null && (df.isRepresentationClassInputStream() || df.isRepresentationClassByteBuffer() || byte[].class.equals(df.getRepresentationClass()))) { natives.add(mimeType); } if (DataFlavor.imageFlavor.equals(df)) { String[] mimeTypes = ImageIO.getWriterMIMETypes(); if (mimeTypes != null) { for (int i = 0; i < mimeTypes.length; i++) { Iterator writers = ImageIO.getImageWritersByMIMEType(mimeTypes[i]); while (writers.hasNext()) { ImageWriter imageWriter = (ImageWriter)writers.next(); ImageWriterSpi writerSpi = imageWriter.getOriginatingProvider(); if (writerSpi != null && writerSpi.canEncodeImage(getDefaultImageTypeSpecifier())) { natives.add(mimeTypes[i]); break; } } } } } else if (DataTransferer.isFlavorCharsetTextType(df)) { // stringFlavor is semantically equivalent to the standard // "text/plain" MIME type. if (DataFlavor.stringFlavor.equals(df)) { baseType = "text/plain"; } for (String encoding : DataTransferer.standardEncodings()) { if (!encoding.equals(charset)) { natives.add(baseType + ";charset=" + encoding); } } // Add a MIME format without specified charset. if (!natives.contains(baseType)) { natives.add(baseType); } } return natives; }
Example 18
Source File: XDataTransferer.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
public LinkedHashSet<String> getPlatformMappingsForFlavor(DataFlavor df) { LinkedHashSet<String> natives = new LinkedHashSet<>(1); if (df == null) { return natives; } String charset = df.getParameter("charset"); String baseType = df.getPrimaryType() + "/" + df.getSubType(); String mimeType = baseType; if (charset != null && DataTransferer.isFlavorCharsetTextType(df)) { mimeType += ";charset=" + charset; } // Add a mapping to the MIME native whenever the representation class // doesn't require translation. if (df.getRepresentationClass() != null && (df.isRepresentationClassInputStream() || df.isRepresentationClassByteBuffer() || byte[].class.equals(df.getRepresentationClass()))) { natives.add(mimeType); } if (DataFlavor.imageFlavor.equals(df)) { String[] mimeTypes = ImageIO.getWriterMIMETypes(); if (mimeTypes != null) { for (int i = 0; i < mimeTypes.length; i++) { Iterator writers = ImageIO.getImageWritersByMIMEType(mimeTypes[i]); while (writers.hasNext()) { ImageWriter imageWriter = (ImageWriter)writers.next(); ImageWriterSpi writerSpi = imageWriter.getOriginatingProvider(); if (writerSpi != null && writerSpi.canEncodeImage(getDefaultImageTypeSpecifier())) { natives.add(mimeTypes[i]); break; } } } } } else if (DataTransferer.isFlavorCharsetTextType(df)) { // stringFlavor is semantically equivalent to the standard // "text/plain" MIME type. if (DataFlavor.stringFlavor.equals(df)) { baseType = "text/plain"; } for (String encoding : DataTransferer.standardEncodings()) { if (!encoding.equals(charset)) { natives.add(baseType + ";charset=" + encoding); } } // Add a MIME format without specified charset. if (!natives.contains(baseType)) { natives.add(baseType); } } return natives; }
Example 19
Source File: DataFlavorUtil.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public int compare(DataFlavor flavor1, DataFlavor flavor2) { if (flavor1.equals(flavor2)) { return 0; } int comp; String primaryType1 = flavor1.getPrimaryType(); String subType1 = flavor1.getSubType(); String mimeType1 = primaryType1 + "/" + subType1; Class<?> class1 = flavor1.getRepresentationClass(); String primaryType2 = flavor2.getPrimaryType(); String subType2 = flavor2.getSubType(); String mimeType2 = primaryType2 + "/" + subType2; Class<?> class2 = flavor2.getRepresentationClass(); if (flavor1.isFlavorTextType() && flavor2.isFlavorTextType()) { // First, compare MIME types comp = compareIndices(textTypes, mimeType1, mimeType2, UNKNOWN_OBJECT_LOSES); if (comp != 0) { return comp; } // Only need to test one flavor because they both have the // same MIME type. Also don't need to worry about accidentally // passing stringFlavor because either // 1. Both flavors are stringFlavor, in which case the // equality test at the top of the function succeeded. // 2. Only one flavor is stringFlavor, in which case the MIME // type comparison returned a non-zero value. if (doesSubtypeSupportCharset(flavor1)) { // Next, prefer the decoded text representations of Reader, // String, CharBuffer, and [C, in that order. comp = compareIndices(decodedTextRepresentations, class1, class2, UNKNOWN_OBJECT_LOSES); if (comp != 0) { return comp; } // Next, compare charsets comp = CharsetComparator.INSTANCE.compare(getTextCharset(flavor1), getTextCharset(flavor2)); if (comp != 0) { return comp; } } // Finally, prefer the encoded text representations of // InputStream, ByteBuffer, and [B, in that order. comp = compareIndices(encodedTextRepresentations, class1, class2, UNKNOWN_OBJECT_LOSES); if (comp != 0) { return comp; } } else { // First, prefer text types if (flavor1.isFlavorTextType()) { return 1; } if (flavor2.isFlavorTextType()) { return -1; } // Next, prefer application types. comp = compareIndices(primaryTypes, primaryType1, primaryType2, UNKNOWN_OBJECT_LOSES); if (comp != 0) { return comp; } // Next, look for application/x-java-* types. Prefer unknown // MIME types because if the user provides his own data flavor, // it will likely be the most descriptive one. comp = compareIndices(exactTypes, mimeType1, mimeType2, UNKNOWN_OBJECT_WINS); if (comp != 0) { return comp; } // Finally, prefer the representation classes of Remote, // Serializable, and InputStream, in that order. comp = compareIndices(nonTextRepresentations, class1, class2, UNKNOWN_OBJECT_LOSES); if (comp != 0) { return comp; } } // The flavours are not equal but still not distinguishable. // Compare String representations in alphabetical order return flavor1.getMimeType().compareTo(flavor2.getMimeType()); }
Example 20
Source File: XDataTransferer.java From dragonwell8_jdk with GNU General Public License v2.0 | 4 votes |
public LinkedHashSet<String> getPlatformMappingsForFlavor(DataFlavor df) { LinkedHashSet<String> natives = new LinkedHashSet<>(1); if (df == null) { return natives; } String charset = df.getParameter("charset"); String baseType = df.getPrimaryType() + "/" + df.getSubType(); String mimeType = baseType; if (charset != null && DataTransferer.isFlavorCharsetTextType(df)) { mimeType += ";charset=" + charset; } // Add a mapping to the MIME native whenever the representation class // doesn't require translation. if (df.getRepresentationClass() != null && (df.isRepresentationClassInputStream() || df.isRepresentationClassByteBuffer() || byte[].class.equals(df.getRepresentationClass()))) { natives.add(mimeType); } if (DataFlavor.imageFlavor.equals(df)) { String[] mimeTypes = ImageIO.getWriterMIMETypes(); if (mimeTypes != null) { for (int i = 0; i < mimeTypes.length; i++) { Iterator writers = ImageIO.getImageWritersByMIMEType(mimeTypes[i]); while (writers.hasNext()) { ImageWriter imageWriter = (ImageWriter)writers.next(); ImageWriterSpi writerSpi = imageWriter.getOriginatingProvider(); if (writerSpi != null && writerSpi.canEncodeImage(getDefaultImageTypeSpecifier())) { natives.add(mimeTypes[i]); break; } } } } } else if (DataTransferer.isFlavorCharsetTextType(df)) { // stringFlavor is semantically equivalent to the standard // "text/plain" MIME type. if (DataFlavor.stringFlavor.equals(df)) { baseType = "text/plain"; } for (String encoding : DataTransferer.standardEncodings()) { if (!encoding.equals(charset)) { natives.add(baseType + ";charset=" + encoding); } } // Add a MIME format without specified charset. if (!natives.contains(baseType)) { natives.add(baseType); } } return natives; }