1 19 20 package org.netbeans.modules.image; 21 22 import javax.imageio.ImageIO ; 23 import org.openide.filesystems.FileObject; 24 import org.openide.loaders.DataObjectExistsException; 25 import org.openide.loaders.ExtensionList; 26 import org.openide.loaders.MultiDataObject; 27 import org.openide.loaders.UniFileLoader; 28 import org.openide.util.NbBundle; 29 30 35 public class ImageDataLoader extends UniFileLoader { 36 37 38 static final long serialVersionUID =-8188309025795898449L; 39 40 41 private static final String BMP_MIME_TYPE = "image/bmp"; 43 private static boolean bmpSupportStatusKnown = false; 44 45 46 public ImageDataLoader() { 47 super("org.netbeans.modules.image.ImageDataObject"); 50 ExtensionList ext = new ExtensionList(); 51 ext.addMimeType("image/gif"); ext.addMimeType("image/jpeg"); ext.addMimeType("image/png"); setExtensions(ext); 55 } 56 57 protected FileObject findPrimaryFile(FileObject fo){ 58 FileObject primFile = super.findPrimaryFile(fo); 59 60 if ((primFile == null) 61 && !bmpSupportStatusKnown 62 && !fo.isFolder() 63 && fo.getMIMEType().equals(BMP_MIME_TYPE)) { 64 try { 65 if (ImageIO.getImageReadersByMIMEType(BMP_MIME_TYPE).hasNext()){ 66 getExtensions().addMimeType(BMP_MIME_TYPE); 67 primFile = fo; 68 } 69 } finally { 70 bmpSupportStatusKnown = true; 71 } 72 } 73 74 return primFile; 75 } 76 77 78 protected String defaultDisplayName() { 79 return NbBundle.getBundle(ImageDataLoader.class).getString("PROP_ImageLoader_Name"); 80 } 81 82 88 protected String actionsContext () { 89 return "Loaders/image/png-gif-jpeg-bmp/Actions/"; } 91 92 98 protected MultiDataObject createMultiObject (FileObject primaryFile) 99 throws DataObjectExistsException, java.io.IOException { 100 return new ImageDataObject(primaryFile, this); 101 } 102 103 } 104 | Popular Tags |